The NIH/NIGMS
Center for Integrative Biomedical Computing

We are excited to announce the new release of our software, ShapeWorks 6.2!

To download installation packages for Windows/Mac/Linux and/or the source code, please visit https://github.com/SCIInstitute/ShapeWorks/releases/tag/v6.2.0



What is new in ShapeWorks 6.2?

release6.2

New Features in Studio

Multiple domains in Studio: Support for multiple alignment strategies is now present in Studio. It allows analysis with and without articulation with a choice of reference domain or global alignment. See Multiple Domain Alignments

New analysis features in Studio: Shape evaluation charts for compactness, specificity, and generalization have been added. See Metrics Panel for more details.

Usability features in Studio: New usability features such as group p-value display, feature map scalar control, surface opacity controls on a per doamin basis, message history window, suppressible error dialog, narrow band optimization parameter, multiple domain expore options (combined and support) and allow initial landmark points. See New in ShapeWorks Studio 6.2 for more details.


New Mesh Tools & More ...

New Mesh grooming tools: Grooming tools and operators for meshes, including curvature, surface normals, and geodesic distance computation, are supported from all three different interfaces - command line, C++ and Python.

Free-form constraints (FFCs): FFCs support has been added. Added a unit test for FFCs, a typical sphere unit test with a constraint that cuts the sphere like a tennis ball grove. Also added a unit test with two domains, both spheres in different locations. The first sphere has one cutting plane and 25 sphere constraints, and the second sphere has one cutting plane and one free form constraint. See Free-Form Constraints for more details.

Transforms in Image and Mesh API: Separate transforms such as center of mass, rigid registration and thin plate spiline can be created. They are passed efficiently and transparently between Python and C++. These transform functions create and accept numpy arrays instead of using proprietary transform type in the Python API. A jupyter notebook was to demonstrate this for images and meshes.

Mesh fields: Added support for passing multi-valued fields in addition to scalar fields. Previously field operations such as getField, setField supported only single-value components. Now, these operations can be used for multi-valued components as well. This is useful for associated surface meshes with positional (i.e., spatially varying) features, e.g., application-specific features such as cortical thickness and bone density, and computationally driven features such as geodesics to anatomical landmarks, curvatures, and surface normals.

Optimizer exports alignment transforms: Write individual procrustes transforms. The ShapeWorks Optimizer can now export individual procrustes transform files if requested. Use the xml tag 1 to enable it. Additionally, for project spreadsheets (e.g., Studio), individual procrustes transforms will be added as additional columns in the data sheet. See Optimize for more details.

Fix processing of all orientation images: We have fixed ShapeWorks to handle all orientations of images. Previously, only a subset (such as RAI) was fully compatible with all tools.

DeepSSM in Studio

DeepSSM in Studio: The ability to run DeepSSM has been added to Studio. See DeepSSM in Studio for more details.


Improved Use Cases and Documentation

Use cases: Added --mesh_mode option to image-based use cases. When running in mesh mode, after grooming segmentations, distance transforms are converted to meshes, and optimization is done directly on meshes, saving memory footprint and allowing the usage of geodesic distances for particle repulsion. This enables improved modeling for thin structures and high curvature regions. See Use Case Documentation for more details.

Sub-sampling for multiple domains: We can now perform subsampling for multiple domains data by combining the individual shapes from all the domains and generating combined shapes. We perform a clustering-based subset selection on the combined shapes so that the subset is representative of the entire dataset and all domains. The representative subset of the specified sample size will be helpful to run through the SSM pipeline so that the use case runs faster and uses less memory.

Restructured ellipsoid_evaluate use case: The computation time for calculating specificity, compactness, and generalization metrics have been dramatically reduced. A 50X speedup was experienced when calculating evaluation metrics for all modes for a dataset with 75 shapes, each with 1024 particles. We can now calculate the evaluation metrics for all the modes or query the values for a specified mode. The use case has been modified to demonstrate these functionalities. See Ellipsoid: Shape Evaluation in Python for more details.

Improved use cases documentation: Restructured use cases documentation to reduce repetition and better highlight the focus and differences of each demonstration. Added relevant documentation links for every step and parameter in use case descriptions. Reorganized use case documentation based on category (i.e., mesh-based, constraint-based, etc.). See Getting Started with Use Cases for information on running use cases and Examples for an overview of released use cases. More explanation of interpreting modes of variation in Shapes. What & From Where?.

Other Improvements

Improved testing: More robust testing of Python tests was achieved by adding code to ensure that all tests are performed for all functions, whereas before the test failure was reported immediately without testing if any related functions failed. Concrete seeding of random number generators (only for testing) is utilized to ensure objective comparison of results across all platforms. Improved verification of use case testing by comparing shape statistics compactness, generalization, and specificity against a good shape model instead of checking for a file. A log file (verify.log) is written that contains the use case outputs and summary.


API reference in Documentation: Information about different classes (e.g Image), functions (e.g Image::antialias), function parameters, function return types in C++ API has been added. Check out Groups, Classes, Namespaces, Files for more details.


Contact Us!

Discussion forum: Join ShapeWorks' discussion forum to post questions and comments. ShapeWorks dev team is more than happy to help troubleshoot issues that you might face when using ShapeWorks on your data.


Email list: To join our mailing list, kindly send a message to This email address is being protected from spambots. You need JavaScript enabled to view it. with the subject subscribe shapeworks-users and an empty body.


Reporting bugs and feature requests: Please feel free to submit feature requests and report bugs on ShapeWorks GitHub issue tracker and we will add more discussions on the issue as we do progress on this. This will help us prioritize this feature as an action item.