Skip to content

Commit 62508c1

Browse files
authored
Merge branch 'paper_2024' into jk/paper_updates
2 parents 2b33acd + c937ddf commit 62508c1

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

paper/paper.md

+7-4
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,15 @@ preferred-citation: article
5454
---
5555

5656
# 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.
5858

5959
# 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/).
6161

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.
6363

6464
# Core capabilities
65+
6566
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:
6667

6768
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
7475

7576
## Core ABM components
7677
### 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.
7879

7980
### Agents
8081
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
171172
```
172173

173174
## Visualization
175+
174176
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:
175177

176178
```python
@@ -241,6 +243,7 @@ Mesa has been applied across diverse domains, including:
241243
These applications showcase Mesa's versatility in modeling complex systems with autonomous interacting agents, whether representing individual consumers, infrastructure components, buildings, or vehicles.
242244

243245
The framework is particularly suited for:
246+
244247
- Models with heterogeneous agent populations
245248
- Systems requiring sophisticated spatial interactions
246249
- Interactive exploration of parameter spaces

0 commit comments

Comments
 (0)