vedo

vlogo

lics Anaconda-Server Badge Ubuntu 24.10 package DOI Downloads CircleCI

Your friendly python module for scientific analysis and visualization of 3d objects.

💾 Installation

pip install vedo
additional installation details [click to expand] - To install the latest _dev_ version of `vedo`: ```bash pip install -U git+https://github.com/marcomusy/vedo.git ``` - To install from the conda-forge channel: ```bash conda install -c conda-forge vedo ```

📙 Documentation

The webpage of the library with documentation is available here.

📌 Need help? Have a question, or wish to ask for a missing feature? Do not hesitate to ask any questions on the image.sc forum or by opening a github issue.

🎨 Features

The library includes a large set of working examples for a wide range of functionalities

working with polygonal meshes and point clouds [click to expand] - Import meshes from VTK format, STL, Wavefront OBJ, 3DS, Dolfin-XML, Neutral, GMSH, OFF, PCD (PointCloud), - Export meshes as ASCII or binary to VTK, STL, OBJ, PLY ... formats. - Analysis tools like Moving Least Squares, mesh morphing and more.. - Tools to visualize and edit meshes (cutting a mesh with another mesh, slicing, normalizing, moving vertex positions, etc..). - Split mesh based on surface connectivity. Extract the largest connected area. - Calculate areas, volumes, center of mass, average sizes etc. - Calculate vertex and face normals, curvatures, feature edges. Fill mesh holes. - Subdivide faces of a mesh, increasing the number of vertex points. Mesh simplification. - Coloring and thresholding of meshes based on associated scalar or vectorial data. - Point-surface operations: find nearest points, determine if a point lies inside or outside of a mesh. - Create primitive shapes: spheres, arrows, cubes, torus, ellipsoids... - Generate glyphs (associate a mesh to every vertex of a source mesh). - Create animations easily by just setting the position of the displayed objects in the 3D scene. Add trailing lines and shadows to moving objects is supported. - Straightforward support for multiple sync-ed or independent renderers in the same window. - Registration (alignment) of meshes with different techniques. - Mesh smoothing. - Delaunay triangulation in 2D and 3D. - Generate meshes by joining nearby lines in space. - Find the closest path from one point to another, traveling along the edges of a mesh. - Find the intersection of a mesh with lines, planes or other meshes. - Interpolate scalar and vectorial fields with Radial Basis Functions and Thin Plate Splines. - Add sliders and buttons to interact with the scene and the individual objects. - Visualization of tensors. - Analysis of Point Clouds - Moving Least Squares smoothing of 2D, 3D and 4D clouds - Fit lines, planes, spheres and ellipsoids in space - Identify outliers in a distribution of points - Decimate a cloud to a uniform distribution.
working with volumetric data and tetrahedral meshes - Import data from VTK format volumetric TIFF stacks, DICOM, SLC, MHD and more - Import 2D images as PNG, JPEG, BMP - Isosurfacing of volumes - Composite and maximum projection volumetric rendering - Generate volumetric signed-distance data from an input surface mesh - Probe volumes with lines and planes - Generate stream-lines and stream-tubes from vectorial fields - Slice and crop volumes - Support for other volumetric structures (structured and grid data)
plotting and histogramming in 2D and 3D - Polygonal 3D text rendering with Latex-like syntax and unicode characters, with 30 different fonts. - Fully customizable axis styles - donut plots and pie charts - Scatter plots in 2D and 3D - Surface function plotting - 1D customizable histograms - 2D hexagonal histograms - Polar plots, spherical plots and histogramming - Draw latex-formatted formulas in the rendering window. - Quiver, violin, whisker and stream-line plots - Graphical markers analogous to matplotlib
integration with other libraries - Integration with the [Qt5](https://www.qt.io/) framework. - Support for [FEniCS/Dolfin](https://fenicsproject.org/) platform for visualization of PDE/FEM solutions. - Interoperability with the [trimesh](https://trimsh.org/), [pyvista](https://github.com/pyvista/pyvista) and [pymeshlab](https://github.com/cnr-isti-vclab/PyMeshLab) libraries. - Export 3D scenes and embed them into a [web page](https://vedo.embl.es/examples/fenics_elasticity.html). - Embed 3D scenes in *jupyter* notebooks with [K3D](https://github.com/K3D-tools/K3D-jupyter) (can export an interactive 3D-snapshot page [here](https://vedo.embl.es/examples/geo_scene.html)).

⌨ Command Line Interface

Visualize a polygonal mesh or a volume from a terminal window simply with:

vedo https://vedo.embl.es/examples/data/embryo.tif
volumetric files (slc, tiff, DICOM...) can be visualized in different modes [click to expand] |Volume 3D slicing
`vedo --slicer embryo.slc`| Ray-casting
`vedo -g`| 2D slicing
`vedo --slicer2d`| |:--------|:-----|:--------| | ![slicer](https://user-images.githubusercontent.com/32848391/80292484-50757180-8757-11ea-841f-2c0c5fe2c3b4.jpg) | ![isohead](https://user-images.githubusercontent.com/32848391/58336107-5a09a180-7e43-11e9-8c4e-b50e4e95ae71.gif) | ![viz_slicer](https://user-images.githubusercontent.com/32848391/90966778-fc955200-e4d6-11ea-8e29-215f7aea3860.png) |

Type vedo -h for the complete list of options.

vedo currently includes 300+ working examples and notebooks.

Run any of the built-in examples. In a terminal type: vedo -r warp2

Check out the example galleries organized by subject here:

</a>

✏ Contributing

Any contributions are greatly appreciated! If you have a suggestion that would make this better, please fork the repo and create a pull request. This is how:

# 1. Fork the repository on GitHub then clone your fork locally:
git clone https://github.com/your-username/vedo.git
# 2. Create a new branch for your feature or bugfix:
git checkout -b feature/my-feature
# 3. Make your changes and commit them:
git commit -m "Description of my feature"
# 4. Push your changes to your fork:
git push origin feature/my-feature
# 5. Open a Pull Request on the main repository.

You can also simply open an issue with the tag “enhancement”.

📜 References

Scientific publications leveraging vedo:

Have you found this software useful for your research? Star ✨ the project and cite it as:

M. Musy et al., “vedo, a python module for scientific analysis and visualization of 3D objects and point clouds”, Zenodo, 2021, doi: 10.5281/zenodo.7019968.

embl_logo