CellEvoX is a simulation system for modeling population dynamics, incorporating mutation types and probabilistic distributions. The project is designed with a modular and scalable architecture, leveraging modern C++ standards and libraries such as TBB and Eigen3 for high performance and ease of extensibility.
Start with docs/README.md for the project knowledge map. The docs section includes onboarding for agents, architecture, simulation engine behavior, config fields by mode, output formats, development workflows, and high-risk areas.
CellEvoX is able to generate visualizations from existing runs:
clone_growth_2d.mp4- an animated clone-growth view built from clone counts over time.tumor_growth_3d.mp4- a spatial replay of the 3D tumor with clone colors.
Both outputs are written under visualizations/ inside the run directory.
- Stochastic and Spatial Simulation: Supports tau-leap simulation based on Gillespie-style event sampling, plus spatial 3D density and capacity modes.
- Entity-Component-System (ECS) Architecture: Decouples data and behavior for flexible simulation management.
- Mutation Modeling: Implements various mutation types with configurable probabilities and effects.
- Statistical Reporting: Generates detailed statistical snapshots, including mutation histograms and fitness distributions.
- Web Interface: Provides a React/FastAPI control and results surface for local runs.
- Containerized Deployment: Ensures reproducibility and ease of deployment using Docker.
- C++23 compatible compiler
- CMake 3.16 or higher
- Intel TBB
- Eigen3
- spdlog
- nlohmann_json
- Python3 development headers with NumPy
- Log in to GitHub Container Registry:
docker login ghcr.io
- Pull the Docker image:
docker pull ghcr.io/dxrgrabowski/cellevox:main
- Run the container:
docker run -it ghcr.io/dxrgrabowski/cellevox:main
- Follow the source build instructions below.
- Clone the repository:
git clone https://github.com/dxrgrabowski/cellevox.git cd cellevox - Build the Docker image:
docker build -t cellevox:local . - Run the locally built container:
docker run -it cellevox:local
- Follow the source build instructions below.
- Configure and build:
cmake -B build -S CellEvoX -DCMAKE_BUILD_TYPE=Release cmake --build build --target CellEvoX CellEvoXTests -j
- Run tests:
./build/bin/CellEvoXTests "~[benchmark]" - Run the program:
./build/bin/CellEvoX --config quick_config.json
- Configure the simulation by editing the provided configuration file.
- Run the simulation executable with --config pointing to config file localization.
- View the generated data and statistical reports created in output directory specified in config. (Docker needs a write permission to output dir)
The existing analysis scripts use matplotlib, numpy, pandas, and networkx. For the new 3D replay, pyvista is recommended but optional because the script falls back to a Matplotlib renderer when PyVista is unavailable.
Example:
pip install pandas networkx pyvistaFor MP4 export, make sure ffmpeg is available in the environment. If it is missing, the scripts fall back to GIF output.
./build/bin/CellEvoX --analyze /path/to/run_dirpython CellEvoX/scripts/animate_clone_growth_2d.py --input /path/to/run_dir
python CellEvoX/scripts/visualize_tumor_3d.py --input /path/to/run_dir- include/: Header files defining core components.
- src/: Source files implementing the program logic.
- scripts/: Python analysis and visualization scripts.
- web/: React/FastAPI local interface.
- build/: Directory for compiled binaries.
- docs/: Agent and contributor knowledge base.
Contributions are welcome! Please fork the repository and submit a pull request with your changes.
For questions or support, contact Dawid Grabowski at dxrsoftware@gmail.com.

