Fetching the latest programs, projects, and workspace data.

Mesa: Agent-based modeling in Python 3+
Showing 5 of 10 projects. Click any project card for scope, mentors, and proposal studio.
Mentors: Student: Tejasv Singh Hada
Mesa-Geo currently suffers from three structural problems that make it impractical at realistic geographic scale: a memory bottleneck from instantiating one Python object per raster pixel, a fractured coordinate system that silently conflates three incompatible reference frames, and a broken Cell/Agent abstraction that floods the agent registry with millions of ephemeral entries. This project resolves all three problems through four focused changes: refactoring RasterLayer onto a PropertyLayer NumPy backend, decoupling Cell from mesa.Agent through a weakref identity cache, delivering a RasterCellCollection aggregation API with scipy.ndimage-powered spatial statistics, and overhauling the visualization pipeline to render rasters as a single ipyleaflet.ImageOverlay instead of millions of polygon draws. All work is aligned with Mesa 4.0's unified reactive architecture, positioning Mesa-Geo as the geospatial pillar of Mesa's next generation rather than a legacy bolt-on. Core deliverables: PropertyLayer-backed RasterLayer, decoupled Cell with three explicit coordinate properties, RasterCellCollection aggregation API, SolaraViz-compatible make_geospace_component, a geo predator-prey benchmark model, and a full Mesa-Geo 3.x migration guide. Stretch goals: H3 hexagonal grid support, a GeoSpace redesign proof-of-concept (#2585), and a Kalman filter temporal state estimation API for PropertyLayer.
Mentors: Student: codebreaker
This project creates a strong, production-ready Behavioral Framework for Mesa by addressing the limits of hardcoded agent logic. Using iterative prototyping, comparing it to classic models like Sugarscape and Wolf-Sheep, and analyzing across different frameworks such as Agents.jl and GAMA, this initiative provides event-driven decision rules, lazy-evaluated states, and constraint patterns.
Mentors: Student: falloficaruss
This proposal aims to design and implement a canonical meta-agent architecture for Mesa. The project addresses the current gap between Mesa’s experimental meta-agent support and the needs of users who want to model overlapping group structures such as households, workplaces, alliances, and teams. The work will focus on building a single canonical backend for representing overlapping typed memberships, along with a clean Mesa-facing API for creating groups, updating memberships, handling lifecycle operations, and supporting group-level state aggregation. The expected deliverables are a canonical backend, a user-facing API, lifecycle and aggregation support, tests for correctness and overlapping memberships, and documentation with example-driven validation. The result will be a stronger foundation for multi-level modeling in Mesa and a better base for future group-level extensions.
Mentors: Student: Colin Frisch
As an agent-based modeling (ABM) framework, Mesa is easy to use and applicable for a wide range of simulations. But traditional ABM agents rely on simple rules and patterns that are chosen by the users themselves, which can limit their adaptability. The objective of this project is to develop an extension of Mesa that give agents access to LLMs for reasoning, decision-making, and communication, that can be used not only for simulations, but also to study the impact of different paradigms and reasoning modules in ABM. The work involves designing a very modular LLM-agent API (with memory, reasoning, and tool-use components), that integrate with Mesa’s existing architecture (Model, Agent, Scheduler), as well as studying and solving LLM-related problems like memory management, consistency and computing-related challenges.
Mentors: Student: Ben Geo Abraham
This project aims to significantly enhance Mesa-Frames by building efficient and scalable data collection tools for large-scale agent-based simulations. The core focus is on developing a flexible framework that allows researchers to analyze simulation data with greater precision and lower overhead. One of the main components, the Stats Collection, will enable users to define exactly which statistics they want to track—such as mean, max, or count—helping reduce both memory usage and computation time. Another key feature is the Event Driven Collection, which records data only when predefined conditions are met. This ensures researchers capture meaningful insights while avoiding unnecessary logging and storage. To support even larger simulations, the project will also include integration with external storage systems like PostgreSQL and S3, allowing collected data to be streamed directly to disk or the cloud. In addition to these core improvements, the project will focus on performance optimization through lazy execution with Polars and better vectorization. Clear, modular documentation and a focus on usability will ensure Mesa-Frames remains an accessible and powerful tool.