Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Paper: Fix Statement of Need; Acknowledgements, and Applications. #2695

Merged
merged 3 commits into from
Feb 19, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 25 additions & 25 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,29 @@ preferred-citation: article
Mesa is an open-source Python framework for agent-based modeling (ABM) that enables researchers to create, analyze, and visualize agent-based simulations. Mesa provides a comprehensive set of tools and abstractions for modeling complex systems, with capabilities spanning from basic agent management to sophisticated representation of spaces where agents interact. First released in 2014 and published in @masad2015 (with updates published in @kazil2020), this paper highlights advancements and presents Mesa in its current version (3.1.4) as of 2025.

# Statement of need
Agent-based models (ABMs) are composed of autonomous heterogeneous agents interacting locally with other agents. These interactions give rise to emergent phenomena. The aggregate dynamics of a system under study emerge from these local interactions [@epstein_axtell_1996; @epstein1999]. This type of modeling quickly grew more sophisticated, requiring frameworks to execute them. This led to the establishment of [NetLogo](https://ccl.northwestern.edu/netlogo/) and [MASON](https://cs.gmu.edu/~eclab/projects/mason/).
Agent-based models (ABMs) are composed of autonomous, heterogeneous agents interacting locally with other agents. These interactions give rise to emergent phenomena. The aggregate dynamics of a system under study emerge from these local interactions [@epstein_axtell_1996; @epstein1999]. This type of modeling quickly grew more sophisticated, requiring frameworks to execute them. This led to the establishment of [NetLogo](https://ccl.northwestern.edu/netlogo/)in 1999 and [MASON](https://cs.gmu.edu/~eclab/projects/mason/) in 2003.

However, before Mesa, there was no modern Python-based framework for ABMs that integrated with the scientific Python ecosystem. Since its creation in 2014, Mesa has been applied to modeling everything from economics and sociology to ecology and epidemiology and has been cited in more than 500 papers and 800 authors. With its most recent major release, Mesa has advanced usability and stabilized functionality. These features include enhanced management of agents, data collection advancements, an improved visualization framework, and making it easier for researchers to create and analyze complex simulations.
NetLogo is the most widely adopted tool and the first to make ABMs accessible, but it only allows for small models. MASON is Java-based, allowing for advancements in scalability and speed above NetLogo, but MASON is difficult for non-programmers. Both of these tools did not serve models over HTTP, which allows for hosting models on the web, nor did they take advantage of the rich scientific Python ecosystem. In response to these needs, Mesa was created with the goal of accessibility -- targeting both beginner and advanced programmers. The major release of Mesa 3 provides advanced usability and stabilized functionality. These features include enhanced management of agents, data collection advancements, an improved visualization framework, and making it easier for researchers to create and analyze complex simulations.

# Applications
Since its creation in 2014, Mesa has been applied to modeling everything from economics and sociology to ecology and epidemiology and has been cited in more than 500 papers and 800 authors. Mesa has been applied across diverse domains, including:

- Infrastructure resilience and post-disaster recovery planning [@sun2020post]
- Market modeling, including renewable energy auctions and consumer behavior [@anatolitis2017putting]
- Transportation optimization, such as combined truck-drone delivery routing [@leon2022multi]
- Recommender systems analysis examining consumer-business value tradeoffs over time [@ghanem2022balancing]
- Climate adaptation modeling examining household-level behavioral responses to environmental shocks [@taberna2023uncertainty]
- SEIR modeling of Sars-CoV-2 (Covid-19) [@pham2021interventions]
- Management of edge computing resources [@souza2023edgesimpy]

These applications showcase Mesa's versatility in modeling complex systems with autonomous interacting agents, whether representing individual consumers, infrastructure components, buildings, or vehicles.

The framework is particularly suited for:

- Models with heterogeneous agent populations
- Systems requiring sophisticated spatial interactions
- Interactive exploration of parameter spaces
- Teaching and learning agent-based modeling

# Core capabilities
Mesa is a Python-based framework for ABM that provides a comprehensive set of tools for creating, running, and analyzing ABMs. Mesa integrates with the wider scientific Python ecosystem with libraries such as [NumPy](https://numpy.org/), [pandas](https://pandas.pydata.org/), [Matplotlib](https://matplotlib.org/), [NetworkX](https://networkx.org/), and more. The backend of the framework is written in Python, while the front-end end uses a Python implementation of React. The modular architecture is comprised of three main components:
Expand Down Expand Up @@ -227,37 +247,17 @@ Mesa supports systematic parameter exploration:
results = mesa.batch_run(MyModel, parameters, iterations=5, max_steps=10)
```

# Applications
Mesa has been applied across diverse domains, including:

- Infrastructure resilience and post-disaster recovery planning [@sun2020post]
- Market modeling, including renewable energy auctions and consumer behavior [@anatolitis2017putting]
- Transportation optimization, such as combined truck-drone delivery routing [@leon2022multi]
- Recommender systems analysis examining consumer-business value tradeoffs over time [@ghanem2022balancing]
- Climate adaptation modeling examining household-level behavioral responses to environmental shocks [@taberna2023uncertainty]
- SEIR modeling of Sars-CoV-2 (Covid-19) [@pham2021interventions]
- Management of edge computing resources [@souza2023edgesimpy]

These applications showcase Mesa's versatility in modeling complex systems with autonomous interacting agents, whether representing individual consumers, infrastructure components, buildings, or vehicles.

The framework is particularly suited for:

- Models with heterogeneous agent populations
- Systems requiring sophisticated spatial interactions
- Interactive exploration of parameter spaces
- Teaching and learning agent-based modeling

# Community and ecosystem
Mesa has grown into a complete ecosystem with extensions including:

- [Mesa-Geo](https://github.com/projectmesa/mesa-geo) for geospatial modeling [@wang2022mesa]
- [Mesa-Frames](https://github.com/projectmesa/mesa-frames) for high-performance simulations
- A rich collection of community-contributed extensions, [example models](https://github.com/projectmesa/mesa-examples), and tutorials

# Acknowledgements
The advancements leading to Mesa 3 were developed by six maintainers (the authors) and an active community with over 140 [contributors](https://github.com/projectmesa/mesa/graphs/contributors). We would especially like to thank [David Masad](https://github.com/dmasad) for his foundational work on Mesa.

# Conclusions
Mesa 3 introduces significant advancements to the Python ABM framework, enhancing the core toolkit with greater control, interactivity, and speed for researchers. These notable improvements, paired with its foundational integration with the scientific Python ecosystem, modular architecture, and active community, make it an indispensable tool for researchers across disciplines working in Python who want to create and analyze agent-based models.

# Acknowledgements
The advancements leading to Mesa 3 were developed by six maintainers (the authors) and an active community with over 140 [contributors](https://github.com/projectmesa/mesa/graphs/contributors). We would especially like to thank [David Masad](https://github.com/dmasad) for his foundational work on Mesa.

# References