Process and analyze surfaces using open3d and vedo in napari

    Workflow step:
    ClusteringDistribution-based clustering
    VisualizationImage visualisationSurface rendering
    Image annotationSparse image annotationLandmark assignment
    Image SegmentationCell segmentation

License PyPI Python Version tests codecov Development Status napari hub

Process and analyze surfaces using open3d and vedo in napari.


You find a couple of surface generation, smoothing and analysis functions in the menu Tools > Surfaces and Tools > Points. For detailed explanation of the underlying algorithms, please refer to the open3d documentation. Some code snippets and the knot example data have been taken from the open3d project which is MIT licensed and from the vedo documentation which is MIT licensed. The Standford Bunny example dataset has been taken from the The Stanford 3D Scanning Repository.

For processing meshes in Python scripts, see the demo notebook. There you also learn how this screenshot is made:


For performing quantitative measurements of meshes in Python scripts, see the demo notebook. There you also learn how this screenshot is made:


Surface measurements and annotations

Using the menu Tools > Measurement > Surface quality table (vedo, nppas) you can derived quantiative measurements of the vertices in a given surface layer.


To differentiate regions when analyzing those measurements it is recommended to use the menu Tools > Surfaces > Annotate surface manually (nppas) after measurements have been made. This tool allows you to draw annotation label values on the surface. It is recommended to do activate a colorful colormap such as hsv before starting to draw annotations. Furthermore, set the maximum of the contrast limit range to the number of regions you want to annotate + 1. Annotations can be drawn as freehand lines and circles.


After measurements and annotations were done, you can save the annotation in the same measurement table using the menu Tools > Measurement > Surface quality/annotation to table (nppas)


Measurement visualization

To visualize measurements on the surface, just double-click on the table column headers. This also allows to visualize measurements and annotations side-by-side.



You can install napari-process-points-and-surfaces via pip:

pip install napari-process-points-and-surfaces

See also

There are other napari plugins with similar / overlapping functionality


Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.


Distributed under the terms of the BSD-3 license, "napari-process-points-and-surfaces" is free and open source software


If you encounter any problems, please create a thread on along with a detailed description and tag @haesleinhuepf.


  • 0.3.3

Last updated:

  • 15 October 2022

First released:

  • 05 February 2022


  • BSD-3-Clause

Supported data:

  • Information not submitted

Plugin type:

GitHub activity:

  • Stars: 14
  • Forks: 4
  • Issues + PRs: 18

Python versions supported:

Operating system:


  • napari-plugin-engine (>=0.1.4)
  • numpy
  • napari
  • napari-tools-menu (>=0.1.14)
  • napari-time-slicer (>=0.4.5)
  • napari-workflows (>=0.2.3)
  • open3d
  • ipyvtklink
  • vedo
  • napari-skimage-regionprops (>=0.5.5)
  • pandas
  • imageio (!=2.22.1)

Sign up to receive updates