Skip to content

Commit c937ddf

Browse files
authored
update joss paper to address some requested edits (#2678)
1 parent f2df946 commit c937ddf

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

paper/paper.md

+7-5
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,16 @@ 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
6565
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. Mesa is implemented in pure Python (3+) with a modular architecture comprised of three main components:
66+
6667
1. Core ABM components (*i.e.,* agents, spaces, agent activation, control over random numbers)to build models
6768
2. Data collection and support for model experimentation
6869
3. Visualization systems
@@ -73,7 +74,7 @@ Mesa follows a two-track development model where new features are first released
7374

7475
## Core ABM components
7576
### Model
76-
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.
77+
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.
7778

7879
### Agents
7980
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.
@@ -170,7 +171,7 @@ Mesa also includes experimental support for next-event time progression through
170171
```
171172

172173
## Visualization
173-
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, a standardized library. Usage of the visualization module can be seen below:
174+
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, a standardized library. Usage of the visualization module can be seen below:
174175

175176
```python
176177
visualization = SolaraViz(
@@ -240,6 +241,7 @@ Mesa has been applied across diverse domains, including:
240241
These applications showcase Mesa's versatility in modeling complex systems with autonomous interacting agents, whether representing individual consumers, infrastructure components, buildings, or vehicles.
241242

242243
The framework is particularly suited for:
244+
243245
- Models with heterogeneous agent populations
244246
- Systems requiring sophisticated spatial interactions
245247
- Interactive exploration of parameter spaces

0 commit comments

Comments
 (0)