Introducing the New & Improved SurfaceToolbox Extension for SlicerSALT

SurfaceToolbox is a module in 3D Slicer/SlicerSALT that provides a set of tools for editing and processing 3D surface models. It currently allows users to perform single-model operations like smoothing, decimation (reducing the number of polygons), and connectivity filtering. These tools are especially useful for preparing models for visualization, analysis, or 3D printing in medical and research workflows.

The SlicerSALT team previously improved the SurfaceToolbox module by migrating some of MeshMath’s functionalities. In our recent SlicerSALT 6.0 release, we added more functionalities from MeshMath, aiming to support multi-mesh operations and data exchange between different types of data objects. Specifically, five new modules are added including Mesh Alignment, Average Mesh, Surface Distance, Surface Feature Extractor and Mesh Data Imprinter. These modules are available under the Surface Models category in SlicerSALT 6.0. Below, We briefly introduce the new modules and how they may be used for individual and population shape analysis purposes.

Mesh Alignment module

The MeshAlignment module allows performing alignment operations on shape models with or without pointwise correspondence. The selected source models will be aligned to the target model of choice. Users can either choose the “Iterative Closest Point” (ICP) algorithm from the “Method” box to align shapes without correspondence (e.g. models generated directly from the segmentations) or the “Procrustes” to align shapes with correspondence. Fig.1 shows how the alignment is performed on a toy example of one sphere and two ellipsoids. Clicking on the “Toggle models” button will switch between showing the pre- and post-alignment shapes.

Fig.1: Use Mesh Alignment module to perform alignment and toggle between pre- and post-alignment shapes. 

Average Mesh module

We also added a light weighted Average Mesh module for computing the average mesh from a set of correspondence established models. The “Arithmetic” option simply computes the average shape as the output model. If only two input models are selected, “Weighted” option can be chosen from the “Method” box and the output model will be computed as a weighted average (linear interpolation) between the two input shapes as shown in Fig.2.

Fig.2: Weighted average between two ellipsoids.

Surface Distance module

The Surface Distance module allows computation of distances from source models to the target model of selection. Either the absolute surface distance (does not require pointwise correspondence) or the pointwise distance (require correspondence) can be computed, which will be stored in the source models as point data. After computation, the distance field is shown on all source models at a uniform color scale for visualization and comparison purposes. 

Fig.3: Absolute surface distance from two ellipsoids (source models) to the sphere in the middle (target model).
Fig.4: Corresponding pointwise distance from two ellipsoids (source models) to the sphere in the middle (target model).

Surface Feature Extractor module

We also added an easy-to-use Surface Feature Extractor module that computes and stores basic shape features on input models by incorporating and extending a previous C++ implementation. After computing the selected properties, users may choose from the “Data Selection” box to visualize properties of interest (Fig.5). For vector data like position and normal, only the first component will be shown in the colormap. Users may leverage our Shape Population Viewer in SlicerSALT to visualize vector data fields (Fig.6). The selected property can be exported to .csv files for further postprocessing and analysis. If a vertex property is selected, the exported file will contain the property data for all input models with each column representing the selected data field of one model. If a model property is selected, the table under the “Model Properties” group will be exported.

Fig.5: Compute surface features and show minimum curvature as colormap on input models.
Fig.6: Visualize computed surface normal vector in Shape Population Viewer.

Mesh Data Imprinter module

Last, we added the Mesh Data Imprinter module which allows imprinting data from a model, an image or a file to a target model for visualization and analysis.

  • Mesh-to-mesh: this can be used for transferring data from an individual model to another template model with different topology. Our recent blog post on population study in osteoarthritis is an example use case of such an operation, where the thickness field from a new cartilage is projected to a template cartilage for 3D to 2D mapping and visualization.
Fig.7: Mesh Data Imprinter module.
  • Image-to-mesh: this functionality interpolates image data to target model with choice of linear, nearest or cubic interpolation kernels.
Fig.8: Imprint data field to a sphere model from a binary image with a cube in the middle.
  • File-to-mesh: this is used for importing scalar point data fields from a .csv file. An example usage is to import statistical analysis results from postprocessed surface properties generated by Surface Feature Extractor. Note: the number of rows (excluding header row) should match the number of points of the target model. The scalar field to be visualized can be selected from the Models module (Fig.10).
Fig.9: Import data from a .csv file and visualize the data field (data2) in SlicerSALT.
Fig.10: Choose an imported scalar field to be visualized in the Models module.

Summary

As part of the SlicerSALT 6.0 release, we introduced updated functionality to the Surface Toolbox extension in SlicerSALT with five new modules. These intuitive-to-use modules allow for multi-mesh operations and data exchange between different types of data objects, which can be leveraged and fit in various types of shape analysis frameworks. Users are encouraged to test and provide feedback by creating github issues or contact us at https://www.kitware.com/contact/.

Check the recording of our most recent SlicerSALT webinar here!

Acknowledgements

SlicerSALT is made possible through contributions from a multidisciplinary team coming from Kitware, NYU Tandon School of Engineering and The University of North Carolina at Chapel Hill. The development of SlicerSALT is supported by the NIH National Institute of Biomedical Imaging Bioengineering R01EB021391 (Shape Analysis Toolbox for Medical Image Computing Projects).

Leave a Reply