Skip to content

v3.2.0

Latest
Compare
Choose a tag to compare
@EwoutH EwoutH released this 08 May 09:37
· 20 commits to main since this release
773ad91

Highlights

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.

We also celebrate the publication of our peer-reviewed Mesa 3 paper in JOSS. See the updated Citing Mesa section on how to cite us.

Stabilization of Discrete Space

The experimental Cell Space system has been stabilized and is now available as mesa.discrete_space (#2610). This powerful spatial modeling framework enables cell-centric simulations with integrated PropertyLayers and improved agent movement capabilities. Key improvements include:

  • Support for dynamic modifications to discrete spaces during simulation (#2755)
  • Methods to add/remove cells and connections in real-time
  • Full integration with PropertyLayers (#2440) for representing environmental variables
  • Compatible with all examples and existing visualizations

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, Game of Life, Boltzmann Wealth, and Virus on Network have been updated to use the new discrete space system.

Enhanced Visualization Experience

The SolaraViz visualization system has received substantial upgrades:

  • Command Console (#2697): An interactive Python console embedded directly in the visualization, allowing real-time model inspection and manipulation
  • Asynchronous Updates (#2656): Visualization now runs in a separate thread, dramatically improving performance for complex models
  • Dark Mode (#2689): Support for Solara Dark theme, automatically matching system preferences
  • Improved Error Handling (#2747, #2753): Better visualization of errors with options to view detailed traceback information
  • Enhanced UI: Arrow key navigation (#2725), movable input field with auto-scroll (#2710), and other quality-of-life improvements
  • PropertyLayer visualisation in Altair (#2643): Support for visualising PropertyLayers using the Altair frontend in Solara.

Restructured and updated tutorial

Our introduction tutorial has been completely restructured (#2731). Instead of one huge notebook, the tutorial is now divided into smaller, focused modules that build progressively:

  • Creating Your First Model: Essential basics to get started
  • Adding Space: Learn how to use the new discrete space system
  • Collecting Data: Effectively gather model statistics
  • AgentSet: Master agent management techniques
  • Visualization: Series of modules covering basic to advanced visualization

Introducing Meta-Agents

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.

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.

To demonstrate meta-agents capability there are two examples:

  1. Dynamic meta-agent creation - Alliance formation, which shows emergent meta-agent formation through a game theoretic based alliance formation.
  2. Deliberate meta-agent creation - Warehouse model, which provides a pseudo warehouse model to demonstrate meta-agent functionality.

Let us know what you think on our Matrix Channel

Other improvements

  • AgentSet's agg method now supports multiple aggregation functions in a single call (#2743)
  • Many documentation improvements have been made based on feedback by our JOSS reviewers

What's Changed

🎉 New features added

🛠 Enhancements made

🔍 Examples updated

📜 Documentation improvements

  • docs: Split off the overview page, extend with spaces/activation by @EwoutH in #2673
  • docs: Add Roles section to CONTRIBUTING.md by @EwoutH in #2694
  • [JOSS] Docs: Clarify difference between core and user examples by @EwoutH in #2706
  • [JOSS] docs: Improve batch_run documentation for parallel processing by @EwoutH in #2707
  • JOSS Tutorial Fixes by @tpike3 in #2708
  • Clean-up old images, compress wolf-sheep image, remove version switch artifact by @EwoutH in #2717
  • docs: Update citation to JOSS article by @EwoutH in #2740
  • update intro tutorial discrete space by @tpike3 in #2731
  • docs: fix broken links to Readthedocs in example descriptions by @reyan-singh in #2757

🧪 Experimental features

🐛 Bugs fixed

New Contributors

Full Changelog: v3.1.4...v3.2.0