multimodars: A Rust-powered toolkit for multi-modality cardiac image fusion and registration
multimodars: A Rust-powered toolkit for multi-modality cardiac image fusion and registration - Published in JOSS (2026)
Science Score: 87.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 4 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org, zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Repository
A high‑performance, Rust‑accelerated toolkit for multi‑modality cardiac image fusion and registration
Basic Info
- Host: GitHub
- Owner: yungselm
- License: mit
- Language: Rust
- Default Branch: main
- Homepage: https://multimoda-rs.readthedocs.io/en/latest/
- Size: 91.8 MB
Statistics
- Stars: 5
- Watchers: 0
- Forks: 5
- Open Issues: 2
- Releases: 2
Metadata Files
README.md
"One package to fuse them all."
A high‑performance, Rust‑accelerated toolkit for multi‑modality cardiac image fusion and registration ﮩ٨ـﮩﮩ٨ـ♡ﮩ٨ـﮩﮩ٨ـ.
Overview
multimoda-rs aligns and fuses diverse cardiac imaging modalities — IVUS, OCT and CCTA — into unified high-resolution 3D models. Originally developed to quantify dynamic lumen deformation in coronary artery anomalies (CAAs), it is equally applicable to longitudinal studies (e.g., pre/post-stenting) and general coronary artery disease workflows. The Rust backend parallelizes computationally intensive registration steps for speeds well beyond pure Python.
Key Features
- Intravascular Registration: align pullback sequences (rest/stress, diastole/systole) using Hausdorff distance on vessel contours and catheter centroids; four modes: full, double-pair, single-pair, single.
- Centerline Alignment: register intravascular geometries onto a CCTA-derived centerline via three-point landmark or manual rotation.
- CCTA Fusion: automatically label CCTA geometries by vessel region and morph them to match intravascular measurements.
- Flexible Input: accepts CSV files (AIVUS format) or raw NumPy arrays.
Installation
bash
pip install multimodars
Optional extras:
bash
pip install "multimodars[viz]" # mesh visualisation (pyglet)
pip install "multimodars[meshlab]" # MeshLab integration
For building from source or the full developer setup (tests, linting, docs), see the Installation guide.
Quick Example
Checkout our Documentation for in-depth explanations of the functionality and preloaded notebooks including 3D plots. Otherwise clone the repo to follow along the different examples:
```python import multimodars as mm import numpy as np
Align four intravascular phases (rest-dia, rest-sys, stress-dia, stress-sys)
rest, stress, dia, sys, _ = mm.fromfilefull( "examples/data/ivusrest", # inputpathab "examples/data/ivusstress", # inputpathcd writeobj=True, outputpathab="output/rest", outputpathcd="output/stress", outputpathac="output/diastole", outputpath_bd="output/systole", )
Align geometry onto a CCTA-derived centerline
clraw = np.genfromtxt("examples/data/centerlineraw.csv", delimiter=",") centerline = mm.numpytocenterline(clraw) alignedpair, clresampled = mm.alignthreepoint( centerline, rest, aorticrefpt=(12.2605, -201.3643, 1751.0554), upperrefpt=(11.7567, -202.1920, 1754.7975), lowerrefpt=(15.6605, -202.1920, 1749.9655), write=True, outputdir="output/aligned", ) ```
Pipeline
1. Intrapullback alignment — frames within each pullback are co-registered to remove cardiac-motion artefacts, yielding clean diastolic and systolic geometries:

2. Inter-pullback alignment — registered pullbacks (rest vs. stress, diastole vs. systole) are aligned against each other to reveal stress-induced and pulsatile deformation:

3. CCTA labeling — the CCTA-derived geometry is automatically segmented by vessel region (aorta, RCA, LCA, intramural) to prepare it for fusion:

4. CCTA–morphing — the labeled CCTA geometry is morphed along the centerline to match the high-resolution intravascular geometry:

