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
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
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 together with the date and file name (or a specific commit).
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.
How the book is made#
This book is created entirely with open-source tools. It is a Jupyter Book written in Markdown and Jupyter notebooks, with the runnable models built on Mesa, the Python framework for agent-based modelling. Additional tooling from the TeachBooks initiative 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, and the book is published online at 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). 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 for his support with the TeachBooks technology and the interactive features that power the book, and to the TU Delft 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 (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#
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, 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.