ShapeWorks is an open-source software that learns population-specific shape parameterization directly from user data. It enables the automated placement of dense corresponding landmarks on a group of shapes given as either binary volumes or surface meshes.
ShapeWorks supports the typical three-stage workflow for shape modeling.
The groom stage entails data inspection and preprocessing, including conversion of the input segmentations and surface meshes into the appropriate data types that are optimization friendly so that landmarks can be optimized in a numerically stable way. It also includes visualization for preprocessed/groomed data for quality control and we are planning to include annotations for user-defined modeling preferences such as landmarks and constraints.
The grooming stage entails rigid transformations to align samples for groupwise modeling and analysis. Imaging data (e.g., CT, MRI) becomes out of alignment and cannot be tied to the resulting shape models. We have developed segmentation-based and mesh-based grooming tools and associated python scripts (i.e., use cases) to carry volumetric data through each grooming step with the shapes (meshes or segmentations) such that they can be used for subsequent analysis and visualization. These tools include image reflection (for paired anatomies), isotropic voxel resampling, image padding, applying shape-based alignment to images (center of mass and rigid alignment), and image cropping.
The optimize stage is an iterative cycle of correspondences (landmarks/particles) optimization, visualization/quality control of resulting correspondence model and parameter tuning.
The model initialization proceeds simultaneously with the optimization in a multiscale fashion using an iterative particle splitting strategy to generate progressively detailed correspondence models with each split.
The analyze stage is the model analysis phase that supports the computation and visualization of the principal components of shape variation, average shapes, and group differences.
ShapeWorks tools are designed to support different usage scenarios, including execution on a local computing platform through terminal (command line) and the user-friendly Studio application, and remote systems such as Jupyter notebooks and private or public clouds.
ShapeWorks is currently a set of independent command line tools for preprocessing binary segmentations and surface meshes (Groom) and computing landmark-based shape models (Optimize). It also includes an interactive user interface called ShapeWorksStudio to analyze and visualize the optimized shape models (Analyze).
Coming soon! We are consolidating these tools into a single, reusable API (command) for ShapeWorks that is shared across different computational libraries in ShapeWorks. This single executable is highly flexible, modular, and loosely coupled, with standardized subcommands and interactive help to perform individual operations needed for a typical shape modeling workflow that includes the Groom, Optimize, and Analyze phases.
Coming soon! We are developing Python bindings to enable users to script their customized shape modeling workflows. Exemplar use cases will be updated to use these Python APIs to showcase their use and flexibility.
ShapeWorksStudio is a cross-platform graphical user interface (GUI) to support the standard shape analysis workflow needed by most ShapeWorks users, enabling a wide variety of research scenarios. It is currently supporting image-based grooming and is actively under developement to support surface meshes, more sophisticated grooming operations (including user annotations) and offline processing. ShapeWorksStudio enable real-time parameter tuning and visualization of the optimization process, and statistical analyses.
Under construction ... Stay tuned!
This example is a steeping stone for the user to get familiar with the workflow of ShapeWorks. This use case represent the standard use version of a shape modeling workflow using ShapeWorks.
This use case is designed for the fixed domains functionality of ShapeWorks. The fixed domains are used for the cases where we need to place correspondences on new shapes using a pre-existing shape model.
This segmentation-based use case demonstrates using the ShapeWorks functionality to groom shapes (given as binary segmentations) and their corresponding imaging data (e.g., MRI). This use case also showcase single scale and multiscale optimization for correspondence models.
This mesh-based use case demonstrates using ShapeWorks tools to convert shapes (femurs in this case) given as surface mehes to signed distance maps (the currently supported data type to optimize the particle system). It also show grooming imaging data (CT scans) of the hip to be tied with the groom shape data. As femur meshes in this dataset have been segmented with various shaft lengths, this use case include an interactive tool for the user to select a cutting plane on a single mesh (e.g., representative sample) to remove this variablity so that it is not captured in the shape model.
You can use any of these use cases as a starting point and customize it to your own dataset. Please contact ShapeWorks team for questions and guidance to customize a use case to your data.
- How to run and see ShapeWorks in action on exemplar use cases.
- How to preprocess or groom your dataset.
- How to optimize your shape model.
- How to visualize and analyze your optimized shape model.
- How to contact ShapeWorks team to help you customize a use case to your own dataset.
- How to get the latest ShapeWorks binary release or up-to-date development builds from the master branch for Windows, Mac, or Linux. Please understand that these are in-progress development builds, not official releases.
- How to install ShapeWorks on Windows, Mac, or Linux.
- How to build ShapeWorks from source (for developers).