Recent Releases of vedo
vedo - v2025.5.4
What's Changed
- Update file_io.py by @zhouzq-thu in https://github.com/marcomusy/vedo/pull/1228
- Add lazy initialization for normals (#1231) by @CorpsSansOrganes in https://github.com/marcomusy/vedo/pull/1232
- Fix broken example links in
add_legend_box()documentation by @CorpsSansOrganes in https://github.com/marcomusy/vedo/pull/1241 - Use specialized reader for OME-TIFF files. by @anntzer in https://github.com/marcomusy/vedo/pull/1242
- Fix trivial typo. by @anntzer in https://github.com/marcomusy/vedo/pull/1247
- Fix: update implementation of Box with bounds input to internally set X/Y/Z lengths by @dbotwinick in https://github.com/marcomusy/vedo/pull/1250
fix: several example urls fixed by @CorpsSansOrganes in https://github.com/marcomusy/vedo/pull/1253
general code cleanup with pylint.
add
utils.compute_hessian()fix issue #1224 for cells coloring in jupyter notebook for k3d
add support for STEP files format (needs opencascade lib) #1222
fix nan case in scalarbar3d()
add
.rename()method to set any object name.fix bug #1230 in
line.find_index_at_position()by @natabmaAdd lazy initialization for normals (#1231) by @CorpsSansOrganes
add chemistry module to represent molecules and proteins
fix to Box class by @dbotwinick
Soft-breaking Changes
Changes that may break existing code whose fixing is trivial:
Hard-breaking Changes
Changes that will break existing code and need active thinking and some work to adapt
- None
New/Revised Examples
examples/pyplot/plot_fxy0.py
examples/volumetric/image_editor.py
examples/other/pysr_regression.py
examples/other/chemistry1.py
tests/issues/issue_1230.py
New Contributors
- @CorpsSansOrganes made their first contribution in https://github.com/marcomusy/vedo/pull/1232
- @anntzer made their first contribution in https://github.com/marcomusy/vedo/pull/1242
- @dbotwinick made their first contribution in https://github.com/marcomusy/vedo/pull/1250
Full Changelog: https://github.com/marcomusy/vedo/compare/v2025.5.3...v2025.5.4
- Python
Published by marcomusy 9 months ago
vedo - v2025.5.3
Changes and Fixes
- add
settings.force_single_precision_points = Falsein #1137 by @JeffreyWardman and @sean-d-zydex - fix Volume masking in #1146 by @ivishalanand
- fix
LegendBoxin #1153 by @GerritFischer - add
mesh.laplacian_diffusion() - fix
DistanceToolin #1158 - fix
shapes.Plane.normalin #1159 by @smoothumut - add
Arrow.top_point()andArrow.base_point()to extract current arrow position #1163 @smoothumut - fix
Arrow.top_indexto produce the correct index value - add
assembly.Group.objectsby @smoothumut - add
addons.DrawingWidgetclass for tracing on planar props - add
Video(..., scale=1)keyword in #1168 by @YongcaiHuang - modify
legosurface(boundary=True)default in #1166 - make load functions compatible with pathlib #1176 by @Louis-Pujol
- fixed broken link to example #1175 by @jo-mueller
- add documentation to
Mesh.boolean()#1173 by @jkunimune - raise an error when calling cellnormals before computenormals() #1172 by @jkunimune
- add documentation warning as computing normals can affect appearence of the mesh #1174 by @jkunimune
- add documentation about
CubeandBoxhaving duplicated vertices to allow defining normals #1171 - add documentation do address the behaviour of
mesh.volume()andmesh.is_closed()wrt duplicated vertices. - add
plotter.reset_clipping_range()to reset the camera clipping range based on the bounds of the visible actors #1170 - fix issue with find_cell() in #1095
- improvements to
volume.isosurface_discrete()in #1180 by @snownontrace - fix bug on video frame by resetting camera clipping range in #1180 by @snownontrace
- changes in the scalarbar2d object.
- fix purging of nan in pyplot.plot()
- fix line trace to skip first point
- adjust volume transfer function for transparency @Poisoned
- fixing axes type 10 by @Poisoned
- improvements to input/output functionality for Assembly @ttsesm
- added
mesh.remove_all_lines()method - added keyword
Plane(edge_direction=...)by @smoothumut - added
isolines(..., n=list())option to pass specific values. - in
file_io.screenshot()add fourth channel representing trasparency @miek0tube - remove obsolete class
CellCenterswhich is now functionobject.cell_centers()
Changes from PR:
- Prevent merging close vertices when converting to Trimesh by @Linus-Foley in https://github.com/marcomusy/vedo/pull/1160
- Update assembly.py by @smoothumut in https://github.com/marcomusy/vedo/pull/1162
- Update assembly.py by @smoothumut in https://github.com/marcomusy/vedo/pull/1165
- raise an error when calling cellnormals before computenormals() by @jkunimune in https://github.com/marcomusy/vedo/pull/1172
- add documentation to Mesh.boolean() by @jkunimune in https://github.com/marcomusy/vedo/pull/1173
- fixed broken link to example by @jo-mueller in https://github.com/marcomusy/vedo/pull/1175
- make load functions compatible with pathlib by @Louis-Pujol in https://github.com/marcomusy/vedo/pull/1176
- Update volume.py by @Poisoned in https://github.com/marcomusy/vedo/pull/1205
- Update plotter.py by @Poisoned in https://github.com/marcomusy/vedo/pull/1209
Soft-breaking Changes
Changes that may break existing code whose fixing is trivial:
- change
object.points()toobject.pointseverywhere. - change
object.cell_centerstoobject.cell_centers().pointseverywhere. - change
Picture()toImage()everywhere.
Hard-breaking Changes
Changes that will break existing code and need active thinking and some work to adapt
- None
New/Revised Examples
``` examples/advanced/splinedraw2.py examples/volumetric/isosurfaces2.py examples/pyplot/fitcurve2.py
tests/issues/issue1146.py tests/issues/discussion1190.py tests/issues/testsphharm2.py tests/issues/issue_1218.py
tests/snippets/testinteractiveplotxy1.py tests/snippets/testinteractiveplotxy2.py tests/snippets/testelasticpendulum.py ```
New Contributors
- @Linus-Foley made their first contribution in https://github.com/marcomusy/vedo/pull/1160
- @smoothumut made their first contribution in https://github.com/marcomusy/vedo/pull/1162
- @jkunimune made their first contribution in https://github.com/marcomusy/vedo/pull/1172
- @Poisoned made their first contribution in https://github.com/marcomusy/vedo/pull/1205
Full Changelog: https://github.com/marcomusy/vedo/compare/v2024.5.2...v2025.5.3
- Python
Published by marcomusy about 1 year ago
vedo - 2024.5.2
Changes and Fixes
- add
magic-classexample - fix bug in
IsosurfaceBrowserin #1064 - add
mesh.adjacency_list()andgraph_ball()methods by @sergei9838 - add
utils.circle_from_3points()function. - add example
examples/other/iminuit2.py - add
rotation=..toArrow2D()class - improvements to
applications.MorphPlotterclass - add
FlyOverSurfaceclass andexamples/basic/interaction_modes3.py - add
mesh.extrude_and_trim_with()method out of #1077 - fix reset clipping range in thumbnail generation in #1085
- add
mesh.euler_characteristic(),mesh.genus()andmesh.to_reeb_graph()in #1084 - fix
reset_camera()by @sergei9838 and Eric - fix handle empty axis for rotation #1113 by @JeffreyWardman
- fix minor bug in RoundedLine #1104 by @PinkMushroom
- fix avoid overwriting screenshots with "S" key #1100 by @j042
- add support for
meshlibin https://doc.meshinspector.com/index.html - add relevant keyword options to
core.probe()method - increase precision in writing obj files in #1119 by @ManuGraiph
- add
plotter.freeze()to freeze interaction of current renderer in #1122 by @sergei9838 - add class
addons.ButtonWidgetto address issue #1138 add typing annotations in submodules
allow for dictionary input in Group and Assembly by @JeffreyWardman in https://github.com/marcomusy/vedo/pull/1057
allow assembly to correctly index objects by @JeffreyWardman in https://github.com/marcomusy/vedo/pull/1062
backwards compatibility in typing with python < 3.11 by @JeffreyWardman in https://github.com/marcomusy/vedo/pull/1093
avoid overwriting screenshots with
"S"key by @j042 in https://github.com/marcomusy/vedo/pull/1100minor bug in RoundedLine by @PinkMushroom in https://github.com/marcomusy/vedo/pull/1104
bugfix: add tolerance to contains by @JeffreyWardman in https://github.com/marcomusy/vedo/pull/1105
Mitigate issue #769: don't set backend to '2d' in IPython REPLs by @paulbrodersen in https://github.com/marcomusy/vedo/pull/1108
handle empty axis for rotation by @JeffreyWardman in https://github.com/marcomusy/vedo/pull/1113
Print position parameter as 'pos' by @adamltyson in https://github.com/marcomusy/vedo/pull/1134
Soft-breaking Changes
Changes that will break existing code whose fixing is trivial:
- remove
concatenate=Truekeyword fromapply_transform()discussed in #1111
Hard-breaking Changes
Changes that will break existing code and need active thinking and work to adapt
- None
New/Revised Examples
examples/basic/interaction_modes3.py
examples/basic/interaction_modes4.py
examples/basic/buttons3.py
examples/advanced/warp4b.py
examples/other/magic-class1.py
examples/other/iminuit2.py
examples/other/meshlib1.py
tests/issues/issue_1077.py
New Contributors
- @PinkMushroom made their first contribution in https://github.com/marcomusy/vedo/pull/1104
- @paulbrodersen made their first contribution in https://github.com/marcomusy/vedo/pull/1108
- @adamltyson made their first contribution in https://github.com/marcomusy/vedo/pull/1134
Full Changelog: https://github.com/marcomusy/vedo/compare/v2024.5.1...v2024.5.2
- Python
Published by marcomusy over 1 year ago
vedo - 2024.5.1
Changes and Fixes
- fixes to
extrude()method thanks to @JeffreyWardman - add
utils.madcad2vedoconversion as per #976 by @JeffreyWardman - add
utils.camera_to_dict() - add
Axes(title_backface_color=...)keyword - fix
labels()andlabels2d() - add
shapes.plot_scalar()plot a scalar along a line. - add support for
tetgenpy - add
transformations.compute_main_axes() - add
transformations.__call__()to apply a transformation - fix small bug in
pointcloud.distance_to() - add
applications.MorphPlotter()to morph a polygonal mesh to a target mesh - add
smooth_data()to smooth/diffuse data attributes - add
shapes.Tubes() - add
utils.Minimizer()class - add
CellCenters(Points)class - add
core.apply_transform_from_actor() - add
add volume.slab() - add
mesh.generate_random_points()to generate random points onto a surface - add
tetmesh.generate_random_points()to generate random points in a tet mesh - rename
integrate_arrays_over_domain()tointegrate_data - extend
volume.operation()to support logic operations as per #1002 - add
pointcloud.relax_point_positions()method - add
pointcloud.auto_distance()method calculates the distance to the closest point in the same cloud of points. - fixed
mesh.collapse_edges()after #992 - add
mesh.cut_closed_surface() - fix
image.clone()in #1011 - add
transformations.TransformInterpolatorclass - add
Line.find_index_at_position()finds the index of the line vertex that is closest to a point - add
visual.LightKitclass which provides "natural" lighting from 4 sources. - add
fast-simplificationexample by @Louis-Pujol in #992 - add metadata "shape" to
volume.slice_plane()in #1018 - fix
core.mark_boundaries()method - add callbacks for cutters in #1020 and
examples/volumetric/slice_plane3.py - add
utils.andrews_curves()function. - add
transformations.LinearTransform.transpose()method. - add
pointcloud.generate_segments()to generate a continous line from un-ordered points in 3d - fix
assembly.__add__()by @j042 in #1036 - small fix to
Ruler3Dclass. - add
plotter.render_hidden_lines()method - add slot for triangle strips in constructor
Mesh([verts, faces, lines, strips])in #1019 - internally use "import vedo.vtkclasses as vtki" instead of "vtk" to avoid confusion
- add
join_with_strips()in #1043 - improvements to
shapes.Ellipsoid()and bug fixes in #978 by @daniel-a-diaz - improvements to
pointcloud.pca_ellipsoid()and bug fixes - improvements to
pointcloud.pca_ellipse()and bug fixes - fix Plotter
atoggle keypress - fix viz on jupyter notebook as per #994
- fix
mesh.imprint() - small fix to
applications.Slicer2DPlotter - automatically apply the actor transform to an object actor that was moved manually (via eg "InteractorStyleTrackballActor") in #1045 and #1046 by @sergei9838
- add support to
RectilinearGridandStructuredGriddata (experimental). - improvements to
RayCastPlotter - add
visual.scalar_range()to control mesh coloring. - fix
shapes.Text3D.text()by @gioda - add
volume.isosurface_discrete()method
Soft Breaking Changes
Changes that can break existing code whose fixing is trivial:
- change
clone2d(scale=...)toclone2d(size=...) - remove
shapes.StreamLines(object)becomesobject.compute_streamlines() - split
mesh.decimate()intomesh.decimate(),mesh.decimate_pro()andmesh.decimate_binned()as per #992 - modified
core.clean()after #992 - remove
import_window()for obj files and createload_obj()by @zhouzq-thu in #891 - add
smooth_mls_12d(..., n=0)to fix the number of neighbors in the smoothing - modified API for
mesh.binarize() plotter.add_hover_legend()now returns the id of the callback.- removed
settings.render_lines_as_tubesandsettings.hidden_line_removal, addplotter.render_hidden_lines()method - fix
close(),close_window()is now obsolete and removed.
Hard Breaking Changes
Changes that will break existing code and need active thinking and work to adapt
- None
New/Revised Examples
``` examples/basic/slidershsv.py examples/basic/buttons1.py examples/basic/buttons2.py examples/basic/inputbox.py
examples/advanced/warp4b.py examples/advanced/diffusedata.py examples/advanced/movingleast_squares1D.py
examples/volumetric/slabvol.py examples/volumetric/streamlines1.py examples/volumetric/streamlines2.py examples/volumetric/streamlines3.py examples/volumetric/streamlines4.py examples/volumetric/office.py examples/volumetric/sliceplane1.py examples/volumetric/sliceplane3.py examples/volumetric/mesh2volume.py examples/volumetric/readvolume3.py examples/volumetric/rectlgrid1.py examples/volumetric/strucgrid1.py examples/volumetric/app_raycaster.py examples/volumetric/isosurfaces1.py examples/volumetric/isosurfaces2.py
examples/simulations/magfield1.py examples/pyplot/andrewscluster.py
examples/other/madcad1.py examples/other/tetgen1.py examples/other/nelder-mead.py examples/other/fast_simpl.py
tests/issues/issue968.py tests/issues/issue1025.py tests/issues/testforceanim.py tests/snippets/testdiscourse1956.py tests/snippets/testellipsoidmainaxes.py tests/snippets/testcompare_fit1.py ```
New Contributors
- @daizhirui made their first contribution in https://github.com/marcomusy/vedo/pull/983
- @JeffreyWardman made their first contribution in https://github.com/marcomusy/vedo/pull/988
- @PeterMitrano made their first contribution in https://github.com/marcomusy/vedo/pull/1000
- @Louis-Pujol made their first contribution in https://github.com/marcomusy/vedo/pull/1016
Full Changelog: https://github.com/marcomusy/vedo/compare/v2023.5.0...v2024.5.1
- Python
Published by marcomusy about 2 years ago
vedo - 2023.5.0
Main changes
Major internal refactoring.
Breaking changes
- rename internal list
plt.actorswhich now becomeplt.objects - rename
.points()to property.vertices. Hence:mesh.points() -> mesh.verticesmesh.points(newpoints) -> mesh.vertices = newpoints - rename
.cell_centers()to property.cell_centers - rename
.faces()to property.cells - rename
.lines()to property.lines - rename
.edges()to property.edges - rename
.normals()and split it into property.vertex_normalsand property.cell_normals - rename
picture.Picture2D(...)which becomesImage(...).clone2d()(seeexamples/pyplot/embed_matplotlib.py). - rename
Volume.probe_points()which becomespoints.probe(volume) - rename
Volume.probe_line()which becomesline.probe(volume) - rename
Volume.probe_plane()which becomesplane.probe(volume) - rename
file_io.load_transform().LinearTransform("file.mat")substitutes it. - rename
transform_with_landmarks()toalign_with_landmarks() - rename
find_cells_in()tofind_cells_in_bounds() - rename
mesh.is_inside(pt)moved tomesh.contains(pt) - rename
Slicer2DPlottermoved toapplication module.Slicer2DPlotter - rename and moved method
voronoi()topoints.generate_voronoi() - rename class
RulertoRuler3D
Other changes
- improvements in how vtk classes are imported (allow lazy import)
- improvements to method
mesh.clone2d() - improvements in
Slicer3DPlotterthanks to @daniel-a-diaz in #925 - improvements in
applications.Browser - add new
vedo.transformations.pymodule. - add
plotter.pick_area()thanks to @ZiguoAtGitHub and @RubendeBruin feedback. - add texture to npz files thanks to @zhouzq-thu in #918
- add background radial gradients
- add
utils.line_line_distance()function - add
utils.segment_segment_distance()function - add
plotter.initialize_interactor()method - add object hinting by hovering mouse (see
flag_labels1.py) - add
colors.lut_color_at(value)the color of the lookup table at value. - add
.show(..., screenshot="myfile.png")keyword - add
object.coordinatessame asobject.vertices - add
move()to move single points or objects - add
copy()as alias toclone() - add "Roll" to camera dictionary (thanks @baba-yaga )
- add
applications.Slicer3DTwinPlotterthanks to @daniel-a-diaz - add radii feature to
smooth_mls_2d()by @jo-mueller (now store results in arraysmesh.pointdata['MLSVariance']andmesh.pointdata['MLSValidPoint']) - passing a
vtkCameratoshow(camera=...)triggers a copy of the input which is therefore not muted by any subsequent interaction (thanks @baba-yaga )
Bug Fixes
- bug fix in
closest_point()thanks to @goncalo-pt - bug fix in tformat thanks to @JohnsWor in #913
- bug fix in windows OS in timers callbacks thanks to @jonaslindemann
- bug fix to non linear tranforms mode. Now it can be instantiated with a dictionary
- bug fix in meshlab interface thanks to @JeffreyWardman in #924
- bug fix changed
mp = matplotlib.colormaps[name]in colors.py
New/Revised Examples
examples/basic/buttons.py
examples/basic/input_box.py
examples/basic/sliders2.py
examples/basic/spline_tool.py
examples/basic/interaction_modes2.py
examples/advanced/timer_callback1.py
examples/advanced/timer_callback2.py
examples/advanced/warp4a.py
examples/advanced/warp4b.py
examples/pyplot/embed_matplotlib.py
examples/pyplot/plot_fxy2.py
examples/simulations/springs_fem.py
examples/simulations/lorenz.py
examples/volumetric/numpy2volume0.py
examples/volumetric/slicer1.py
examples/volumetric/tet_astyle.py
examples/volumetric/tet_cut1.py
examples/volumetric/tet_cut2.py
examples/other/flag_labels1.py
- Python
Published by marcomusy over 2 years ago
vedo - 2023.4.5
Main changes
- Rename module
io.pytofile_io.pyto avoid overriding stlibio. - Complete revision of cutter widgets functionality
- Integration in napari thanks to @jo-mueller
Breaking changes
- method
plotter.add()no more accepts keywordrender=True/False. Please useplotter.add().render()explicitly. Same thing forplotter.remove().
Other fixes and improvements
- added gpu acceleration for CLI volumetric visualization in #832 by @zhang-qiang-github
- fixes for
k3djupyter backend - added
plotter.fov(value)(field of view, the so called "fish-eye" effect) - fix
ploter.get_meshes() - fix for
plotter.remove(unpack_assemblies=False)method - fix for
io.import_window()method - added
cut_with_cookiecutter()to cut 2D contours. - fix
shapes.NormalLines()class - added
vedo.interactor_modesmodule - added
vedo.interactor_modes.BlenderStyleclass - added
base.pointdata.clear()to remove all associated data - added
volume.hide_voxels()for visualization - added
Event.timeridattribute - fix to
Volume.operationby @DanKrsi - fix links in
pyplotexamples by @androbaza - fix
screenshot_scaleand remove it from settings. - allow initializing
ScalarBarwith a tuple range(min, max) - Update API Documentation for Changing Backend by @bhacha
- Add
application.Browser().play()to autoplay a slider - Add
pad()to padding a Volume with zeros voxels (useful todilate()) - Add
ProgressBarWidget()to show a progress bar in the rendering window - Fix Scalarbar3D logscale and change separator symbol by @XushanLu
- Fix
vedo/interactor_modes.mouse_left_move()by @MiticoDan - Added
applications.AnimationPlayerclass by @mikaeltulldahl - fix convex hull in 2D by @ManuGraiph
New/Revised Examples
examples/basic/sliders_range.py
examples/basic/interaction_modes.py
examples/advanced/timer_callback3.py
examples/advanced/warp6.py
examples/pyplot/histo_1d_e.py
examples/other/tensor_grid2.py
examples/simulations/airplane1.py
examples/simulations/lorenz.py
examples/simulations/gas.py
examples/simulations/aspring2_player.py
- Python
Published by marcomusy over 2 years ago
vedo - 2023.4.4
Main changes
- New API docs
- added cli functionality with
vedo --search-codeto inspect the code for keywords - method
tomesh()changed togenerate_mesh() - fix for
mark_boundaries() - use
vtkStaticCellLocatorinstead ofvtkCellLocator - improved
pointcloud.density()function - add
utils.progressbar() - add
trameexamples - add
utils.is_ragged()to check if an array is homogeneuos (not ragged) - fix
shapes.Lines()class - add
shapes.ThickTube()as per #800 - add
settings.backend_autoclose(default is True) to automatically closePlotterafter show() in jupyter notebooks, #802 - fix k3d backend - remove pinning to 2.7.4 #808
- in
Text2DandText3Dshortcut to symbols are now formatted as:gammaand no more as\gamma - fix
mesh.stretch()thanks to @mikaeltulldahl in #807 - fixes to
cmap() - added
mesh.is_manifold()method #813 - added
utils.open3d2vedo()andutils.vedo2open3dconverters as per #663 - added
mesh.non_manifold_faces()to detect and (try to) remove non-manifold faces of a triangular mesh #813 #663 and https://github.com/SlicerIGT/SlicerBoneReconstructionPlanner/issues/35 - added
pointcloud.compute_acoplanarity()method - add pipeline visualization with syntax
any_vedo_obj.pipeline.show()or interactively by clicking an object and pressingy. - fixes to
Buttonclass - in
map_points_to_cells()added keywordmovein #819 @19kdc3 - fix
flagpost()by creating a new classaddons.Flagpost()in #821 @ZiguoAtGitHub - add
vedo.io.Video(backend='imageio')support for video generation - add
vedo.io.Video.split_frames()of an already existing video file. - add
Picture2Dclass - add
mesh.slice() - added
__repr_html__for all types (thanks to @haesleinhuepf input) - added
treelibfor pipeline representation - fixes to dolfin support
MeshActor
New/Revised Examples
examples/basic/mousehover0.py
examples/advanced/timer_callback0.py
examples/simulations/lorenz.py
examples/pyplot/embed_matplotlib.py
examples/other/trame_ex1.py
examples/other/trame_ex2.py
examples/other/trame_ex3.py
examples/other/make_video.py
examples/other/dolfin/ex06_elasticity4.py
examples/notebooks/test_types.ipynb
examples/notebooks/slider2d.ipynb
- Python
Published by marcomusy almost 3 years ago
vedo - 2023.4.3
Main changes
- Important fixes for
numpy 1.24@jo-mueller (also relevant to https://github.com/brainglobe/brainrender/issues/226#issue-1536800285 by @FedeClaudi @johnmbarrett ) - fixed interface to
pymeshlab==2022.2.post2 - fixed #774
intersect_with_line() - fixed exporting to x3d for assemblies
- added support to calarbars into assemblies, thanks to @j042 in #779
- fix typos #780
settings.allow_interactionis now (temporarily) disabled.- added example
basic/shadow3.py(thanks to @paul0noah in #767) - fix on OSX window focusing
various fixes for windows OS
add VTK_HEXAHEDRON to vedo.vtkclasses by @j042 in https://github.com/marcomusy/vedo/pull/762
minor typo fix by @j042 in https://github.com/marcomusy/vedo/pull/780
Keep scalarbar(s) in Assembly by @j042 in https://github.com/marcomusy/vedo/pull/779
New Contributors
- @j042 made their first contribution in https://github.com/marcomusy/vedo/pull/762
New/Revised examples
examples/basic/shadow3.py
examples/other/pymeshlab1.py
examples/other/pymeshlab2.py
Full Changelog: https://github.com/marcomusy/vedo/compare/v2022.4.2...v2023.4.3
- Python
Published by marcomusy about 3 years ago
vedo - 2022.4.2
Main changes
base.py
- added
basegrid.extract_cells_on_plane() - added
basegrid.extract_cells_on_sphere() - added
basegrid.extract_cells_on_cylinder() - added
count_vertices()method - added
copy_data_from()method to transfer all cell and point data from an object to another. - fixed
metadataassociation
pointcloud.py
- added
cut_with_planes()to cut at once with multiple planes - added
generate_random_data()for testing purposes - renamed
vignette()toflagpole() - added new
flagpost()similar to the above - added new property
pointcloud.cellcolorsandpointcolorsto access and modify colors by RGBA assignment. - added
compute_camera_distance()to calculate the distance from points to the camera. A pointdata array is created with name 'DistanceToCamera'. - added
cut_with_scalars()to cut polygonal data with some input scalar data.
mesh.py
- improved
binarize()method thanks to @vfmatzkin - added
collide_with()to fix crashing ofintersect_with()in special cases - added
check_validity() - added
method=4forsubdivide() - added
intersect_with_plane() - added
boolean(..., method=1) - added
intersect_with_multiplanes()to generate a set of lines from cutting a mesh in n intervals between a minimum and maximum distance from a plane of given origin and normal.
plotter.py
- fixed key bindings for uppercase hits.
- added method
add_hint()to generate a pop-up message on hovering an object - fix output of template camera when pressing "C"
- improved
move_camera() - added key-press
Rto reset camera viewup to closest orthogonal viewup added corresponding methodplotter.reset_viewup() - added press
.to fly to last clicked point and zoom in
picture.py
- generate false colors for an image with
Picture().cmap()
pyplot.py
- clicking on a histogram shows the bin value
- add
as2d()method to freeze a plot in 2d canvas, without mouse interaction (experimental)
shapes.py
- Added support for chinese and japanese chars
- Added font "ComicMono"
- added possibility to create a disc sector in
Disc(angle_range=...)
tetmesh.py
- added
compute_tets_volume() - added
check_validity()
volume.py
- added
vtkFlyingEdges3Dinstead of contouring, which is faster.
Examples
New/Revised
examples/basic/color_mesh_cells1.py
examples/basic/color_mesh_cells2.py
examples/pyplot/fit_curve.py
examples/pyplot/histo_2d_a.py
examples/pyplot/histo_2d_b.py
examples/other/flag_labels2.py
examples/volumetric/image_false_colors.py
- Python
Published by marcomusy about 3 years ago
vedo - 2022.4.1
This version includes various fixes, but the most important thing is that it implements the snake_case naming scheme (instead of camelCase) for all class methods and functions, so e.g. code like this
(in vedo==2022.3.1):
python
mesh = Mesh("bunny.obj")
mesh.cutWithPlane()
now becomes (in vedo==2022.4.1):
python
mesh = Mesh("bunny.obj")
mesh.cut_with_plane() ##### <----
Check out the docs in case of doubts.
See discussion #705 @jkissi @zhang-qiang-github @XushanLu @Gjacquenot @FedeClaudi @ManuGraiph @infinity77 @lukablagoje @LogWell @Amin-Fakia @nantille
addons.py
- improved slider callback interface
mesh.py
- fixed issue #593
volume.py
- can warp scalars in a volumetric dataset with
warp()
New/Revised Examples
examples/pyplot/fill_gap.py
examples/basic/sliders_hsv.py
examples/volumetric/slicer2.py
examples/volumetric/warp_scalars.py
examples/other/qt_window3.py
- Python
Published by marcomusy over 3 years ago
vedo - 2022.3.0
Main changes
pep8parsing with pylint and general cleanup of the code.Volume(np_array)does not need array to be transposed anymore. Warning: this may cause flipping of the x-z axes!
applications.py
- added
SplinePlotterobject
pointcloud.py
- bug fix in
clone() - added
labels2D() - added logscale for colormapping in method
cmap(..., logscale=True) - added explicit label formatting for scalarbars, @XushanLu
plotter.py
- added
breakInteraction()to break window interaction and return to the python execution flow
picture.py
- added class
MatplotlibPictureto embed matplotlib figures as 2d objects in the scene.
shapes.py
- Added
text()method to update 3d text on the fly, by @mkerrin - Added
pcaEllipse()analogous topcaEllipsoid()for 2D problems.
utils.py
- added
getUV()method to get the texture coordinates of a 3D point
volume.py
Volume(np_array)does not need array to be transposed anymore. Warning: this may cause flipping of the x-z axes!- added
slicePlane(autocrop=False)
Examples
New/Revised
examples/basic/input_box.py
examples/basic/pca_ellipse.py
examples/advanced/capping_mesh.py
examples/volumetric/numpy2volume2.py
examples/volumetric/numpy2volume1.py
examples/pyplot/fourier_epicycles.py
examples/pyplot/histo_pca.py
examples/pyplot/histo_1d_b.py
examples/other/flag_labels.py
examples/other/remesh_tetgen.py
examples/other/pymeshlab2.py
- Python
Published by marcomusy over 3 years ago
vedo - 2022.2.3
This release includes various improvements and bug fixes
base.py
alignToBoundingBox()change the default behavior to match exactly the target (affine transform) @jsaintauret- added
getRGBA()to obtain the actual colors from an object as rendered
pointcloud.py
addTrail()simplified.
mesh.py
isInside(..., returnIds=True)fixed bug
plotter.py
- added
lookAt(plane='xy')to move the camera to face one of the cartesian planes - removed
plotter.load()as not really necessary and potentially confusing
pyplot.py
- add legends to Figures thanks to new method
addLegend()
shapes.py
- moved
volume.streamLinestoshapes.StreamLines
volume.py
- added
mask(vol)to mask the visualization of a volume
Examples
New/Revised
``` examples/basic/shadow2.py examples/basic/deleteMeshPoints.py examples/basic/ssao.py examples/basic/align6.py examples/basic/pca_ellipsoid.py examples/advanced/gyroid.py examples/volumetric/volumeOperations.py examples/volumetric/streamlines1.py
examples/simulations/orbitals.py examples/simulations/magfield1.py examples/simulations/magfield2.py examples/simulations/pendulum_3d.py
examples/pyplot/histo1db.py examples/pyplot/fitPolynomial1.py examples/pyplot/plotextrayaxis.py
examples/other/pygeodesic1.py examples/other/qt_cutter.py ```
Deleted
examples/other/animation1.py
examples/other/animation2.py
examples/simulations/alien_life.py
examples/simulations/cell_colony.py
- Python
Published by marcomusy almost 4 years ago
vedo - 2022.2.0
Main changes
- New documentation pages based on
pdoc3. - general cleanup of the examples
- simplified licence file by splitting fonts and general MIT licence
- all
vedo/texture/*files removed - a new syntax is allowed for changing the current renderer:
plotter.at(ren_number).show(mymesh)instead of the (still valid):plotter.show(mymesh, at=ren_number) - reverted
settingsto be a simple import instead of a dictionary (because of pdoc3).
pointcloud.py
cmap(arrayName=...)->cmap(name=...)- added
chamferDistance()of pointclouds (needs to be double checked) - added
cutWithMesh(self, keep=True)to return an Assembly of the cut & discarded parts.
mesh.py
- can now recover the edges of a mesh with
mymesh.edges() - added
tetralize()to tetralize any closed surface mesh
plotter.py
- keyword change
show(interactorStyle=...)->show(mode=...) - added function
vedo.close()to close the latest Plotter
picture.py
- remove by default alpha channel so that images become pickable
pyplot.py
- Full revision of the existing code.
- can now create an empty
Figureobject to be later filled.
With it one can easily create elegant plots and histograms like:

shapes.py
- added
Rectangle(radius=...)to have a border radius
tetmesh.py
- added
tetralize()to tetralize any closed surface mesh - added
addQuality()of tets
settings.py
- new polygonal fonts added: 'Vogue', 'Brachium', 'Dalim', 'Miro', 'Ubuntu'
Examples:
New/Revised
examples/basic/mousehover2.pyexamples/simulations/wave_equation2d.pyexamples/advanced/interpolateScalar4.pyexamples/advanced/timer_callback1.pyexamples/basic/multirenderers.pyexamples/advanced/spline_draw.pyexamples/simulations/museum_problem.pyexamples/volumetric/tet_explode.pyexamples/volumetric/tetralize_surface.pyexamples/other/remesh_tetgen.pyexamples/pyplot/histo_1d_a.pyexamples/pyplot/histo_1d_b.pyexamples/pyplot/histo_1d_c.pyexamples/pyplot/histo_1d_d.pyexamples/pyplot/histo_2d.pyexamples/pyplot/histo_pca.pyexamples/pyplot/histo_manual.pytests/common/test_pyplot.pyexamples/pyplot/plot_empty.pyexamples/pyplot/plot_errband.pyexamples/pyplot/quiver.py
Deleted
examples/pyplot/covid19.pyexamples/pyplot/histo_1D.pyexamples/pyplot/histo_2D.pymoving_least_squares3D.pyexamples/other/dolfin/curl2d.pyexamples/other/dolfin/demo_auto-adaptive-poisson.pyexamples/other/dolfin/demo_cahn-hilliard.pyexamples/other/dolfin/ex01_show-mesh.pyexamples/other/dolfin/ft07_navier_stokes_channel.pyexamples/other/dolfin/ft08_navier_stokes_cylinder.pyexamples/other/dolfin/meshEditor.pyexamples/other/dolfin/simple1Dplot.py
- Python
Published by marcomusy almost 4 years ago
vedo - 2022.1.0
Main changes
Quite serious bug fixed in
closestPoint()method due to a problem in the upstream vtk9.0vtkStaticCellLocatorclass. (https://discourse.vtk.org/t/vtkstaticcelllocator-problem-vtk9-0-3/7854/4)internal global variable
settings.plotter_instancemust becomevedo.plotter_instance.vedo.settingsis now a dotted dictionaryimplemented
loggingmodule for managing errors and warningsfixed bug to
distanceTo()method
applications.py
Brower,IsosurfaceBrowser,Slicer2DPlotterandRayCastPlotterare nowPlotterderived classes (not functions)- improved
IsosurfaceBrowserfor speed
io.py
- improved
Video.action(cameras=[...])to interpolate cameras positions
mesh.py
- faces of a mesh can be reversed individually with
reverse(face_list). - fixed bug to
distanceTo()method
plotter.py
- fix
closeWindow() - add
show(..., zoom="tight")to automatically zoom in as close as possible when 2D.
picture.py
- added
binarize()method. - added
invert()method.
pyplot.py
- name change
cornerPlot->CornerPlot - name change
cornerHistogram->CornerHistogram
shapes.py
Line.lineColor()overridesmesh.lineColor()to avoid ambiguities.- added
line.curvature()method and example in docs. - added
line.tangents()method and example in docs.
volume.py
volume.mesh2Volume()function moved tovedo.mesh.binarize()volume.signedDistanceFromPointCloud()function moved toPoints.signedDistancelegosurface()changed interface
utils.py
- function has new keyword
sortByColumn(invert=False)
New/Revised examples:
examples/basic/align5.py
examples/basic/distance2mesh.py
examples/pyplot/fourier_epicycles.py
examples/other/ellipt_fourier_desc.py
examples/volumetric/image_probe.py
examples/volumetric/image_mask.py
examples/pyplot/histo_3D.py
examples/other/napari1.py
examples/other/makeVideo.py
examples/volumetric/volumeFromMesh.py
examples/volumetric/mesh2volume.py
- Python
Published by marcomusy almost 4 years ago
vedo - 2022.0.1
Main changes
colors.py
- minor fixes
cli.py
New CLI mode to emulate eog for convenient visualization of common format images :
vedo --eog https://corepetfood.com/files/2019/07/kitten-e1568311742288-1440x900.jpg
Press:
up/down to modify level (or drag mouse)
left/right to modify window
m to mirror image
t to rotate image by 90 deg
k to enhance b&w image
s to apply gaussian smoothing
S to save image as png
h to print this help banner
plotter.py
- added
enableErase()enableRenderer()useDepthPeeling(at)methods - added
addScaleIndicator()to add to the scene an indicator of absolute size of objects (needssettings.useParallelProjection = True)
pointcloud.py
- added
smoothLloyd2D()for smoothing pointclouds in 2D - vtkCellLocator seems to have a problem with single cell meshes (#558), fixed using vtkStaticCellLocator which behaves normally
shapes.py
- added
Line().pattern()to create a dashed line with a user defined pattern. - fixed bug in
Text2D()
New/Revised examples:
examples/basic/shadow2.py
- Python
Published by marcomusy about 4 years ago
vedo - v2021.0.6
Main changes
- various fixes
base.py
- introduced new sintax to set/retrieve a mesh point data array:
myobj.pointdata["arrayname"]same for cell/face data:myobj.celldata["arrayname"]
addons.py
- added kword
LegendBox(markers=...) - added kword
Slider2D(delayed=True)to act upon mouse release
colors.py
- fixed small bug in colorMap (only affecting systems without matplotlib)
mesh.py
- fixed problem in
geodesic(). - added tolerance keyword in
intersectWithLine(). Also, nowreturnIdsreturns[[pt,cellid]] - added kword flag to function
merge(..., flag=True)to optionally keep track of the original meshes ids
picture.py
- added
.enhance()method. - method
.tonumpy()reshape to [nx,ny,nchannels] to match matplotlib standard - added
.append()to stitch images the current to the left or to the top. - added
.extent()to specify physical extention of an image.
pointcloud.py
cluster()renamed topointcloud.addClustering()- added
voronoi()function
New/Revised examples:
vedo -r optics_main1
vedo -r optics_main2
vedo -r optics_main3
vedo -r warp4
vedo -r voronoi
vedo -r drag_chain
vedo -r morphomatics_tube
- Python
Published by marcomusy over 4 years ago
vedo - 2021.0.5
Main changes
- Added support for
ipyganyin jupyter notebooks. - Command line interface
vedo ...should now work on windows 10 too. - added skybox environment with
show(..., bg="path/to/file.hdr") - added (kind of limited) support to
wxpythonembedding (analogous to Qt, but open-source) - updated pymeshlab examples
base.py
- added
.lighting(metallicity=1, roughness=0.1)to include PBR (physics based rendering). - method
.printInfo()is now simply.print()
addons.py
- added
SplineTool.nodes()to retrieve current node positions.
plotter.py
- removed global functions
closeWindow()ion()ioff() - added
record()andplay()to store and playback camera and all other events - keyword
interactorStylebecomes nowmode
picture.py
- added
flipkeyword to flip xy convention - added
level()andwindow()methods to control brightness and contrast of a Picture. - added
smooth()to make gaussian smoothing of a Picture object. - added
bw()to make a picture black and white - added
channelskeyword to specify rgba channels to use (useful to remove alpha) - added
pad()to create a padding margin to a picture - added
median()a median filter that preserves thin lines and corners - added
frequencyPassFilter()to filter images based on level of detail frequencies - added
rotateAntiClockWise()to rotate an image (landscape to portrait and viceversa) - added
tonumpy()andmodified()methods. - added
tiling()to generate tilings from a single picture extract()renamed toselect()
pyplot.py
- added
plot(mode="bar")
pointcloud.py
- added
hausdorffDistance()to compute the Hausdorff distance of two point sets or meshes
volume.py
- added
vminandvmaxkeywords to share the same mapping across different volumes - renamed
getDataArraytotonumpy.
cli.py
- removed
bin/vedoand created entry point fromvedo/cli.py(command line interface). This works better on windows systems. vedo -rnow colorizes the code dump.
New/Revised examples:
vedo -r plot_barsvedo -r alien_lifevedo -r pendulum_odevedo -r earth_modelvedo -r qt_window2vedo -r spline_toolvedo -r wx_window1vedo -r picture2meshvedo -r record_playvedo -r pymeshlab1vedo -r pymeshlab2vedo -r volume_sharemapvedo -r multiwindows1
- Python
Published by marcomusy over 4 years ago
vedo - 2021.0.3
Main changes
- General improvements to the
vedocommand line colorcetcolormaps are directly usable invedo. Check examplebasic/mesh_custom.pygeneral tool for free-hand cutting a mesh can be invoked from command line:
vedo --edit https://vedo.embl.es/examples/data/porsche.plyadded example search by command line e.g.:
vedo --search triangle -i(-ito ignore capital letters)added file(s) info dump by command line e.g.:
vedo --info some_image.jpg https://vedo.embl.es/examples/data/porsche.plypressing
shift-Atoggles antialiasing for the whole rendering windowpressing
shift-Dtoggles depth-peeling algorithm for the current rendererantialiasing set by default on vtk9
balloon-style flags are disabled because of a bug in vtk9
Consider installing VTK 8.1.2 for better visualisations when possible (unfortunately this slightly older version is no more available for python >=3.8)
base.py
- corrected bug on
diagonalSize()returning a wrong value
addons.py
- added
addSplineTool()to interactively spline points in space - added
labelRotationin addScalarBar3D - added
xShiftAlongYkeywords inAxesto slide the whole axis position along another axis - added
xAxisRotationto rotate the whole axis (ticks and labels) addScalarBar3D()can now render categorical data
colors.py
- fixed small issue in
printcto support different terminals
mesh.py
computeNormals()is no more changing the nr of mesh points unlessfeatureAngleis specified- added keywords:
featureAngle=None, consistency=True
- added keywords:
intersectWithLine()can now return cell ids, not just points
plotter.py
- improved automatic text management in
show("some text") - added
computeWorldPosition(point2d)to get the 3d point in the scene from a screen 2d point - added
addSplineTool()to interactively spline points in space - small fix in
plotter.add()for offscreen mode. - added
topicture()to render a scene into aPictureobject (to crop, mirror etc)
picture.py
- added FFT and RFFT, added example
fft2d.py - can save
Pictureobj to file as jpg or png
pointcloud.py
- added
cutWithBox(),cutWithLine(),cutWithSphere()andcutWithCylinder()methods
shapes.py
- fixed small bug in
Glyph
volume.py
- added class
VolumeSlicefor volume-sliced visualization.
utils.py
- added
roundToDigit(x,p), round number x to significant digit
New/Revised examples:
vedo -r koch_fractalvedo -r mesh_customvedo -r fft2dvedo -r lines_intersectvedo -r cutFreeHandvedo -r spline_toolvedo -r legendboxvedo -r read_volume3vedo -r multi_viewer2
- Python
Published by marcomusy almost 5 years ago
vedo - 2021.0.2
vedo 2021.0.2
A new web page is avaialble! check it out at https://vedo.embl.es
- python2 is no more supported
- A dangerous bug in
mesh.closestPoint(returnIds=True)has been fixed - Added interfaces and examples to libraries iminuit and pymeshlab
- variable
datadirchanged todataurl - added
ipyvtk_simpleoption for notebooks rendering
base.py
- method
addPos()(obsolete but still valid) renamed toshift() - added shortcut to input the opacity with syntax
mesh.color("blue", 0.5) - arrays with name "Normals" are set as active normals automatically ( @theponpon )
- added keyword invert in
getTransform()( @Tai-Hsien ) - added
deleteCells()method
addons.py
- added mesh cutter with planes and spheres in addition to boxes ( @nantille )
- major revision of the
Axesclass. with new added feature like axes inversion, free rotations - keyword
xFlipTextdisappeared as is now substituted byxLabelRotation - Added
xyShiftto shift the whole cartesian plane along one axis ( @JGarrett7 ) - Axes can be flipped with their range with
xInverted(caveat: this does not at all affect the world coordinate system!) - new class
LegendBoxto show a legend with icons
colors.py
vedois now independent of matplotlib for colormaps- added new bootstrap5 color scheme
(e.g.
c='red1', 'red2', ..., 'red9', or in short:c='r1', 'r2', ..., 'r9') Lower index means darker. - added
rgb2hex()andhex2rgb()functions - fixed bug on
printc()and addedsettings.enablePrintColor. #337
mesh.py
- fixed bug in
splitByConnectivity()( @jsanchez679 ) - added method
addConnectivity()to add a connectivity array to mesh points - added method
isClosed()ti return if mesh is watertight (no holes)
plotter.py
- improved
resetcambehaviour - passing camera no more empties the passed dictionary (thanks @icemtel )
verbosekeyword has been removed (as hard to maintain)- mouse clicking can now pick
Picturenot onlyMesh - revised and improved callback functionality with
plotter.addCallback()(see examplesmousehighlight,mousehover) - new way of creating a callback loop with a timer (thanks @nantille - see examples
timer_callback)
picture.py
- attribute
picture.shapeholds the shape of the picture in pixels - added
giffile reader to return a list ofPictureobjs. - added
clone()method.
pointcloud.py
- added
fitCircle()to fit a circle to a line in 3D. - added a revision of
self.densify(). RemoveddensifyCloud(). #338
pyplot.py
- a brand new function
fit()to perform polynomial fitting to data with error bars in both x and y with correct estimation of error bands via bootstrap method (there are out there soo many wrong scripts in matplotlib!) - added
pyplot.matrix()to plot numpy matrices (eg. correlation/covariance matrix) - various minor fixes
shapes.py
Splinecan control the easing, the density of points along the line.- support for closed splines.
Text2Dcompletely rewritten. Can now update it after creation (e.g.mytxt.text("test").color("g"))
volume.py
- added
volume.shade()which can beTrueorFalse. Disable by default (was previously enabled) to be used in conjunction withvolume.lighting()to create a mesh-like rendering of the volume. (thanks to @nantille for debugging) - fixed example
interpolateVolume(thanks @rafaelmarch3 )
New/Revised examples:
vedo -r colorcubesvedo -r cuttervedo -r spline_easevedo -r gyroidvedo -r align6vedo -r colormap_listvedo -r blochvedo -r slicePlane1vedo -r slicePlane2vedo -r pygmsh_cutvedo -r mousehighlightvedo -r mousehovervedo -r line2mesh_quadsvedo -r line2mesh_trivedo -r pointsCutMesh2vedo -r hoverLegendvedo -r iminuitvedo -r pymeshlab1vedo -r timer_callback1vedo -r timer_callback2vedo -r fitCirclevedo -r anim_linesvedo -r earthquake_browservedo -r np_matrixvedo -r customAxes2vedo -r customAxes3vedo -r glyphs3vedo -r fitPolynomial1vedo -r fitPolynomial2vedo -r histo_gaussvedo -r plot_polarvedo -r densifycloudvedo -r interpolateVolume
- Python
Published by marcomusy almost 5 years ago
vedo - 2020.4.2
Main changes
Removed restriction VTK<9. Even so, VTK9 seems significantly slower and unexpected behaviors are still possible.
Various minor issues have been fixed.
addons.py:
- name change
addLight()->Light(). Improved API. Revised examplebasic/lights.py(thanks to @mit10000 and @theponpon input #249) - added size keyword for
addScalarBar()to control size in pixels (@RubendeBruin #237)
io.py:
- added default bitrate specification
Video.options="-b:v 8000k"(forffmpeg) seems to produce much better quality results - tested on linux system only.
plotter.py:
- modified plotter.addLight()
- added warning to non-existing camera keywords (@FedeClaudi #244)
- In rendering window:
- pressing
3cycles over predefined set of textures for clicked Mesh objects - pressing
Ipicks the color under the mouse (usescolors.pickColor())
- pressing
shapes.py:
- added class
Brace(see example scatter3.py) - can
sweep()aLineobject to create a surface
New/Revised examples:
vedo -r rgbaImage
vedo -r cutWithMesh2
vedo -r scatter3
vedo -r lights
vedo -r plot_density4d (thanks to @edmontz)
vedo -r app_raycaster
vedo -r app_isobrowser
- Python
Published by marcomusy about 5 years ago
vedo - 2020.4.1
New in vedo 2020.4.1
- Fixed
pipproblem (hopefully solving issue #185 raised by @RizzerOnGitHub) - Typo in readme fixed (thanks to @danielhrisca)
- Global variable
settings.collectable_actorsis now obsolete and void. - Various minor issues have been fixed too.
addons.py:
buildAxes()now admits a header titleaddScalarBar3D()returnsself, use self.scalarbar to access the scalarbar object (e.g for scaling, rotating and repositioning it)makeLUT()renamed tobuildLUT()with new examples, which includes indicators for NaN's and out of scale values:

base.py:
setTransform()->applyTransform()accepts now a python or numpy matrix (thanks to @FedeClaudi input)- added removePointArray() and removeCellArray() methods
- added
divergence(),vorticity()methods - added
removePointArray()andremoveCellArray()methods (thanks to @Tai-Hsien input)
colors.py:
- added
ask()method to prompt user input from command line - added
printc(dbg=1)mode to help debugging
io.py:
load()method can load and return normal npy or npz numpy data files
mesh.py:
clone(deep=True),deepcan be False to generate a shallow copy of the obj.
picture.py:
polygonize(), create a polygonal Mesh from a Picture by filling regions above a specified threshold
plotter.py:
flyTo(), fly camera to the specified point.export(), to export scene.npz
pointscloud.py
interpolateDataFrom(), Interpolate over source to port its data onto the current object using various kernels.
pyplot.py:
- removed directedgraph.clean() because it's just wrong (might marginally affect @DeepaMahm)
- added
whisker()function to generate whisker-style plots

shapes.py:
- added
CSplineclass, to generate a Cardinal Spline object.
New examples:
vedo -r interpolateMeshArray
vedo -r interpolateScalar1
vedo -r spline_draw
vedo -r mesh_lut
vedo -r whiskers
- Python
Published by marcomusy over 5 years ago
vedo - 2020.4.0
vedo 2020.4.0
Main changes - mesh and volume data is moved from the package to vedo.embl.es/examples/data https://vedo.embl.es/examples/data/ they are downloaded on the fly and cached - 14 new polygonized 3D fonts are available, making the old vtk default obsolete Font: Bongas Font: Calco Font: Comae Font: Glasgo Font: Inversionz Font: Kanopus Font: LionelOfParis Font: LogoType (supports Russian, Japanese and Chinese chars) Font: Normografo Font: Quikhand Font: SmartCouric Font: Theemim Font: VictorMono
Default font is Normografo, can be changed with e.g.
settings.useDefaultFont = "Theemim"


Latex-like syntax is supported in Text() allowing to use Greek and math symbols in axes and plot titles:
Type vedo -r fonts to generate the above tables.
addons:
- Ruler(): create a 3D ruler to indicate the distance of two points
- buildRulerAxes(): a new axis style (7) formed by 3 rulers
- many improvements to default axis style 1
- New axis style 11: generates a thin lined square floor
Plotter:
- show(..., newplotter=True) -> show(..., new=True)
- added methods: render(), resetCamera() and backgroundColor(c1, c2, at)
- can now change transparency using arrow keys instead of "m,./"
Pressing -+ cycles through available axes styles.
utils:
- added resampleArrays()
- systemReport()
- class dotdict: A dictionary supporting dot notation.
- trimesh2vtk() -> trimesh2vedo() (check @YimingXu1213)
- vtk2trimesh() -> vedo2trimesh()
io: - can now save and load object transformation to .mat file
mesh and pointclouds:
- coloring with pointColors() and cellColors() is merged into method cmap()
- meshes can be described by new vignette() and caption()
- useBounds() tells the camera to keep inot account mesh when resetting
- added gradient() to return the gradient of the input scalar as numpy array
shapes:
- convexHull() -> ConvexHull()
- added VedoLogo() to generate the 3D logo of the package
- major improvements to Text()
examples:
- new or updated examples are:
vedo -r isolines
vedo -r silhouette2 (thanks to @zhouzq-thu )
vedo -r meshquality
vedo -r mesh_smoother2
vedo -r vpolyscope (needs pip install polyscope)
vedo -r flag_labels
vedo -r customAxes
vedo -r fonts3d
vedo -r scatter2
vedo -r scatter3
vedo -r covid19
vedo -r caption
- Python
Published by marcomusy over 5 years ago
vedo - 2020.3.4
Various improvements
- new examples:
vedo -r multi_viewer
vedo -r clone2d
vedo -r plot_density
- read files and scenes from dropbox and/or web links
- vtkio.py moved to io.py
- fixed bug @jsanchez679 in cutWithMesh()
- mesh.normalize() does not shift to origin the mesh anymore
- improved axes=10 and axes=5 customization
- requires vtk<=8.1.2 as vtk-9 seems to have a lot of issues
- Python
Published by marcomusy over 5 years ago
vedo - 2020.3.0
General changes:
- addPointScalars and addPointVectors now are merged into new addPointArray() method.
- addCellScalars and addCellVectors now are merged into new addCellArray() method.
- added mesh.isobands() to produce color bands for scalars in a mesh, analogous to isolines()
- completely revised addScalarbar and addScalarBar3D which now works also for volumes.
- can export a full html page with k3d with exportWindow("page.html")
New application module contains more elaborated and high level functionalities:
- Slicer() to generate a Plotter window with slicing planes for the input Volume.
- Slicer2d() creates a 2D window with a single balck and white slice of a Volume, which can be oriented arbitrarily in space.
- RayCaster() generates a Plotter window for volume rendering using ray casting.
- IsosurfaceBrowser() generates a Plotter window for Volume isosurfacing using a slider.
- Browser() generates a Plotter window to browse a list of objects using a slider.
In backends module for jupyter notebooks:
- Updated k3d interface to add mesh and volumes names in the rendering menu
- Improved rendering for lines.
In volume module:
- added slicePlane() to slice a volume in arbitrary orientation
- Python
Published by marcomusy almost 6 years ago
vedo - 2020.2.0
- improved
vtkplotter.pyplotsubmodule - background color now defaults to white
- added
Mesh.idLabels()to generate cells and point ID labels - methods like
rotateX().pos()now operate in left-to-right order (as it should be) - Text is split into Text2D and Text (for 3D)
- Python
Published by marcomusy about 6 years ago
vedo - 2020.1.0
- revised plotting
- added matplotlib-like syntax as in
plot() - spherical histograms
- background color now defaults to white
- added
Mesh.idLabels()to generate cells and point ID labels - added new examples and general cleanup
- circleCI now works for the stable fenics release
- Python
Published by marcomusy about 6 years ago
vedo - 2020.0.2
- Added shapes Arrow2D and Arrows2D, SphericGrid, CubicGrid
- completely revised customizable axes=1 type
- axes can be created for each object independently
- quiver plots, scatter plots, error bands plots
- plotting in spherical coordinates
- Added type '2d' backend to plot static images in notebooks.
Available backends:
python from vtkplotter import * # embedWindow('2d') # embedWindow('k3d') # embedWindow('itk') # embedWindow('panel') # embedWindow(False) - Added wavefront format .OBJ writer
- Python
Published by marcomusy about 6 years ago
vedo - 2020.0.1
- added type axes=11 (horizontal grid)
- fix bug by @m-albert on
Volumefrom numpy object - fix typos in docs
- change old fashioned list(zip()) to np.stack()
- change [0]*len(z) to np.zeros_like(z)
- add testing directory with circleCI
- examples and package are now split into two separate repos
- added possibility to run any example from CLI
vtkplotter --run shrink.pyor list them all withvtkplotter --list - reshuffled methods by splitting actors.py module
- general improvements and stability
- some methods are now deprecated: getPoints becomes points() etc.
- Actor() becomes Mesh()
- added advanced/centerline.py examples
- Python
Published by marcomusy about 6 years ago
vedo - 2019.4.10
- added PDV paraview file reading.
- PDB protein data bank file reader
- added error bars in plotxy()
- fast fitting of 2d circles with utils.fitCircle2D()
- added flag-style pop-up labels for meshes and volumes
- added settings for resolving polygonal clashes with mesh edges
- built in set of parametric surfaces in shapes.py module
- improved plotting2d with error bars
- added warpMeshToPoint() method
- improved texture control, can pass texture coords explicitly
- fix trimesh problem with coloring vertices
- can use "panel" backend in notebooks
- Python
Published by marcomusy over 6 years ago
vedo - 2019.4.3
- added new itkwidgets as notebook backend (still incomplete)
- fixed dangerous bug in utils.cart2spher(x, y, z), which can seriously affect analyses using it.
- GUI for windows users, including a drag&drop icon
- new keypress options (lighting/shading), improved response
- Python
Published by marcomusy over 6 years ago
vedo -
add latex rendering probing points on volumes
- Python
Published by marcomusy almost 7 years ago