Skip to content

Commit 773ad91

Browse files
authored
Release 3.2.0 (#2769)
- Update _init__.py - Update HISTORY.md
1 parent 94c56a3 commit 773ad91

File tree

2 files changed

+97
-1
lines changed

2 files changed

+97
-1
lines changed

HISTORY.md

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,102 @@
11
---
22
title: Release History
33
---
4+
# 3.2.0 (2025-05-04)
5+
## Highlights
6+
Mesa 3.2.0 is a feature-packed release, which stabilizes our discrete space, improves many of our visualisation capabilities, improves our tutorial organization, adds the experimental meta-agents, and includes other quality of life enhancements.
7+
8+
We also celebrate the publication of our peer-reviewed [Mesa 3 paper](https://doi.org/10.21105/joss.07668) in JOSS. See the updated [Citing Mesa](https://github.com/projectmesa/mesa?tab=readme-ov-file#citing-mesa) section on how to cite us.
9+
10+
### Stabilization of Discrete Space
11+
The experimental Cell Space system has been stabilized and is now available as `mesa.discrete_space` ([#2610](https://github.com/projectmesa/mesa/pull/2610)). This powerful spatial modeling framework enables cell-centric simulations with integrated PropertyLayers and improved agent movement capabilities. Key improvements include:
12+
13+
- Support for dynamic modifications to discrete spaces during simulation ([#2755](https://github.com/projectmesa/mesa/pull/2755))
14+
- Methods to add/remove cells and connections in real-time
15+
- Full integration with PropertyLayers ([#2440](https://github.com/projectmesa/mesa/pull/2440)) for representing environmental variables
16+
- Compatible with all examples and existing visualizations
17+
18+
The PropertyLayer itself has also been stabilized, allowing for efficient management of spatial environmental properties like terrain, resources, or any grid-based variables. Core examples including [Schelling](https://github.com/projectmesa/mesa/tree/main/mesa/examples/basic/schelling), [Game of Life](https://github.com/projectmesa/mesa/tree/main/mesa/examples/basic/conways_game_of_life), [Boltzmann Wealth](https://github.com/projectmesa/mesa/tree/main/mesa/examples/basic/boltzmann_wealth_model), and [Virus on Network](https://github.com/projectmesa/mesa/tree/main/mesa/examples/basic/virus_on_network) have been updated to use the new discrete space system.
19+
20+
### Enhanced Visualization Experience
21+
The SolaraViz visualization system has received substantial upgrades:
22+
23+
- **Command Console** ([#2697](https://github.com/projectmesa/mesa/pull/2697)): An interactive Python console embedded directly in the visualization, allowing real-time model inspection and manipulation
24+
- **Asynchronous Updates** ([#2656](https://github.com/projectmesa/mesa/pull/2656)): Visualization now runs in a separate thread, dramatically improving performance for complex models
25+
- **Dark Mode** ([#2689](https://github.com/projectmesa/mesa/pull/2689)): Support for Solara Dark theme, automatically matching system preferences
26+
- **Improved Error Handling** ([#2747](https://github.com/projectmesa/mesa/pull/2747), [#2753](https://github.com/projectmesa/mesa/pull/2753)): Better visualization of errors with options to view detailed traceback information
27+
- **Enhanced UI**: Arrow key navigation ([#2725](https://github.com/projectmesa/mesa/pull/2725)), movable input field with auto-scroll ([#2710](https://github.com/projectmesa/mesa/pull/2710)), and other quality-of-life improvements
28+
- **PropertyLayer visualisation in Altair** ([#2643](https://github.com/projectmesa/mesa/pull/2643)): Support for visualising PropertyLayers using the Altair frontend in Solara.
29+
30+
### Restructured and updated tutorial
31+
Our [introduction tutorial](https://mesa.readthedocs.io/latest/overview.html) has been completely restructured ([#2731](https://github.com/projectmesa/mesa/pull/2731)). Instead of one huge notebook, the tutorial is now divided into smaller, focused modules that build progressively:
32+
33+
- **Creating Your First Model**: Essential basics to get started
34+
- **Adding Space**: Learn how to use the new discrete space system
35+
- **Collecting Data**: Effectively gather model statistics
36+
- **AgentSet**: Master agent management techniques
37+
- **Visualization**: Series of modules covering basic to advanced visualization
38+
39+
40+
### Introducing Meta-Agents
41+
Complex systems often have multiple levels of components. An organization is not one entity, but is made of departments, sub-departments, and people. A person is not a single entity, but it is made of micro biomes, organs and cells. A city is not a single entity, but it is made of districts, neighborhoods, buildings, and people. A forest comprises an ecosystem of trees, plants, animals, and microorganisms.
42+
43+
This reality is the motivation for meta-agents. It allows users to represent these multiple levels, where each level can have meta-agents with constituting agents.
44+
- **Meta agents** [#2748](https://github.com/projectmesa/mesa/pull/2748)
45+
46+
To demonstrate meta-agents capability there are two examples:
47+
48+
1. Dynamic meta-agent creation - [Alliance formation](https://mesa.readthedocs.io/latest/examples/advanced/alliance_formation.html), which shows emergent meta-agent formation through a game theoretic based alliance formation.
49+
2. Deliberate meta-agent creation - [Warehouse model](https://github.com/projectmesa/mesa-examples/tree/main/examples/warehouse), which provides a pseudo warehouse model to demonstrate meta-agent functionality.
50+
51+
Let us know what you think on our [Matrix Channel](https://matrix.to/#/#project-mesa:matrix.org)
52+
53+
### Other improvements
54+
- AgentSet's `agg` method now supports multiple aggregation functions in a single call ([#2743](https://github.com/projectmesa/mesa/pull/2743))
55+
- Many documentation improvements have been made based on feedback by our JOSS reviewers
56+
57+
## What's Changed
58+
### 🎉 New features added
59+
* Stabilize experimental Cell Space as `mesa.discrete_space` by @quaquel in https://github.com/projectmesa/mesa/pull/2610
60+
* Feat: Added Command Console by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2697
61+
* Stabilize PropertyLayer by @EwoutH in https://github.com/projectmesa/mesa/pull/2440
62+
### 🛠 Enhancements made
63+
* Visualisation: Add dark mode by @sanika-n in https://github.com/projectmesa/mesa/pull/2689
64+
* Creating threads to update visualization asynchronously by @HMNS19 in https://github.com/projectmesa/mesa/pull/2656
65+
* Movable Input Field with auto-scroll by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2710
66+
* Feat: Added arrow key navigation by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2725
67+
* added property_layer with altair by @sanika-n in https://github.com/projectmesa/mesa/pull/2643
68+
* Debug option for errors in visualisation by @colinfrisch in https://github.com/projectmesa/mesa/pull/2747
69+
* Debug option for errors in visualisation front end by @colinfrisch in https://github.com/projectmesa/mesa/pull/2753
70+
* Add support for dynamic discrete spaces by @quaquel in https://github.com/projectmesa/mesa/pull/2755
71+
* Support multiple functions in AgentSet `agg` method by @EwoutH in https://github.com/projectmesa/mesa/pull/2743
72+
### 🔍 Examples updated
73+
* Move boltzmann to cell spaces by @quaquel in https://github.com/projectmesa/mesa/pull/2680
74+
* Move Game of life to cell space by @quaquel in https://github.com/projectmesa/mesa/pull/2681
75+
* Move Schelling to discrete space by @quaquel in https://github.com/projectmesa/mesa/pull/2684
76+
* Move virus_on_a_network to discrete_space by @quaquel in https://github.com/projectmesa/mesa/pull/2688
77+
* Update boid_flockers example include flight direction by @sanika-n in https://github.com/projectmesa/mesa/pull/2696
78+
### 📜 Documentation improvements
79+
* docs: Split off the overview page, extend with spaces/activation by @EwoutH in https://github.com/projectmesa/mesa/pull/2673
80+
* docs: Add Roles section to CONTRIBUTING.md by @EwoutH in https://github.com/projectmesa/mesa/pull/2694
81+
* [JOSS] Docs: Clarify difference between core and user examples by @EwoutH in https://github.com/projectmesa/mesa/pull/2706
82+
* [JOSS] docs: Improve batch_run documentation for parallel processing by @EwoutH in https://github.com/projectmesa/mesa/pull/2707
83+
* JOSS Tutorial Fixes by @tpike3 in https://github.com/projectmesa/mesa/pull/2708
84+
* Clean-up old images, compress wolf-sheep image, remove version switch artifact by @EwoutH in https://github.com/projectmesa/mesa/pull/2717
85+
* docs: Update citation to JOSS article by @EwoutH in https://github.com/projectmesa/mesa/pull/2740
86+
* update intro tutorial discrete space by @tpike3 in https://github.com/projectmesa/mesa/pull/2731
87+
* docs: fix broken links to Readthedocs in example descriptions by @reyan-singh in https://github.com/projectmesa/mesa/pull/2757
88+
### 🧪 Experimental features
89+
* Meta agents by @tpike3 in https://github.com/projectmesa/mesa/pull/2748
90+
### 🐛 Bugs fixed
91+
* Minor (bug) fixes to discrete_space by @quaquel in https://github.com/projectmesa/mesa/pull/2687
92+
* Fixed Marker in mpl by @sanika-n in https://github.com/projectmesa/mesa/pull/2670
93+
94+
## New Contributors
95+
* @colinfrisch made their first contribution in https://github.com/projectmesa/mesa/pull/2747
96+
* @reyan-singh made their first contribution in https://github.com/projectmesa/mesa/pull/2757
97+
98+
**Full Changelog**: https://github.com/projectmesa/mesa/compare/v3.1.4...v3.2.0
99+
4100
# 3.1.5 (2025-03-26)
5101
## Highlights
6102
Mesa 3.1.5 is a maintenance release focused on improving documentation and cleaning up our resources. This update includes no breaking changes and is compatible with previous 3.1.x releases.

mesa/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
]
2525

2626
__title__ = "mesa"
27-
__version__ = "3.2.0.dev"
27+
__version__ = "3.2.0"
2828
__license__ = "Apache 2.0"
2929
_this_year = datetime.datetime.now(tz=datetime.UTC).date().year
3030
__copyright__ = f"Copyright {_this_year} Project Mesa Team"

0 commit comments

Comments
 (0)