Skip to content

Bump version 2026.05.07 -> 2026.05.8#50

Merged
aylward merged 1 commit into
Project-MONAI:mainfrom
aylward:bump-2026.05.8
May 13, 2026
Merged

Bump version 2026.05.07 -> 2026.05.8#50
aylward merged 1 commit into
Project-MONAI:mainfrom
aylward:bump-2026.05.8

Conversation

@aylward
Copy link
Copy Markdown
Collaborator

@aylward aylward commented May 13, 2026

PhysioMotion4D 2026.5.8 — Initial PyPI Release

PhysioMotion4D generates anatomic models with physiological motion in NVIDIA Omniverse from 4D medical images. This is the first beta release on PyPI; the package is ready for evaluation, research, and visualization workflows but is not validated for clinical use.

What's included

End-to-end pipeline

A complete 4D CT → USD pipeline composed of small, focused modules:

4D CT → segmentation → registration → contour extraction → USD export

All public classes inherit from PhysioMotion4DBase for unified logging and debug controls.

Workflows

  • WorkflowConvertHeartGatedCTToUSD — full cardiac CT → animated USD pipeline.
  • WorkflowCreateStatisticalModel — build a PCA statistical shape model from a population of meshes.
  • WorkflowFitStatisticalModelToPatient — fit a PCA model to a patient image or surface.

Segmentation

  • SegmentChestTotalSegmentator — AI-based chest segmentation via TotalSegmentator (nnUNetv2).
  • SegmentHeartSimpleware — wraps Simpleware ASCardio for cardiac segmentation (external license required).
  • SegmentAnatomyBase — extensible base class, now driven by the new AnatomyTaxonomy data type that both segmenters and renderers consume.

Registration

  • Image-to-image: RegisterImagesICON (deep-learning, GPU), RegisterImagesANTs (classical SyN), RegisterTimeSeriesImages (4D series).
  • Model-to-image / model-to-model: RegisterModelsPCA, RegisterModelsICP, RegisterModelsDistanceMaps.

VTK ↔ USD

  • High-level: ConvertVTKToUSD — the recommended entry point for experiments, CLIs, tutorials, and tests. Supports time-series animation, anatomical labeling, colormap visualization, automatic topology-change detection, and both surface and volumetric meshes.
  • Low-level: physiomotion4d.vtk_to_usd subpackage (advanced users only) — convert_vtk_file(), MeshData, ConversionSettings, MaterialData, MaterialManager, and an add_framing_camera() helper that authors a look-at camera respecting the stage up axis.
  • USDTools provides USD inspection, merging, and a load_usd_as_vtk() round-tripping helper.
  • USDAnatomyTools paints anatomy meshes with surgical-style materials driven by the shared AnatomyTaxonomy.

CLI commands

Seven installable console commands:

  • physiomotion4d-convert-ct-to-vtk
  • physiomotion4d-heart-gated-ct
  • physiomotion4d-convert-vtk-to-usd
  • physiomotion4d-create-statistical-model
  • physiomotion4d-fit-statistical-model-to-patient
  • physiomotion4d-reconstruct-highres-4d-ct
  • physiomotion4d-visualize-pca-modes

