Enhancements
- Improved fit for PCA and labelmap-to-labelmap registration (#69), plus supporting
image_toolsadditions. - PhysicsNeMo tutorials updated to use cardiac data (#70).
physicsnemois now an optional dependency; AI-agent configs updated for consistency (#60).- New "fine-tune ICON" experiments and longitudinal-registration ICON fine-tuning (#65, #62), and a restructured
experiments/LongitudinalRegistrationflow (1-initial_registration→2-finetune_icon→3-recon). - Added an
fpsoption toConvertImageToUSD(#59).
Developer tooling
- Worktree creation no longer nests virtual environments (#61).
Breaking changes / API
- Workflows now take registrar/segmenter instances instead of string identifiers (#71).
RegisterTimeSeriesImagesand the workflows accept pre-constructedRegisterImagesBase/SegmentAnatomyBaseobjects; configure backend options (iterations, mass preservation, weights path, etc.) on the instance. Defaults are unchanged. New:RegisterImagesChain(run registrars in sequence, feeding each stage'sforward_transformas the next stage'sinitial_forward_transform),RegisterImagesGreedyICON(named Greedy→ICON chain, replaces the"Greedy_ICON"string mode), andSegmentHeartSimplewareTrimmedBranches. - Removed legacy registration method-name strings (#66).
"ANTS"/"ANTS_ICON"/ lowercase"greedy"are gone; use"Greedy"/"Greedy_ICON". Callers, tests, and tutorials updated. - Standardized forward/inverse transform conventions (#63). New
docs/developer/transform_conventions.rstcodifies the rule thatforward_transformwarps the moving image onto the fixed grid while moving points/landmarks warp withinverse_transform(and PCA/model registration returns the opposite orientation).register_images_basenow pre-warps the moving image onto the fixed grid for initial transforms (matching the ICON backend) rather than composing an ITK transform — this can change results for pipelines using an initial transform.
Bug fixes
- Fixed ACCESS_VIOLATION crashes and a NumPy shape bug in the 4D CT pipeline (#68): corrected
(Nx,Ny,Nz)→(Nz,Ny,Nx)array shape increate_distance_map(was causingIndexError); replaced the intermittently-crashing TubeTKResampleImagepath on Windows with a standard ITKResampleImageFilterisotropic helper; and deferred import-time CUDA library initialization that conflicted with TubeTK DLL loading. - Use relative intra-package imports instead of absolute ones (#67), improving import robustness.
Merged PRs
- ENH: Add fps option to ConvertImageToUSD by @aylward in #59
- ENH: Upaded AI agents for consistency and make physicsnemo optional by @aylward in #60
- ENH: Longitudinal registration - ICON fine tuning by @aylward in #62
- ENH: worktree creation now avoids nested venv by @aylward in #61
- ENH: Standardize forward/inverse transform conventions in registration by @aylward in #63
- ENH: Experiment for Fine Tuning ICON by @aylward in #65
- ENH: Remove docstrings on itk.Image axis ordering. Remove ANTS option. by @aylward in #66
- fix: replace absolute intra-package imports with relative imports by @aylward in #67
- BUG:ACCESS_VIOLATION crashes and NumPy shape bug in 4D CT pipeline by @aylward in #68
- ENH: Improve fit for PCA and Labelmap_to_Labelmap registration by @aylward in #69
- ENH: Update physicsnemo tutorials to use cardiac data. by @aylward in #70
- ENH: accept registration/segmentation method instances in workflows by @aylward in #71
- ENH: Bump version 2026.05.9 -> 2026.07.0 by @aylward in #72
Full Changelog: 2026.05.9...2026.07.0