There is a newer version of the record available.

Published August 30, 2024 | Version v3.0.0a3
Software Open

projectmesa/mesa: v3.0.0a3

  • 1. Unity Technologies
  • 2. Delft University of Technology
  • 3. Google (all opinions are my own)
  • 4. Open Systems Technologies Corporation
  • 5. @populus-ai
  • 6. @Princeton-CDH
  • 7. University at Buffalo
  • 8. @rstudio @UBC-DSCI @UBC-MDS
  • 9. CARIAD

Description

Highlights

Developments toward Mesa 3.0 are steaming ahead, and our fourth alpha release is packed with features and updates - only 8 days after our third.

Mesa 3.0.0a3 contains one breaking change: We now automatically increase the steps counter by one at the beginning of each Model.steps() call. That means increasing steps by hand isn't necessary anymore.

The big new features is the experimental Voronoi grid that @vitorfrois implemented in #2084. It allows creating cells in a Voronoi layout as part of the experimental cell space. An example using it to model Cholera spread can be found here.

The AgentSet got a lot of love with two brand new methods: .groupby() to split in groups (#2220) and .set() to easily assign variables to all agents in that set (#2254). The select() method is improved by allowing to select at most a fraction of the agents (#2253), and we split the do() method in do() and map() to make a distinction between the return types (#2237).

Furthermore, we improved the performance of accessing Model.agents, squashed a bug in SolaraViz, started testing on Python 3.13 and added a new benchmark model.

Our example models also got more love: We removed the RandomActivation scheduler in 14 models and removed SimultaneousActivation in 3 models (examples#183). They now use the automatic step increase and AgentSet functionality. We started testing our GIS model in CI (examples#171) and resolved a lot of bugs in them (examples#172, help appreciated!).

Finally, we have two brand new examples: An Ant Colony Optimization model using an Ant System approach to the Traveling Salesman problem, a Mesa NetworkGrid, and a custom visualisation with SolaraViz (examples#157 by @zjost). The first example using the PropertyLayer was added, a very fast implementation of Conway's Game of Life (examples#182).

To help the transition to Mesa 3.0, we started writing a migration guide. Progress is tracked in #2233, feedback and help is appreciated! Finally, we also added a new section to our contributor guide to get new contributors up to speed.

This pre-release can be installed as always with pip install --pre mesa

What's Changed

โš ๏ธ Breaking changes

  • model: Automatically increase steps counter by @EwoutH in https://github.com/projectmesa/mesa/pull/2223

๐Ÿงช Experimental features

  • Voronoi Tessellation based Discrete Space by @vitorfrois in https://github.com/projectmesa/mesa/pull/2084

๐ŸŽ‰ New features added

  • Add AgentSet.groupby by @quaquel in https://github.com/projectmesa/mesa/pull/2220
  • AgentSet: Add set method by @EwoutH in https://github.com/projectmesa/mesa/pull/2254

๐Ÿ›  Enhancements made

  • Split AgentSet into map and do to separate return types by @quaquel in https://github.com/projectmesa/mesa/pull/2237
  • Performance enhancements for Model.agents by @quaquel in https://github.com/projectmesa/mesa/pull/2251
  • AgentSet: Allow selecting a fraction of agents in the AgentSet by @EwoutH in https://github.com/projectmesa/mesa/pull/2253

๐Ÿ› Bugs fixed

  • SolaraViz: Reset components when params are changed by @rht in https://github.com/projectmesa/mesa/pull/2240

๐Ÿ“œ Documentation improvements

  • Contribution: Add "I have no idea where to start" section by @EwoutH in https://github.com/projectmesa/mesa/pull/2258
  • Write initial Mesa Migration guide by @EwoutH in https://github.com/projectmesa/mesa/pull/2257

๐Ÿ”ง Maintenance

  • CI: Add test job for Python 3.13 by @EwoutH in https://github.com/projectmesa/mesa/pull/2173
  • Add pull request templates by @EwoutH in https://github.com/projectmesa/mesa/pull/2217
  • benchmarks: Add BoltzmannWealth model by @EwoutH in https://github.com/projectmesa/mesa/pull/2252
  • CI: Add optional dependency for examples by @EwoutH in https://github.com/projectmesa/mesa/pull/2261

New Contributors

  • @vitorfrois made their first contribution in https://github.com/projectmesa/mesa/pull/2084

Full Changelog: https://github.com/projectmesa/mesa/compare/v3.0.0a2...v3.0.0a3

Files

projectmesa/mesa-v3.0.0a3.zip

Files (1.9 MB)

Name Size Download all
md5:34b0d47ee1ad25b844d2d850bec135a5
1.9 MB Preview Download

Additional details

Related works