Tutorials and examples

  • Nine end-to-end tutorial scripts under tutorials/ covering each major workflow.
  • 35 percent-cell (# %%) experiment scripts under experiments/ for research and exploratory work.
  • All scripts run either as plain python <script>.py or interactively cell-by-cell in VS Code / Cursor .

Other quality-of-life features

  • Calendar versioning via bumpver.
  • Trusted-publishing release pipeline (GitHub Actions → PyPI, no token in repo).
  • Sphinx documentation at https://project-monai.github.io/physiomotion4d/.
  • Test suite with baseline regression comparison; Git LFS for binary baselines.

Installation

# CPU-only — works out of the box
pip install physiomotion4d

# CUDA 13 (recommended for production)
uv pip install "physiomotion4d[cuda13]"

The [cuda13] extra installs CuPy. In uv-managed source environments, PyTorch (torch, torchvision, torchaudio) resolves from the CUDA 13.0 wheel index automatically.

Compatibility

  • Python: 3.11 or 3.12
  • OS: Linux (Ubuntu 20.04+) and Windows 10/11
  • GPU (optional but recommended): NVIDIA GPU with CUDA 13 support (e.g. RTX 3090+) for AI segmentation, ICON registration, and reconstruction
  • Visualization: NVIDIA Omniverse, USD-aware viewers, or any OpenUSD-compatible 3D tool

Known limitations

  • Some tutorial datasets (DirLab-4DCT, KCL-Heart-Model, CHOP-Valve4D) must be downloaded manually; only Slicer-Heart-CT downloads automatically.
  • Headless rendering for tests on Windows hosted CI is disabled (no software OpenGL fallback). Linux runners use Xvfb + Mesa.
  • API may change between beta releases as the project stabilizes.

Documentation

License

Apache-2.0.

Acknowledgments

PhysioMotion4D builds on excellent open work: MONAI, DirLab, TotalSegmentator, Icon-Registration / UniGradICON, ITK, TubeTK, VTK / PyVista, OpenUSD, and ANTs.


Disclaimer: PhysioMotion4D is a research and visualization toolkit. It is not a medical device and must not be used for diagnosis, treatment planning, or clinical decision-making.

Summary by CodeRabbit

  • Chores
    • Package version updated to 2026.05.8.

Copilot AI review requested due to automatic review settings May 13, 2026 16:14
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 13, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 4a56d2b2-55c1-4a37-a041-8a76b586d2c1

📥 Commits

Reviewing files that changed from the base of the PR and between 2c9ffa7 and 7530ef7.

📒 Files selected for processing (2)
  • pyproject.toml
  • src/physiomotion4d/__init__.py

Walkthrough

Package version updated from 2026.05.07 to 2026.05.8 across three metadata locations: the project version field, bumpver configuration, and the public __version__ variable.

Changes

Version Number Synchronization

Layer / File(s) Summary
Version metadata update
pyproject.toml, src/physiomotion4d/__init__.py
Version string synchronized to 2026.05.8 in the project metadata ([project].version), bumpver configuration ([tool.bumpver].current_version), and the public package __version__ variable.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

🐰 A hop, a bump, a number's change,
From .07 to .8, a simple range,
Three places marked, now in sync,
The version flows without a blink! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title accurately describes the main change: bumping the package version from 2026.05.07 to 2026.05.8 in pyproject.toml and init.py.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Routine calendar-version bump from 2026.05.07 to 2026.05.8, updating the version string in the package __init__.py and pyproject.toml (including the bumpver current_version). The bumpver pattern YYYY.0M.PATCH[PYTAGNUM] uses an unpadded PATCH, so the new 8 is consistent with the configured pattern, and PEP 440 normalization keeps ordering correct (2026.5.8 > 2026.5.7).

Changes:

  • Bump __version__ in src/physiomotion4d/__init__.py.
  • Bump project.version and tool.bumpver.current_version in pyproject.toml.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
src/physiomotion4d/init.py Updates package __version__ to 2026.05.8.
pyproject.toml Updates project version and bumpver current_version to 2026.05.8.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@aylward aylward merged commit d94ba02 into Project-MONAI:main May 13, 2026
11 of 12 checks passed
@aylward aylward deleted the bump-2026.05.8 branch May 13, 2026 16:22
@codecov
Copy link
Copy Markdown

codecov Bot commented May 13, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 29.64%. Comparing base (2c9ffa7) to head (7530ef7).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #50   +/-   ##
=======================================
  Coverage   29.64%   29.64%           
=======================================
  Files          48       48           
  Lines        6611     6611           
=======================================
  Hits         1960     1960           
  Misses       4651     4651           
Flag Coverage Δ
unittests 29.64% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants