CellModeller2 is an accelerator-native successor to CellModeller for individual-based multicellular modeling. It combines a Python modeling interface with a C++23 engine and independent CPU, Apple Metal, and NVIDIA CUDA implementations.
Models can combine rod-shaped growth and division, lineage, contact mechanics and constraints, intracellular dynamics, and cell-grid signaling. Versioned checkpoints, batch manifests, data-only scenes, and Parquet/Zarr exports support reproducible research workflows.
| Backend | Status | Role |
|---|---|---|
| CPU | Feature complete | Portable execution and numerical reference |
| Apple Metal | Feature complete | Native Apple GPU execution |
| NVIDIA CUDA | Under active development | Native NVIDIA GPU execution |
CPU and Metal implement the complete current modeling workflow. CUDA is developed independently with the CUDA Runtime API and CUDA C++; it does not translate Metal kernels or use a cross-platform GPU abstraction. Backend support requires native execution on corresponding hardware without CPU fallback; the validation policy defines the acceptance criteria.
CellModeller2 requires Python 3.12, CMake 3.25 or newer, Ninja, a C++23 compiler, and uv.
uv sync --group dev
uv run cm devices
uv run cm run \
--model examples/batch_model.py \
--backend cpu \
--seed 42 \
--parameter growth_rate=0.25 \
--steps 100 \
--dt 0.05 \
--output results/colony.jsonContinue with the tutorial suite, or inspect examples/native_controller.py for a complete restartable model.
| Topic | Entry point |
|---|---|
| Tutorials | Modeling tutorials |
| Architecture and numerics | Design documents |
| HPC environments | CPU, Metal, and CUDA setup |
| Analysis and visualization | Research output workflows |
| CellModeller compatibility | Scope and evidence |
| Development | Testing and validation |
The complete documentation index is available at docs/README.md.
CellModeller2 is available under the MIT License.