Skip to content

Mesa 4 development tracking issue #3132

@EwoutH

Description

@EwoutH

This is a tracking issue. It's mean for short, concise status updates to keep track of progress, not for extensive discussions. Discussions take place here.

The major discussion on Mesa 4.0 have crystalized and found enough alignment to start development. This is an opportunity for breaking changes to address core architectural limitations and make some clean sheet designs.

Based on discussions in:

Maintainers and collaborators, feel free to update directly.

Committed

Goals with commitment from the maintenance team.

1. Unified event scheduling and time progression

Open discussions:

  1. Either exposing _default_schedule as a public property (allowing users to modify/disable the default step pattern) or moving away from a default scheduled method completely: Does Mesa need a "heartbeat"?
  2. Conditional running and stopping API.

Related:

Coordinating lead: @EwoutH

2. Space Architecture

  • Define Locatable protocol (requires agent.position and cell.position)
  • Agent hierarchy: base AgentCellAgent (1 discrete space) → ContinuousAgent (1 continuous + 0...n discrete)
  • Distinguish cell coordinates from logical indices in discrete spaces
  • Each discrete space implements position_to_cell() translation
  • Replace PropertyLayer with raw NumPy arrays on grid Remove PropertyLayer and HasPropertyLayers mixin  #3340
  • Convert DiscreteSpace to abstract base class Convert DiscreteSpace to an Abstract Base Class #3387
  • Remove mesa.space Remove mesa.space #3337
  • Properties linked to cell indices (not coordinates)
  • Support multiple aligned spaces sharing coordinate system
  • Observable position pattern: agent.position setter notifies discrete spaces
  • Space membership determines: capacity, neighbor queries, visibility

Related:

Coordinating lead: @quaquel

3. Data Collection

Related:

Coordinating lead: @quaquel

4. Clean Experimentation

Related:

Collaborative effort.

Uncommitted

More discussion, commitment from contributors and/or support from maintainers team might be needed. Potential for GSoC!

4. Stable Visualization

  • Evaluate long-term viability of Solara dependency
  • Implement reactive UI design (decouple render speed from model speed)
  • Support replay/rewind capabilities
  • Focus on stability over new features
  • Related: mesa-interactive direction

5. Advanced Agent Behavior

6. ML/RL/AI Integration

7. Module System

Overlapping/other

8. Performance

  • Extensive profiling of Mesa overhead
  • Explore Cython for continuous spaces
  • Evaluate Rust for discrete grids (experimental mesa-rust repo)
  • Optimize CellCollection.agents and Space.select_random_empty_cell

9. API Design

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions