/biodynamo

BioDynaMo is a high-performance and modular, agent-based simulation platform.

Primary LanguageC++Apache License 2.0Apache-2.0

BioDynaMo logo

The open-source Biology Dynamics Modeller

User's guide | Developer's guide | Report an issue or bug

What is BioDynaMo?

BioDynaMo is a software platform to easily create, run, and visualise 3D agent-based simulations.

  • Blazing fast: The core of the platform is written in C++ and is highly optimized to harness the computational power of modern hardware.
  • Modular: Reuse, adapt, or create modules that represents a specific biological behavior or entity. With BioDynaMo you don't need to start from scratch anymore!
  • Visual: Effortlessly create astonishing images and animations of your simulations. Your publications and presentations will stand out even more!

Installation

Simply run the following command:

curl https://biodynamo.github.io/install | bash

For more information, check out our user's guide documentation that is designed for people who will use BioDynaMo on a day-to-day basis, and aims at providing users with all essential info to make full use of BioDynaMo.

Contributing

The main purpose of this repository is to evolve BioDynaMo, making it faster and easier to use. Development of BioDynaMo happens in the open on Github, and we are grateful to the community for contributing bugfixes and improvements. Please read our contribution guide and learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to BioDynaMo.

We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community in BioDynaMo. Thus, we expect all contributors to adhere to our covenant for contributors.

Citation

When publishing work that relies on BioDynaMo, please cite the following manuscripts, which underwent rigorous peer review. Citations are crucial to improve your work's reproducibility, show funding agencies that our work is valuable to the community, and increase your peers' knowledge about our terrific tool.

Lukas Breitwieser, Ahmad Hesam, Jean de Montigny, Vasileios Vavourakis, Alexandros Iosif, Jack Jennings, Marcus Kaiser, Marco Manca, Alberto Di Meglio, Zaid Al-Ars, Fons Rademakers, Onur Mutlu, Roman Bauer, BioDynaMo: a modular platform for high-performance agent-based simulation, Bioinformatics, Volume 38, Issue 2, January 2022, Pages 453–460, https://doi.org/10.1093/bioinformatics/btab649

@article{breitwieser_biodynamo_2022,
    author = {Breitwieser, Lukas and Hesam, Ahmad and de Montigny, Jean and Vavourakis, Vasileios and Iosif, Alexandros and Jennings, Jack and Kaiser, Marcus and Manca, Marco and Di Meglio, Alberto and Al-Ars, Zaid and Rademakers, Fons and Mutlu, Onur and Bauer, Roman},
    title = "{BioDynaMo: a modular platform for high-performance agent-based simulation}",
    journal = {Bioinformatics},
    volume = {38},
    number = {2},
    pages = {453-460},
    year = {2021},
    month = {09},
    issn = {1367-4803},
    doi = {10.1093/bioinformatics/btab649},
    url = {https://doi.org/10.1093/bioinformatics/btab649}
}

Lukas Breitwieser, Ahmad Hesam, Fons Rademakers, Juan Gómez Luna, and Onur Mutlu. 2023. High-Performance and Scalable Agent-Based Simulation with BioDynaMo. In Proceedings of the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming (Montreal, QC, Canada) (PPoPP ’23). Association for Computing Machinery, New York, NY, USA, 174–188. https://doi.org/10.1145/3572848.3577480 arXiv:2301.06984 [cs.DC]

Received Best Artifact Award.
@inproceedings{breitwieser_biodynamo_2023,
  author = {Breitwieser, Lukas and Hesam, Ahmad and Rademakers, Fons and Luna, Juan G\'{o}mez and Mutlu, Onur},
  title = {High-Performance and Scalable Agent-Based Simulation with BioDynaMo},
  year = {2023},
  isbn = {9798400700156},
  publisher = {Association for Computing Machinery},
  address = {New York, NY, USA},
  url = {https://doi.org/10.1145/3572848.3577480},
  doi = {10.1145/3572848.3577480},
  booktitle = {Proceedings of the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming},
  pages = {174–188},
  numpages = {15},
  keywords = {NUMA, HPC, performance evaluation, parallel computing, space-filling curve, high-performance simulation, performance optimization, agent-based modeling, memory layout optimization, memory allocation, scalability},
  location = {Montreal, QC, Canada},
  series = {PPoPP '23},
  archivePrefix = "arXiv",
  eprint        = "2301.06984",
  primaryClass  = "cs.DC"
}

We recommend specifying the exact BioDynaMo version used in the methods section. For example:

We use BioDynaMo v1.04.5-e9db03a1 \cite{breitwieser_biodynamo_2022, breitwieser_biodynamo_2023} 
for all simulations in this article. 

The version can be obtained by executing biodynamo --version and can be interpreted as follows: vMAJOR.MINOR.PATCH-SHA SHA is the git commit hash that can be used to check out the exact BioDynaMo version with git checkout SHA.

License

BioDynaMo is Apache 2.0 licensed.