Methods, workflows, tutorials, and CLI for creating personalized physiological digital twins from 3D medical images
Project description
PhysioTwin4D
A collection of methods, workflows, tutorials, and CLI tools for creating personalized physiological digital twins.
PhysioTwin4D typically begins with a 3D medical image of a subject, extracts anatomic models from that image, and then uses AI surrogates to estimate the subject's physiological processes — initially focusing on cardiac and respiratory motion, and expanding to electrophysiology, blood flow, and organ perfusion. The package provides methods for forming these physiological AI surrogates and for fine-tuning the segmentation and registration AI methods that power them, with special emphasis on statistical shape models: they capture subject-specific characteristics that help determine subject-specific physiological function, and establish correspondence across subjects to aid AI surrogate generalization and simplify the application of traditional solvers.
Not validated for clinical use. PhysioTwin4D is a research toolkit. It is not a medical device and must not be used for diagnosis, treatment planning, or clinical decision-making.
Documentation
https://project-monai.github.io/physiotwin4d/ is the primary entry point for users and contributors. Key sections:
- Installation and Quickstart
- Tutorials — runnable end-to-end workflows and their datasets
- CLI & Scripts Guide — command-line tools for conversion, segmentation, registration, and USD workflows
- API Reference — workflow, registration, segmentation, and USD classes
- Developer Guides — architecture, extension points, and implementation conventions
- Contributing and Testing
- FAQ and Troubleshooting
Highlights
- Personalized digital twins: build subject-specific anatomic models and physiological AI surrogates from 3D/4D medical images
- Statistical shape models: capture subject-specific anatomy and establish cross-subject correspondence, aiding AI surrogate generalization and simplifying traditional solver setup
- Simplified workflows on industry-leading open-source tools: ICON and Greedy for registration; MONAI with TotalSegmentator and Simpleware for segmentation; Netgen for meshing (LGPL license); scikit-learn for statistical shape modeling; ITK for image processing; PyVista and OpenUSD/Omniverse for geometry manipulation; CuPy for accelerated computing; and PhysicsNeMo for AI surrogates
- Extensible class hierarchy: add new segmentation and registration methods, and extend to new data types, organs, and physiological processes, without reworking the workflow layer
- Physiological motion: cardiac and respiratory motion today, expanding to electrophysiology, blood flow, and organ perfusion
- NVIDIA Omniverse as the simulation hub: the end goal for simulation — a simulation-information hub and gateway to other engines (e.g., Ansys solvers), interactive simulations for treatment planning (e.g., Isaac Sim, Newton), visualization systems (e.g., AR/VR devices), and physical systems (e.g., robots via ROS)
- CLI and Python API: installed command-line tools and workflow classes for repeatable, scriptable pipelines
Installation
# CPU-only — works out of the box; a runtime warning points to the GPU extra
pip install physiotwin4d
# CUDA 13 (recommended for production)
uv pip install "physiotwin4d[cuda13]"
See the installation guide for GPU setup, source installs, and optional extras (PhysicsNeMo).
Quick Start
physiotwin4d-convert-image-to-usd cardiac_4d.nrrd --contrast --output-dir ./results
from physiotwin4d import RegisterImagesICON, WorkflowConvertImageToUSD
processor = WorkflowConvertImageToUSD(
input_filenames=["path/to/cardiac_4d_ct.nrrd"],
output_directory="./results",
project_name="cardiac_model",
registration_method=RegisterImagesICON(), # or RegisterImagesGreedy()
)
final_usd = processor.process()
See the quickstart and tutorials for full walkthroughs covering segmentation, registration, statistical shape modeling, and USD export.
Contributing
See the contributing guide for code style, testing, IDE setup, and pull request conventions.
License
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
Note that some optional dependencies carry their own license terms: meshing via Netgen is LGPL-licensed, and NVIDIA Omniverse is distributed under its own customer license, which is free for academic and commercial use. To our knowledge, none of the dependencies carry commercially prohibitive licenses such as GPL, but no guarantees are provided — review the license of each dependency for your own use case.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file physiotwin4d-2026.7.1.tar.gz.
File metadata
- Download URL: physiotwin4d-2026.7.1.tar.gz
- Upload date:
- Size: 214.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4609009c97168d7deee4b76c877801e8790761f2eeb231707a34e76a8ef7d244
|
|
| MD5 |
f2af6f14ba4a1d3e69b234c2d9b1611a
|
|
| BLAKE2b-256 |
41fc5cf77b23187c97cf585eb151073843e0aa2d88e20bf8b1baeba23b7caab2
|
Provenance
The following attestation bundles were made for physiotwin4d-2026.7.1.tar.gz:
Publisher:
release.yml on Project-MONAI/physiotwin4d
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
physiotwin4d-2026.7.1.tar.gz -
Subject digest:
4609009c97168d7deee4b76c877801e8790761f2eeb231707a34e76a8ef7d244 - Sigstore transparency entry: 2105605085
- Sigstore integration time:
-
Permalink:
Project-MONAI/physiotwin4d@b1dd92291ea1c4e4587b140d47974c8e4898ba16 -
Branch / Tag:
refs/tags/2026.07.1 - Owner: https://github.com/Project-MONAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b1dd92291ea1c4e4587b140d47974c8e4898ba16 -
Trigger Event:
release
-
Statement type:
File details
Details for the file physiotwin4d-2026.7.1-py3-none-any.whl.
File metadata
- Download URL: physiotwin4d-2026.7.1-py3-none-any.whl
- Upload date:
- Size: 244.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1814ce28a041caae2abc9dc1eab9f895a82fa4438135ec43253b2ba3e7d051d1
|
|
| MD5 |
eb7e0433c79675bd1d4070a58f7da568
|
|
| BLAKE2b-256 |
1cd4471df28ab532f0a4a75423bb7564985611198647cdae190156a7a20a5ff5
|
Provenance
The following attestation bundles were made for physiotwin4d-2026.7.1-py3-none-any.whl:
Publisher:
release.yml on Project-MONAI/physiotwin4d
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
physiotwin4d-2026.7.1-py3-none-any.whl -
Subject digest:
1814ce28a041caae2abc9dc1eab9f895a82fa4438135ec43253b2ba3e7d051d1 - Sigstore transparency entry: 2105605175
- Sigstore integration time:
-
Permalink:
Project-MONAI/physiotwin4d@b1dd92291ea1c4e4587b140d47974c8e4898ba16 -
Branch / Tag:
refs/tags/2026.07.1 - Owner: https://github.com/Project-MONAI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@b1dd92291ea1c4e4587b140d47974c8e4898ba16 -
Trigger Event:
release
-
Statement type: