MeshGrow
Unified pipeline for patient-specific cardiac + vascular simulation mesh construction:
- nnU-Net — binary cardiac localization
- Crop — subvolume around the heart
- LinFlo-Net — whole-heart mesh and segmentation
- SeqSeg — aortic/vascular tracing (seeded from cardiac mesh)
- Combine — merged simulation-ready model (
{case_id}_LV_aorta.vtp)
Quick start
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e .
# Pipeline tools (nnU-Net, SeqSeg, LinFlo-Net)
pip install seqseg linflonet nnunetv2
# PyTorch — install before pytorch3d; use a CUDA wheel on Linux if you have a GPU
pip install torch
# pytorch3d (required by LinFlo-Net; not on PyPI for all platforms)
pip install --no-build-isolation \
"git+https://github.com/facebookresearch/pytorch3d.git@stable"
meshgrow download-weights --dest models/
meshgrow doctor
meshgrow run \
--input /path/to/images \
--output /path/to/results \
--modality ct
Install torch before pytorch3d. On macOS, use the default CPU torch build; MeshGrow runs nnU-Net on CPU automatically (runtime.device: auto). GPU builds are strongly recommended on Linux for nnU-Net and SeqSeg.
meshgrow doctor checks nnU-Net, SeqSeg, and LinFlo-Net CLIs but not pytorch3d — verify with:
python -c "import torch; import pytorch3d; print(torch.__version__, pytorch3d.__version__)"
No config file is required — built-in defaults are used after weights are downloaded.
Optional project scaffold:
meshgrow init --dest ./my_project
meshgrow run --config ./my_project/pipeline.yaml \
--input ./my_project/images \
--output ./results \
--modality mr
Model weights
| Step | Zenodo | Path after download |
|---|---|---|
| Cardiac binary seg | 10.5281/zenodo.20804513 | models/cardiac/nnUNet_cardiac_weights/ |
| LinFlo-Net | 10.5281/zenodo.20802633 | models/linflonet/best_model.pth |
| SeqSeg aorta | 10.5281/zenodo.15020477 | models/seqseg/nnUNet_results/ |
Optional: use --cardiac-path ./nnUNet_cardiac_weights instead of downloading from Zenodo.
CLI
| Command | Description |
|---|---|
meshgrow download-weights |
Fetch weights from Zenodo |
meshgrow doctor |
Check dependencies and model paths |
meshgrow init --dest DIR |
Create pipeline.yaml + images/ |
meshgrow run |
Run full or partial pipeline |
Resume from a step:
meshgrow run --output results/ --input images/ --modality ct \
--case case_001 --from-step seqseg
Documentation
Citation
When using this workflow, please cite SeqSeg, LinFlo-Net, and the underlying nnU-Net models. See the respective project pages for BibTeX entries.
Metadata
Release files for meshgrow 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| meshgrow-0.3.0.tar.gz | 28.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| meshgrow-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 60.5 kB
Release files / meshgrow-0.3.0.tar.gz
| Download URL | meshgrow-0.3.0.tar.gz |
|---|---|
| Size | 28.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5f2a3e813cbc12118f74762b4485b6c1262e13091a0c05a4760e14fcd142e711
|
|
BLAKE2b-256 checksum How to use checksums |
1b2b89e41b7d701766356bfcb1f3300cf687f7f2a82e5cbf9cf6fa12a1f6f118
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Release files / meshgrow-0.3.0-py3-none-any.whl
| Download URL | meshgrow-0.3.0-py3-none-any.whl |
|---|---|
| Size | 32.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d46c58c3e1581088b753e2372b978ba3b7fcdedcc7ffe2bbe45d656c360ca404
|
|
BLAKE2b-256 checksum How to use checksums |
4858ee01609e18c47bc834461139629ab8c58dba332a767ef6bfa6d286137035
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.6
|
Security for meshgrow 0.3.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.