Mesa is an Apache2 licensed agent-based modeling (or ABM) framework in Python.
It allows users to quickly create agent-based models using built-in core components (such as spatial grids and agent schedulers) or customized implementations; visualize them using a browser-based interface; and analyze their results using Python's data analysis tools. Its goal is to be the Python 3-based counterpart to NetLogo, Repast, or MASON.
Above: A Mesa implementation of the Schelling segregation model, being visualized in a browser window and analyzed in an IPython notebook.
- Modular components
- Browser-based visualization
- Built-in tools for analysis
Getting started quickly:
$ pip install mesa
To launch an example model, open any of the directories in the examples folder and launch the run.py
file there, e.g.:
schelling $ python run.py
For more help on using Mesa, check out the following resources:
If you run into an issue, please file a ticket for us to discuss. If possible, follow up with a pull request.
If you would like to add a feature, please reach out via ticket or the email list for discussion. A feature is most likely to be added if you build it!
If you have an agent behavior, landscape feature, analysis tool or other module fellow reserchers can benefit from when building their ABM, please share!
Learn more at :ref:`Mesa-Packages`
.. toctree:: :hidden: :maxdepth: 6 Mesa Overview <overview> tutorials/intro_tutorial tutorials/adv_tutorial Best Practices <best-practices> API Documentation <apis/api_main> Mesa Packages <packages/package_main>