{"id":13422193,"url":"https://github.com/marcomusy/vedo","last_synced_at":"2025-12-12T01:02:04.751Z","repository":{"id":37758170,"uuid":"110261047","full_name":"marcomusy/vedo","owner":"marcomusy","description":"A python module for scientific analysis of 3D data based on VTK and Numpy","archived":false,"fork":false,"pushed_at":"2025-05-09T14:25:35.000Z","size":91862,"stargazers_count":2135,"open_issues_count":154,"forks_count":271,"subscribers_count":30,"default_branch":"master","last_synced_at":"2025-05-09T15:39:31.986Z","etag":null,"topics":["3d","3d-graphics","finite-elements","mesh","numpy","python","scientific-research","scientific-visualization","simulations","visualization","vtk"],"latest_commit_sha":null,"homepage":"https://vedo.embl.es","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcomusy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-11-10T15:17:47.000Z","updated_at":"2025-05-09T14:25:39.000Z","dependencies_parsed_at":"2023-09-23T18:07:48.596Z","dependency_job_id":"5a58662b-c171-46fd-adf0-2ce47de62266","html_url":"https://github.com/marcomusy/vedo","commit_stats":{"total_commits":1740,"total_committers":47,"mean_commits":37.02127659574468,"dds":"0.18045977011494252","last_synced_commit":"2d1004d348b8a13bee01baa8b93432b9615da906"},"previous_names":["marcomusy/vtkplotter"],"tags_count":59,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcomusy%2Fvedo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcomusy%2Fvedo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcomusy%2Fvedo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcomusy%2Fvedo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcomusy","download_url":"https://codeload.github.com/marcomusy/vedo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253969268,"owners_count":21992265,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d","3d-graphics","finite-elements","mesh","numpy","python","scientific-research","scientific-visualization","simulations","visualization","vtk"],"created_at":"2024-07-30T23:00:38.876Z","updated_at":"2025-12-12T01:02:04.493Z","avatar_url":"https://github.com/marcomusy.png","language":"Python","readme":"\n![vlogo](https://user-images.githubusercontent.com/32848391/110344277-9bc20700-802d-11eb-8c0d-2e97226a9a32.png)\n\n\n[![lics](https://img.shields.io/badge/license-MIT-blue.svg)](https://en.wikipedia.org/wiki/MIT_License)\n[![Anaconda-Server Badge](https://anaconda.org/conda-forge/vedo/badges/version.svg)](https://anaconda.org/conda-forge/vedo)\n[![Ubuntu 24.10 package](https://repology.org/badge/version-for-repo/ubuntu_25_04/vedo.svg)](https://repology.org/project/vedo/versions)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.4587871.svg)](https://doi.org/10.5281/zenodo.4587871)\n[![Downloads](https://static.pepy.tech/badge/vedo)](https://pepy.tech/project/vedo)\n[![CircleCI](https://circleci.com/gh/marcomusy/vedo.svg?style=svg)](https://circleci.com/gh/marcomusy/vedo)\n\n\nYour friendly python module\nfor scientific analysis and **v**isualization of **3d** **o**bjects.\u003cbr\u003e\n\n\n## 💾  Installation\n```bash\npip install vedo\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eadditional installation details \u003ci\u003e\u003cb\u003e[click to expand]\u003c/b\u003e\u003c/i\u003e \u003c/summary\u003e\n\n- To install the latest _dev_ version of `vedo`:\n\n```bash\npip install -U git+https://github.com/marcomusy/vedo.git\n```\n\n\n- To install from the conda-forge channel:\n\n```bash\nconda install -c conda-forge vedo\n```\n\n\u003c/details\u003e\n\n\n## 📙  Documentation\nThe webpage of the library with documentation is available [**here**](https://vedo.embl.es).\n\n📌 **Need help? Have a question, or wish to ask for a missing feature?**\nDo not hesitate to ask any questions on the [**image.sc** forum](https://forum.image.sc/)\nor by opening a [**github issue**](https://github.com/marcomusy/vedo/issues).\n\n\n## 🎨  Features\nThe library includes a [large set of working examples](https://github.com/marcomusy/vedo/tree/master/examples)\nfor a wide range of functionalities\n\n\u003cdetails\u003e\n\u003csummary\u003eworking with polygonal meshes and point clouds \u003ci\u003e\u003cb\u003e[click to expand]\u003c/b\u003e\u003c/i\u003e \u003c/summary\u003e\n\u003ci\u003e\n\n- Import meshes from VTK format, STL, Wavefront OBJ, 3DS, Dolfin-XML, Neutral, GMSH, OFF, PCD (PointCloud),\n- Export meshes as ASCII or binary to VTK, STL, OBJ, PLY ... formats.\n- Analysis tools like Moving Least Squares, mesh morphing and more..\n- Tools to visualize and edit meshes (cutting a mesh with another mesh, slicing, normalizing, moving vertex positions, etc..).\n- Split mesh based on surface connectivity. Extract the largest connected area.\n- Calculate areas, volumes, center of mass, average sizes etc.\n- Calculate vertex and face normals, curvatures, feature edges. Fill mesh holes.\n- Subdivide faces of a mesh, increasing the number of vertex points. Mesh simplification.\n- Coloring and thresholding of meshes based on associated scalar or vectorial data.\n- Point-surface operations: find nearest points, determine if a point lies inside or outside of a mesh.\n- Create primitive shapes: spheres, arrows, cubes, torus, ellipsoids...\n- Generate glyphs (associate a mesh to every vertex of a source mesh).\n- 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.\n- Straightforward support for multiple sync-ed or independent renderers in  the same window.\n- Registration (alignment) of meshes with different techniques.\n- Mesh smoothing.\n- Delaunay triangulation in 2D and 3D.\n- Generate meshes by joining nearby lines in space.\n- Find the closest path from one point to another, traveling along the edges of a mesh.\n- Find the intersection of a mesh with lines, planes or other meshes.\n- Interpolate scalar and vectorial fields with Radial Basis Functions and Thin Plate Splines.\n- Add sliders and buttons to interact with the scene and the individual objects.\n- Visualization of tensors.\n- Analysis of Point Clouds\n- Moving Least Squares smoothing of 2D, 3D and 4D clouds\n- Fit lines, planes, spheres and ellipsoids in space\n- Identify outliers in a distribution of points\n- Decimate a cloud to a uniform distribution.\n\n\u003c/i\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eworking with volumetric data and tetrahedral meshes\u003c/summary\u003e\n\u003ci\u003e\n\n- Import data from VTK format volumetric TIFF stacks, DICOM, SLC, MHD and more\n- Import 2D images as PNG, JPEG, BMP\n- Isosurfacing of volumes\n- Composite and maximum projection volumetric rendering\n- Generate volumetric signed-distance data from an input surface mesh\n- Probe volumes with lines and planes\n- Generate stream-lines and stream-tubes from vectorial fields\n- Slice and crop volumes\n- Support for other volumetric structures (structured and grid data)\n\n\u003c/i\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eplotting and histogramming in 2D and 3D\u003c/summary\u003e\n\u003ci\u003e\n\n- Polygonal 3D text rendering with Latex-like syntax and unicode characters, with 30 different fonts.\n- Fully customizable axis styles\n- donut plots and pie charts\n- Scatter plots in 2D and 3D\n- Surface function plotting\n- 1D customizable histograms\n- 2D hexagonal histograms\n- Polar plots, spherical plots and histogramming\n- Draw latex-formatted formulas in the rendering window.\n- Quiver, violin, whisker and stream-line plots\n- Graphical markers analogous to matplotlib\n\n\u003c/i\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eintegration with other libraries\u003c/summary\u003e\n\u003ci\u003e\n\n- Integration with the [Qt5](https://www.qt.io/) framework.\n- Support for [FEniCS/Dolfin](https://fenicsproject.org/) platform for visualization of PDE/FEM solutions.\n- Interoperability with the [trimesh](https://trimsh.org/), [pyvista](https://github.com/pyvista/pyvista) and [pymeshlab](https://github.com/cnr-isti-vclab/PyMeshLab) libraries.\n- Export 3D scenes and embed them into a [web page](https://vedo.embl.es/examples/fenics_elasticity.html).\n- 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)).\n\n\u003c/i\u003e\n\u003c/details\u003e\n\n\n### ⌨  Command Line Interface\nVisualize a polygonal mesh or a volume from a terminal window simply with:\n```bash\nvedo https://vedo.embl.es/examples/data/embryo.tif\n```\n\n\n\u003cdetails\u003e  \n\u003csummary\u003evolumetric files (slc, tiff, DICOM...) can be visualized in different modes \u003ci\u003e\u003cb\u003e[click to expand]\u003c/b\u003e\u003c/i\u003e \u003c/summary\u003e\n\n\n|Volume 3D slicing\u003cbr\u003e`vedo --slicer embryo.slc`| Ray-casting\u003cbr\u003e`vedo -g`| 2D slicing\u003cbr\u003e`vedo --slicer2d`|\n|:--------|:-----|:--------|\n| ![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)  |\n\n\n\u003c/details\u003e\n\n\nType `vedo -h` for the complete list of options.\u003cbr\u003e\n\n## 🐾  Gallery\n`vedo` currently includes 300+ working [examples](https://github.com/marcomusy/vedo/tree/master/examples) and [notebooks](https://github.com/marcomusy/vedo/tree/master/examples/notebooks). \u003cbr\u003e\n\nRun any of the built-in examples. In a terminal type: `vedo -r warp2`\n\nCheck out the example galleries organized by subject here:\n\n\u003ca href=\"https://vedo.embl.es/#gallery\" target=\"_blank\"\u003e\n\n![](https://user-images.githubusercontent.com/32848391/104370203-d1aba900-551e-11eb-876c-41e0961fcdb5.jpg)\n\n\u003c/a\u003e\n\n\n## ✏  Contributing\n\nAny contributions are **greatly appreciated**!\nIf you have a suggestion that would make this better,\nplease fork the repo and create a pull request. This is how:\n```bash\n# 1. Fork the repository on GitHub then clone your fork locally:\ngit clone https://github.com/your-username/vedo.git\n# 2. Create a new branch for your feature or bugfix:\ngit checkout -b feature/my-feature\n# 3. Make your changes and commit them:\ngit commit -m \"Description of my feature\"\n# 4. Push your changes to your fork:\ngit push origin feature/my-feature\n# 5. Open a Pull Request on the main repository.\n```\nYou can also simply open an issue with the tag \"enhancement\".\n\n\n## 📜  References\n\n**Scientific publications leveraging `vedo`:**\n\n- X. Diego *et al.*:\n*\"Key features of Turing systems are determined purely by network topology\"*,\nPhys. Rev. X 8, 021071,\n[DOI](https://journals.aps.org/prx/abstract/10.1103/PhysRevX.8.021071).\n- M. Musy, K. Flaherty *et al.*:\n*\"A Quantitative Method for Staging Mouse Limb Embryos based on Limb Morphometry\"*,\nDevelopment (2018) 145 (7): dev154856,\n[DOI](http://dev.biologists.org/content/145/7/dev154856).\n- F. Claudi, A. L. Tyson, T. Branco, *\"Brainrender. A python based software for visualisation\nof neuroanatomical and morphological data.\"*,\neLife 2021;10:e65751,\n[DOI](https://doi.org/10.7554/eLife.65751).\n- J. S. Bennett, D. Sijacki,\n*\"Resolving shocks and filaments in galaxy formation simulations: effects on gas properties and\nstar formation in the circumgalactic medium\"*,\nMonthly Notices of the Royal Astronomical Society, Volume 499, Issue 1,\n[DOI](https://doi.org/10.1093/mnras/staa2835).\n- J.D.P. Deshapriya *et al.*,\n*\"Spectral analysis of craters on (101955) Bennu\"*.\nIcarus 2020,\n[DOI](https://doi.org/10.1016/j.icarus.2020.114252).\n- A. Pollack *et al.*,\n*\"Stochastic inversion of gravity, magnetic, tracer, lithology, and fault data\nfor geologically realistic structural models: Patua Geothermal Field case study\"*,\nGeothermics, Volume 95, September 2021,\n[DOI](https://doi.org/10.1016/j.geothermics.2021.102129).\n- X. Lu *et al.*,\n*\"3D electromagnetic modeling of graphitic faults in the Athabasca\n Basin using a finite-volume time-domain approach with unstructured grids\"*,\nGeophysics,\n[DOI](https://doi.org/10.1190/geo2020-0657.1).\n- M. Deepa Maheshvare *et al.*,\n*\"A Graph-Based Framework for Multiscale Modeling of Physiological Transport\"*,\nFront. Netw. Physiol. 1:802881,\n[DOI](https://www.frontiersin.org/articles/10.3389/fnetp.2021.802881/full).\n- F. Claudi, T. Branco,\n*\"Differential geometry methods for constructing manifold-targeted recurrent neural networks\"*,\nbioRxiv 2021.10.07.463479,\n[DOI](https://doi.org/10.1101/2021.10.07.463479).\n- J. Klatzow, G. Dalmasso, N. Martínez-Abadías, J. Sharpe, V. Uhlmann,\n*\"µMatch: 3D shape correspondence for microscopy data\"*,\nFront. Comput. Sci., 15 February 2022.\n[DOI](https://doi.org/10.3389/fcomp.2022.777615)\n- G. Dalmasso *et al.*, *\"4D reconstruction of murine developmental trajectories using spherical harmonics\"*,\nDevelopmental Cell 57, 1–11 September 2022,\n[DOI](https://doi.org/10.1016/j.devcel.2022.08.005).\n- D.J.E Waibel *et al.*, *\"Capturing Shape Information with Multi-scale Topological Loss Terms for 3D Reconstruction\"*,\nLecture Notes in Computer Science, vol 13434. Springer, Cham. \n[DOI](https://doi.org/10.1007/978-3-031-16440-8_15).\n- N. Lamb *et al.*, *\"DeepJoin: Learning a Joint Occupancy, Signed Distance, and Normal Field Function for Shape Repair\"*,\nACM Transactions on Graphics (TOG), vol 41, 6, 2022.\n[DOI](https://dl.acm.org/doi/abs/10.1145/3550454.3555470)\n- J. Cotterell *et al.*, *\"Cell 3D Positioning by Optical encoding (C3PO) and its application to spatial transcriptomics\"*,\nbioRxiv 2024.03.12.584578.\n[DOI](https://doi.org/10.1101/2024.03.12.584578)\n- L. Aviñó-Esteban *et al.*, *\"Spatio-temporal reconstruction of gene expression patterns in developing mice\"*,\nDevelopment (2025) 152.\n[DOI](https://doi.org/10.1242/dev.204313)\n- J.S. Posada *et al., \"morphoHeart: A quantitative tool for integrated 3D morphometric analyses of heart and ECM during embryonic development\"*, PLOS Biology 23(1).\n[DOI](https://doi.org/10.1371/journal.pbio.3002995)\n\n**Have you found this software useful for your research? Star ✨ the project and cite it as:**\n\nM. Musy  \u003cem\u003eet al.\u003c/em\u003e,\n\"\u003ccode\u003evedo\u003c/code\u003e, a python module for scientific analysis and visualization of 3D objects and point clouds\",\nZenodo, 2021, \u003ca href=\"https://doi.org/10.5281/zenodo.7019968\"\u003edoi: 10.5281/zenodo.7019968\u003c/a\u003e.\n\n[![embl_logo](https://user-images.githubusercontent.com/32848391/58046204-e9157180-7b44-11e9-81c9-e916cdf9ba84.gif)](https://www.embl.es)\n\n\n","funding_links":[],"categories":["Python","Visualization","VTK","🌻 Visualization","Python - Simulation Connection"],"sub_categories":["Software tools","Mesh tools","2018"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcomusy%2Fvedo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcomusy%2Fvedo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcomusy%2Fvedo/lists"}