Skip to content

Commit 7afb08c

Browse files
authored
Merge pull request #2527 from SCIInstitute/amorris/6.7-docs
Update docs for 6.7 release
2 parents 28bfe2d + a728cf4 commit 7afb08c

22 files changed

Lines changed: 262 additions & 173 deletions

docs/about/release-notes.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,35 @@
11
# Release Notes
22

33

4+
## ShapeWorks 6.7.0
5+
6+
### What is new?
7+
8+
* **ShapeWorks Back-end**
9+
* Fixed domain optimization speedups: shape space precomputation, Procrustes caching, and batch particle loading
10+
* PCA projection correspondence for fixed domain optimization (`use_pca_projection` parameter)
11+
* Automatic mesh repair in grooming pipeline (replaces manual Extract Largest Component step)
12+
* Auto ICP alignment subset size defaults to 30 shapes for faster grooming on large datasets
13+
* Support for multiple shared boundaries between domains
14+
* Early stopping via morphological deviation score for optimization convergence detection
15+
* DeepSSM CLI: `shapeworks deepssm` command for headless/batch DeepSSM workflows
16+
* Laplacian mesh warping as alternative to biharmonic, reducing thinning artifacts on sparse regions
17+
* Built-in performance profiling and Chrome trace output via `SW_TIME_PROFILE` and `SW_TIME_TRACE` environment variables (see [developer docs](../dev/build.md#performance-profiling))
18+
19+
* **ShapeWorks Front-end**
20+
* DWD (Distance Weighted Discrimination) group analysis method alongside LDA
21+
* Redesigned Optimize panel
22+
* Export clipped meshes
23+
* Warp method selector (Biharmonic/Laplacian) in Analysis panel
24+
25+
* **Platform Updates**
26+
* Python 3.12
27+
* VTK 9.5.0
28+
* ITK 5.4.4
29+
* PyTorch 2.8.0 (2.2.2 on Intel Mac)
30+
* Linux builds use manylinux_2_28 (GLIBC 2.28, compatible with RHEL 8+, Ubuntu 20.04+)
31+
32+
433
## ShapeWorks 6.6.1 - 2025-05
534

635
### Fixes

docs/deep-learning/deep-ssm.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,72 @@ We then compare the original mesh to the predicted mesh via surface-to-surface d
6464

6565
![Mesh Distance](../img/deep-learning/mesh-distance.png)
6666

67+
## DeepSSM CLI
68+
69+
The `shapeworks deepssm` command runs the full DeepSSM pipeline from the command line, without requiring Studio. This enables headless execution on HPC clusters and servers, batch processing of multiple projects, and integration with shell scripts and automated workflows.
70+
71+
### Command Syntax
72+
73+
```bash
74+
shapeworks deepssm <project_file> [options]
75+
```
76+
77+
The project file (`.xlsx` or `.swproj`) must contain both image and shape columns (e.g., `shape_la`, `image_mri`), along with DeepSSM parameters such as data split percentages, augmentation settings, and training configuration. These are the same parameters configurable in the [DeepSSM Studio module](../studio/deepssm-in-studio.md).
78+
79+
### Options
80+
81+
| Option | Description |
82+
|--------|-------------|
83+
| `--name <file>` | Path to project file (alternative to positional argument) |
84+
| `--all` | Run all four steps: prep, augment, train, test |
85+
| `--prep <step>` | Run preparation. Steps: `all`, `groom_training`, `optimize_training`, `optimize_validation`, `groom_images` |
86+
| `--augment` | Run data augmentation |
87+
| `--train` | Run model training |
88+
| `--test` | Run testing/inference |
89+
| `--num_workers <n>` | Number of PyTorch data loader workers (default: 0) |
90+
| `--aug_processes <n>` | Number of augmentation processes (default: 0 = use all cores) |
91+
92+
If none of `--prep`, `--augment`, `--train`, `--test`, or `--all` are specified, all four steps are run by default.
93+
94+
### Examples
95+
96+
Run the full pipeline:
97+
98+
```bash
99+
shapeworks deepssm my_project.swproj --all
100+
```
101+
102+
Run only preparation and augmentation:
103+
104+
```bash
105+
shapeworks deepssm my_project.swproj --prep all --augment
106+
```
107+
108+
Run just training and testing with 4 data loader workers:
109+
110+
```bash
111+
shapeworks deepssm my_project.swproj --train --test --num_workers 4
112+
```
113+
114+
Run a single prep sub-step:
115+
116+
```bash
117+
shapeworks deepssm my_project.swproj --prep groom_training
118+
```
119+
120+
### Pipeline Steps
121+
122+
The four steps correspond to the same stages available in [DeepSSM in Studio](../studio/deepssm-in-studio.md):
123+
124+
1. **Prep** — Grooms and optimizes training shapes, generates validation particles using fixed domains, and prepares images. The `--prep` flag accepts a sub-step to run only part of the preparation.
125+
2. **Augment** — Generates synthetic training data via PCA-based data augmentation. Use `--aug_processes` to control parallelism.
126+
3. **Train** — Trains the DeepSSM network (Base-DeepSSM or TL-DeepSSM depending on project settings). Use `--num_workers` to set PyTorch data loader parallelism.
127+
4. **Test** — Runs inference on the test set and evaluates predicted shapes against ground truth.
128+
129+
### Configuring DeepSSM Parameters
130+
131+
All DeepSSM parameters (data split, augmentation count, network architecture, TL-DeepSSM settings, fine-tuning, etc.) are stored in the project file. These can be configured in Studio before running via the CLI, or set programmatically using the ShapeWorks Python API. See the [training configuration parameters](#config-file-parameter-descriptions) section below for details on available settings.
132+
67133
## Using the DeepSSM Python Package
68134

69135
The ShapeWorks DeepSSM package, `DeepSSMUtils`, is installed with the rest of the ShapeWorks Anaconda environment using `install_shapeworks`.

docs/dev/build.md

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,4 +212,56 @@ After cmake the Visual Studio solution can be opened with `start ShapeWorks.sln`
212212

213213
!!! important "RelWithDebInfo only"
214214
Currently it's only possible to build **RelWithDebInfo** on Windows.
215-
215+
216+
217+
## Performance Profiling
218+
219+
ShapeWorks includes a built-in profiling and tracing framework for diagnosing performance issues. It is controlled via environment variables and has zero overhead when disabled.
220+
221+
### Environment Variables
222+
223+
| Variable | Description |
224+
|----------|-------------|
225+
| `SW_TIME_PROFILE=on` | Enable flat profiling. Writes a summary report to `profile.txt` at shutdown with exclusive/inclusive times, call counts, and per-call averages, grouped by thread. |
226+
| `SW_TIME_TRACE=on` | Enable Chrome trace format output. Writes `trace.json` which can be loaded in `chrome://tracing` or [Perfetto](https://ui.perfetto.dev/) for a timeline visualization. |
227+
228+
Both can be enabled simultaneously.
229+
230+
### Example
231+
232+
```bash
233+
SW_TIME_PROFILE=on SW_TIME_TRACE=on shapeworks optimize --name project.swproj
234+
```
235+
236+
After the run completes, `profile.txt` will contain a flat profile like:
237+
238+
```
239+
%Time Exclusive Inclusive #Calls #Child Exclusive Inclusive Name
240+
total ms total ms ms/call ms/call
241+
------------------------------------------------------------------------------------------------------
242+
95.2 8523 12041 128 0 67 94 Optimize::RunOptimize
243+
...
244+
```
245+
246+
And `trace.json` can be loaded in a trace viewer for a timeline of all timed scopes.
247+
248+
### Adding Instrumentation
249+
250+
Use the macros from `Profiling.h` to instrument code:
251+
252+
```cpp
253+
#include <Profiling.h>
254+
255+
void MyFunction() {
256+
TIME_SCOPE("MyFunction"); // automatically times the enclosing scope
257+
// ... work ...
258+
}
259+
```
260+
261+
Or for manual start/stop:
262+
263+
```cpp
264+
TIME_START("loading meshes");
265+
// ... work ...
266+
TIME_STOP("loading meshes");
267+
```

docs/img/studio/studio_dwd.png

112 KB
Loading
20.4 KB
Loading
4.99 KB
Loading

docs/new/ai-assisted-segmentation.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
[`Medical Open Network for AI (MONAI) Label`](https://monai.io/) is a deep learning framework designed for efficient annotation and segmentation of medical images.
77

8-
## What’s New?
9-
ShapeWorks Studio now integrates MONAI Label, enabling seamless access to fully automated and interactive deep learning models for segmenting radiology images across various modalities.
8+
## Overview
9+
ShapeWorks Studio integrates MONAI Label, enabling seamless access to fully automated and interactive deep learning models for segmenting radiology images across various modalities.
1010

1111
For a detailed demo and step-by-step instructions on using MONAI Label within ShapeWorks Studio, refer to the following guide:
1212

docs/new/new-studio.md

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
1-
# New in ShapeWorks Studio 6.2
1+
# Studio Feature Highlights
22

33

44
## DeepSSM in Studio
55

6-
New in ShapeWorks 6.2, we have added the ability to run DeepSSM tools in ShapeWorks Studio.
6+
ShapeWorks Studio includes the ability to run DeepSSM tools directly.
77

88
![Studio DeepSSM - Augmentation](../img/studio/studio_deepssm_aug2.png){: width="600" }
99

1010
See [DeepSSM in Studio](../studio/deepssm-in-studio.md) for more information.
1111

1212
## Multiple Domain Alignments
1313

14-
New in ShapeWorks 6.2, we have added support for multiple alignment strategies in ShapeWorks Studio. This allows analysis with and without articulation with a choice of reference domain, or global alignment.
14+
ShapeWorks Studio supports multiple alignment strategies, allowing analysis with and without articulation with a choice of reference domain, or global alignment.
1515

1616
<p><video src="https://sci.utah.edu/~shapeworks/doc-resources/mp4s/studio_alignments.mp4" autoplay muted loop controls style="width:100%"></p>
1717

1818
See [Multiple Domain Alignments](../studio/multiple-domains.md#multiple-domain-alignments) for more information.
1919

2020
## Shape Evaluation Charts
2121

22-
New in ShapeWorks 6.2, we have added new shape evaluation charts. Charts for Compactness, Specificity and Generalizaion are provided.
22+
ShapeWorks Studio provides shape evaluation charts for Compactness, Specificity and Generalization.
2323

2424
See [Studio Metrics Panel](../studio/getting-started-with-studio.md#metrics-panel) for more information.
2525

@@ -28,13 +28,13 @@ See [Studio Metrics Panel](../studio/getting-started-with-studio.md#metrics-pane
2828
## Usability Features
2929
### Group p-value Display
3030

31-
New in ShapeWorks 6.2, Studio has the ability to view group-wise p-values for surface differences.
31+
Studio can display group-wise p-values for surface differences.
3232

3333
![Studio DeepSSM - Group p-value](../img/studio/studio_group_pvalue.png){: width="600" }
3434

3535
### Scalar range controls
3636

37-
New in ShapeWorks 6.2, Studio feature maps, p-value displays, deepssm surface error displays allow for manual control over scalar colormap values.
37+
Studio feature maps, p-value displays, and DeepSSM surface error displays allow for manual control over scalar colormap values.
3838

3939
<p><video src="https://sci.utah.edu/~shapeworks/doc-resources/mp4s/studio_feature_scale.mp4" autoplay muted loop controls style="width:100%"></p>
4040

@@ -82,27 +82,25 @@ Multiple sources of crashes during mesh warping have been fixed and the overall
8282

8383
---
8484

85-
# New in ShapeWorks Studio 6.1
86-
8785
## Multiple Domains
8886

89-
As of ShapeWorks 6.1, we added support in ShapeWorks Studio for modeling multiple domains (e.g. anatomies) in joint correspondance model.
87+
ShapeWorks Studio supports modeling multiple domains (e.g. anatomies) in a joint correspondence model.
9088

9189
![ShapeWorks Project with Multiple Domains - Analyze](../img/studio/studio_multiple_domain_analyze.png)
9290

9391
See [Multiple Domains](../studio/multiple-domains.md) for more information.
9492

9593
## Mesh Grooming
9694

97-
As of ShapeWorks 6.1, we added support in ShapeWorks Studio for mesh grooming, including smoothing, hole filling, and iterative closest point pre-alignment.
95+
ShapeWorks Studio supports mesh grooming, including smoothing, hole filling, and iterative closest point pre-alignment.
9896

9997
![ShapeWorks Studio Groom Module for Meshes](../img/studio/studio_groom.png){: width="300" }
10098

10199
See [Groom Module](../studio/getting-started-with-studio.md#groom-module) for more information.
102100

103101
## Mesh Support
104102

105-
As of ShapeWorks 6.0, we added mesh support to ShapeWorks Studio including loading meshes, optimizing shape models directly on meshes, and visualizing meshes with scalar feature values. Meshes can store values at vertices such as "cortical thickness", or "fibrosis” and ShapeWorks Studio uses them in a similar manner as feature maps/volumes.
103+
ShapeWorks Studio supports loading meshes, optimizing shape models directly on meshes, and visualizing meshes with scalar feature values. Meshes can store values at vertices such as cortical thickness or fibrosis”, which Studio uses in a similar manner as feature maps/volumes.
106104

107105
*Open meshes in Studio*
108106
![Screenshot showing open meshes in Studio](../img/new/open-mesh-studio.png)
@@ -119,7 +117,7 @@ We also added a new surface reconstruction method with support for both mesh or
119117

120118
## Improved Studio Interface
121119

122-
As of ShapeWorks 6.0, we added support for automatic glyph sizing, draging/dropping of images and meshes. Scalar bar color is now opposite of background color (e.g., when background is white, text should be dark) (user request).
120+
ShapeWorks Studio supports automatic glyph sizing and drag/drop of images and meshes. Scalar bar color is opposite of the background color for better contrast.
123121

124122
*Samples names color is opposite of the background color for a better contrast*
125123
![Studio background](../img/new/studio-background.png)

0 commit comments

Comments
 (0)