5. CCTA/intravascular fusio — the morphed CCTA geometry is stitched to the intravascular geometry, replacing a section with a high resolution verison:

Documentation
Full documentation — installation, step-by-step tutorials, interactive (preloaded) Jupyter notebooks, and API reference — is available at multimoda-rs.readthedocs.io.
License
Distributed under the MIT License. See LICENSE for details.
Citation
Please kindly cite the following paper if you use this repository.
@article{stark2025multimodars,
title = {multimodars: A Rust-powered toolkit for multi-modality cardiac image fusion and registration},
author = {Stark, Anselm W. and Ilic, Marc and Mokhtari, Ali and Mohammadi Kazaj, Pooya and Graeni, Christoph and Shiri, Isaac},
journal = {arXiv preprint arXiv:2510.06241},
year = {2025}
}
Stark, Anselm W., Marc Ilic, Ali Mokhtari, Pooya Mohammadi Kazaj, Christoph Graeni, and Isaac Shiri. "multimodars: A Rust-powered toolkit for multi-modality cardiac image fusion and registration." arXiv preprint arXiv:2510.06241 (2025).
Owner
- Name: Anselm Stark
- Login: yungselm
- Kind: user
- Repositories: 1
- Profile: https://github.com/yungselm
JOSS Publication
multimodars: A Rust-powered toolkit for multi-modality cardiac image fusion and registration
Authors
Department of Cardiology, Inselspital, Bern University Hospital, University of Bern, Switzerland, Graduate School for Cellular and Biomedical Sciences, University of Bern, Bern, Switzerland
Department of Cardiology, Inselspital, Bern University Hospital, University of Bern, Switzerland, Graduate School for Cellular and Biomedical Sciences, University of Bern, Bern, Switzerland
Department of Cardiology, Inselspital, Bern University Hospital, University of Bern, Switzerland, Graduate School for Cellular and Biomedical Sciences, University of Bern, Bern, Switzerland
Department of Cardiology, Inselspital, Bern University Hospital, University of Bern, Switzerland, Graduate School for Cellular and Biomedical Sciences, University of Bern, Bern, Switzerland
Tags
Cardiology Intravascular imaging CCTA Image Fusion Image registrationGitHub Events
Total
- Release event: 1
- Delete event: 11
- Pull request event: 3
- Fork event: 2
- Issues event: 3
- Watch event: 5
- Push event: 142
- Pull request review event: 3
- Create event: 15
Last Year
- Release event: 1
- Delete event: 11
- Pull request event: 3
- Fork event: 2
- Issues event: 3
- Watch event: 5
- Push event: 142
- Pull request review event: 3
- Create event: 15
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| yungselm | a****k@h****m | 224 |
| pooya-mohammadi | p****j@g****m | 2 |
| M.I. | m****2@g****m | 1 |
| Isaac | i****2@g****m | 1 |
Issues and Pull Requests
Last synced: 21 days ago
All Time
- Total issues: 6
- Total pull requests: 8
- Average time to close issues: 23 days
- Average time to close pull requests: 4 days
- Total issue authors: 3
- Total pull request authors: 4
- Average comments per issue: 1.0
- Average comments per pull request: 0.13
- Merged pull requests: 7
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 6
- Pull requests: 8
- Average time to close issues: 23 days
- Average time to close pull requests: 4 days
- Issue authors: 3
- Pull request authors: 4
- Average comments per issue: 1.0
- Average comments per pull request: 0.13
- Merged pull requests: 7
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- jonaspleyer (3)
- crnh (2)
- richardkoehler (1)
Pull Request Authors
- yungselm (4)
- cicram (2)
- pooya-mohammadi (1)
- jonaspleyer (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- PyO3/maturin-action v1 composite
- actions/attest-build-provenance v1 composite
- actions/checkout v4 composite
- actions/download-artifact v4 composite
- actions/setup-python v5 composite
- actions/upload-artifact v4 composite
- 151 dependencies
- multimodars *