(credits)=
# Credits, authors and license

## How to cite this book

You can refer to this book as:

> Kammouh, O., van der Wal, N., Verbraeck, A., Kwakkel, J., Filatova, T., Nogal Macho, M., Warnier, M., & Nikolic, I. (2026) _Introduction to Agent-Based Modelling (ABM) using Python_. TU Delft OPEN. [https://doi.org/10.59490/tb.XXX](https://doi.org/10.59490/tb.XXX)

<!-- The DOI (tb.XXX) is assigned by TU Delft OPEN Books at publication; replace it once issued. Keep the author order consistent with CITATION.cff. -->

You can refer to an individual chapter or page as:

> [Page author(s)] ([year]) _[Title of the chapter or page]_. In O. Kammouh et al. (Eds.), _Introduction to Agent-Based Modelling (ABM) using Python_. TU Delft OPEN. [URL of the specific page]. [https://doi.org/10.59490/tb.XXX](https://doi.org/10.59490/tb.XXX)

Where a page does not name its own author, the authors listed below are responsible for it. Because this book is expected to keep growing, chapter titles and page URLs may change over time. If you need to reference an exact version, cite the [source repository](https://github.com/omarkammouh/ABM-Python) together with the date and file name (or a specific commit).

(authors)=
## Authors

This book was conceived, designed and directed by a team of researchers from the Faculty of Technology, Policy and Management (TPM) and the Faculty of Civil Engineering and Geosciences (CEG) at Delft University of Technology, who secured the project funding and are responsible for its content and structure. The lead author also worked directly on building the book alongside the student assistants.

- **Dr. Omar Kammouh**, Systems Engineering, Department of Multi-Actor Systems, Faculty of Technology, Policy and Management (TPM), Delft University of Technology. _Lead author and project coordinator._ [Staff page](https://www.tudelft.nl/en/staff/o.kammouh/) · [ORCID](https://orcid.org/0000-0002-8859-061X)
- **Dr. Natalie van der Wal**, Systems Engineering, Department of Multi-Actor Systems, Faculty of Technology, Policy and Management (TPM), Delft University of Technology. [Staff page](https://www.tudelft.nl/en/staff/c.n.vanderwal/) · [ORCID](https://orcid.org/0000-0002-0010-8447)
- **Prof. dr. ir. Alexander Verbraeck**, Policy Analysis, Department of Multi-Actor Systems, Faculty of Technology, Policy and Management (TPM), Delft University of Technology. [Staff page](https://www.tudelft.nl/en/staff/a.verbraeck/) · [ORCID](https://orcid.org/0000-0002-1572-0997)
- **Prof. dr. ir. Jan Kwakkel**, Policy Analysis, Department of Multi-Actor Systems, Faculty of Technology, Policy and Management (TPM), Delft University of Technology. [Staff page](https://www.tudelft.nl/en/staff/j.h.kwakkel/) · [ORCID](https://orcid.org/0000-0001-9447-2954)
- **Prof. dr. Tatiana Filatova**, Policy Analysis, Department of Multi-Actor Systems, Faculty of Technology, Policy and Management (TPM), Delft University of Technology. [Staff page](https://www.tudelft.nl/en/staff/t.filatova/) · [ORCID](https://orcid.org/0000-0002-3546-6930)
- **Dr. ir. Maria Nogal Macho**, Integral Design & Management, Faculty of Civil Engineering and Geosciences (CEG), Delft University of Technology. [Staff page](https://www.tudelft.nl/en/staff/m.nogal/) · [ORCID](https://orcid.org/0000-0001-5405-0626)
- **Prof. dr. Martijn Warnier**, Systems Engineering, Department of Multi-Actor Systems, Faculty of Technology, Policy and Management (TPM), Delft University of Technology. [Staff page](https://www.tudelft.nl/en/staff/m.e.warnier/) · [ORCID](https://orcid.org/0000-0002-4682-6882)
- **Dr. ir. Igor Nikolic**, Systems Engineering, Department of Multi-Actor Systems, Faculty of Technology, Policy and Management (TPM), Delft University of Technology. [Staff page](https://www.tudelft.nl/en/staff/i.nikolic/) · [ORCID](https://orcid.org/0000-0002-6002-7083)

(contributors)=
## Student assistants

The book was built by a team of student assistants hired for the project, working hand in hand with the lead author. They turned the authors' outline into the runnable notebooks, exercises, figures and interactive features you see throughout the book, contributing across every part of the work, model implementation and Mesa notebooks, exercises and solutions, figures and animations, the interactive live-code and progress-saving features, and review and testing. They are listed alphabetically by last name.

- **Jens Brüning**, [GitHub](https://github.com/jmbruning)
- **Pasupathan Chithra Barani**, [GitHub](https://github.com/Pasupathan)
- **Inez Driessen**, [GitHub](https://github.com/ihsdriessen)

## How the book is made

This book is created entirely with open-source tools. It is a [Jupyter Book](https://jupyterbook.org/) written in Markdown and Jupyter notebooks, with the runnable models built on [Mesa](https://mesa.readthedocs.io/), the Python framework for agent-based modelling. Additional tooling from the [TeachBooks initiative](https://teachbooks.io/) provides the in-browser live code, interactive questions and progress-saving features that make the book interactive.

The source files are kept in a public GitHub repository at [github.com/omarkammouh/ABM-Python](https://github.com/omarkammouh/ABM-Python), and the book is published online at [omarkammouh.github.io/ABM-Python](https://omarkammouh.github.io/ABM-Python). Readers are welcome to propose corrections and improvements through the "edit" and "open issue" buttons at the top of each page, or by email through the **envelope button** ([o.kammouh@tudelft.nl](mailto:o.kammouh@tudelft.nl)). For more information, see the repository README.

## Acknowledgements

This book was developed as part of the **Open Education Stimulation Fund (OESF)**, a grassroots initiative of the TU Delft Open Science Programme that supports staff in creating open educational resources. We gratefully acknowledge this support, which made it possible to hire the student assistants and produce the book as an open educational resource.

We thank the reviewers for their careful reading and feedback, which improved the book's content and clarity. We are grateful to **[Tom van Woudenberg](https://www.tudelft.nl/en/staff/t.r.vanwoudenberg/)** for his support with the [TeachBooks](https://teachbooks.io/) technology and the interactive features that power the book, and to the **[TU Delft Library](https://www.tudelft.nl/en/library)** for their help throughout the publication process.

## License

This book, its text, figures and code, is licensed under a [Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0/) (CC BY 4.0). You are free to share and adapt the material for any purpose, provided you give appropriate credit to the authors named above.


© 2026 Delft University of Technology and the authors.

(external_resources)=
### External resources

Parts of this book reuse or adapt externally sourced material. Where an author is not named on a page, the content is by the authors listed above, except as follows.

Several of the example models in **Chapter 4** are adapted from the example library of [Project Mesa](https://github.com/projectmesa/mesa-examples), which is distributed under the Apache License 2.0. The Schelling segregation model shown in the interactive illustrations is a classic model first described by Thomas Schelling (1971); those in-browser illustrations are our own implementation.

The worked example in **Section 1.2.7** reproduces a student group report, _Residential Energy Label Transitions: An ABM on Policy Design for Delft Municipality_, written for the Agent-Based Modelling course (SEN1211, 2025–26) by **Elvire Landais**, **Max Carter** and **Thom Smits**, and reused here with their permission.
