We have added a new module called “Dynamic Modeler” to the latest Slicer preview releases (4.11). This module provides an extensible framework for automatic processing of mesh nodes by executing “Tools” on the input to generate output mesh.
Output of a tool can be used as input in another tool, which allows specification of complex editing operations. This is similar to “parametric editing” in engineering CAD software, but this module is specifically developed to work well on complex meshes used in biomedical applications (while most engineering CAD software does not directly support parametric editing of complex polygonal meshes).
- Plane cut: Cut a plane into two separate meshes using any number of markup planes or slice views. The planes can be combined using union, intersection and difference boolean operations.
- Mirror: Reflect the points in a model across the input plane. Useful in conjunction with the plane cut tool to cut a model in half and then mirror the selected half accross the cutting plane.
- Curve cut: Extract a region from the surface that is enclosed by a markup curve.
- Boundary cut: Extract a region from the surface that is enclosed by many markup curves and planes. In instances where there is ambiguity about which region should be extracted, a markup fiducial can be used to specify the region of interest.
- Append: Combine multiple models into a single output model.
- To enable automatic update (so that outputs are automatically recomputed whenever inputs change), check the checkbox on the Apply button.
- Tools cannot be run continuously if one of the input nodes is present in the output. The tool can still be run on demand by clicking the apply button.
Any suggestions and feature requests are welcome. Based on feedback we get, we may add more tools, such as: rotate around axis, shell, extrude, intersect, parametric shapes (cube, cylinder, etc.).
Parcellating white matter surface with curves and planes:
Skull mirroring for facial deformity reconstruction:
- New tools can be added by any module by subclassing the vtkSlicerDynamicModelerTool class and registering the new tool with the vtkSlicerDynamicModelerToolFactory.
- Tools can be added to models in the scene by adding a vtkMRMLDynamicModelerNode to the scene, specifying the tool name, setting the parameters, and setting the input/output node references as defined by the tool.
Development was funded in part by CANARIE’s Research Software Program, OpenAnatomy, and Brigham and Women’s Hospital through NIH grant R01MH112748.