You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: paper/paper.md
+7-4
Original file line number
Diff line number
Diff line change
@@ -54,14 +54,15 @@ preferred-citation: article
54
54
---
55
55
56
56
# Summary
57
-
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.1) as of late 2024.
57
+
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.
58
58
59
59
# Statement of need
60
-
Agent-based models (ABMs), or artificial societies, 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/).
60
+
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/).
61
61
62
-
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, improved visualization framework, and making it easier for researchers to create and analyze complex simulations.
62
+
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.
63
63
64
64
# Core capabilities
65
+
65
66
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:
66
67
67
68
1. Core ABM components (*i.e.,* agents, spaces, agent activation, control over random numbers)to build models
@@ -74,7 +75,7 @@ Mesa follows a two-track development model where new features are first released
74
75
75
76
## Core ABM components
76
77
### Model
77
-
The central class in Mesa is the Model. To build a model, the user instantiates a the model, then within it, the user instantiates the space and populates the space with agent instances. Since ABMs are typically stochastic simulations, Mesa was built with a random number generation, and for reproductility proposes, the ability to pass a seed.
78
+
The central class in Mesa is the Model. To build a model, the user instantiates a model object, creates a space within it, and populates the space with agent instances. Since ABMs are typically stochastic simulations, Mesa includes a random number generator and, for reproducibility purposes, allows the user to pass a seed.
78
79
79
80
### Agents
80
81
Central to ABMs are the autonomous heterogeneous agents. Mesa provides a variety of base agent classes which the user can subclass. In its most basic implementation, an agent subclass specifies the `__init__` and `step` method. Any subclass of the basic mesa agent subclass registers itself with the specified model instance, and via `agent.remove` it will remove itself from the model. It is strongly encouraged to rely on `remove`, and even extend it if needed to ensure agents are fully removed from the simulation.
@@ -171,6 +172,7 @@ Mesa also includes experimental support for next-event time progression through
171
172
```
172
173
173
174
## Visualization
175
+
174
176
Mesa’s visualization module, [SolaraViz](https://mesa.readthedocs.io/latest/tutorials/visualization_tutorial.html, allows for interactive browser-based model exploration. Advancements with Mesa 3 update the visualization from harder-to-maintain custom code to [Solara](https://solara.dev/), a standardized library. Usage of the visualization module can be seen below:
175
177
176
178
```python
@@ -241,6 +243,7 @@ Mesa has been applied across diverse domains, including:
241
243
These applications showcase Mesa's versatility in modeling complex systems with autonomous interacting agents, whether representing individual consumers, infrastructure components, buildings, or vehicles.
242
244
243
245
The framework is particularly suited for:
246
+
244
247
- Models with heterogeneous agent populations
245
248
- Systems requiring sophisticated spatial interactions
0 commit comments