|
| 1 | +# Mesa: Agent-based modeling in Python |
| 2 | + |
| 3 | +```{image} https://github.com/projectmesa/mesa/workflows/build/badge.svg |
| 4 | +:target: https://github.com/projectmesa/mesa/actions |
| 5 | +``` |
| 6 | + |
| 7 | +```{image} https://codecov.io/gh/projectmesa/mesa/branch/main/graph/badge.svg |
| 8 | +:target: https://codecov.io/gh/projectmesa/mesa |
| 9 | +``` |
| 10 | + |
| 11 | +```{image} https://img.shields.io/badge/code%20style-black-000000.svg |
| 12 | +:target: https://github.com/psf/black |
| 13 | +``` |
| 14 | + |
| 15 | +```{image} https://img.shields.io/matrix/project-mesa:matrix.org?label=chat&logo=Matrix |
| 16 | +:target: https://matrix.to/#/#project-mesa:matrix.orgs |
| 17 | +``` |
| 18 | + |
| 19 | +[Mesa] is an Apache2 licensed agent-based modeling (or ABM) framework in Python. |
| 20 | + |
| 21 | +Mesa 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-based counterpart to NetLogo, Repast, or MASON. |
| 22 | + |
| 23 | +```{image} https://raw.githubusercontent.com/projectmesa/mesa/main/docs/images/Mesa_Screenshot.png |
| 24 | +:alt: A screenshot of the Schelling Model in Mesa |
| 25 | +:scale: 100% |
| 26 | +:width: 100% |
| 27 | +``` |
| 28 | + |
| 29 | +*Above: A Mesa implementation of the Schelling segregation model, |
| 30 | +being visualized in a browser window and analyzed in a Jupyter |
| 31 | +notebook.* |
| 32 | + |
| 33 | +## Features |
| 34 | + |
| 35 | +- Modular components |
| 36 | +- Browser-based visualization |
| 37 | +- Built-in tools for analysis |
| 38 | + |
| 39 | +## Using Mesa |
| 40 | + |
| 41 | +Getting started quickly: |
| 42 | + |
| 43 | +```bash |
| 44 | +pip install mesa |
| 45 | +``` |
| 46 | + |
| 47 | +To launch an example model, clone the [repository](https://github.com/projectmesa/mesa) folder and invoke `mesa runserver` for one of the `examples/` subdirectories: |
| 48 | + |
| 49 | +```bash |
| 50 | +mesa runserver examples/wolf_sheep |
| 51 | +``` |
| 52 | + |
| 53 | +For more help on using Mesa, check out the following resources: |
| 54 | + |
| 55 | +- [Mesa Introductory Tutorial] |
| 56 | +- [Mesa Visualization Tutorial] |
| 57 | +- [GitHub Issue Tracker] |
| 58 | +- [Email list] |
| 59 | +- [PyPI] |
| 60 | + |
| 61 | +## Contributing back to Mesa |
| 62 | + |
| 63 | +If you run into an issue, please file a [ticket] for us to discuss. If possible, follow up with a pull request. |
| 64 | + |
| 65 | +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! |
| 66 | + |
| 67 | +- [Contributors guide] |
| 68 | +- [Github] |
| 69 | + |
| 70 | +## Mesa Packages |
| 71 | + |
| 72 | +ABM features users have shared that you may want to use in your model |
| 73 | + |
| 74 | +- [See the Packages](https://github.com/projectmesa/mesa/wiki) |
| 75 | +- {ref}`Mesa-Packages <packages>` |
| 76 | + |
| 77 | +```{toctree} |
| 78 | +:hidden: true |
| 79 | +:maxdepth: 7 |
| 80 | +
|
| 81 | +Mesa Overview <overview> |
| 82 | +tutorials/intro_tutorial |
| 83 | +tutorials/visualization_tutorial |
| 84 | +Best Practices <best-practices> |
| 85 | +How-to Guide <howto> |
| 86 | +API Documentation <apis/api_main> |
| 87 | +Mesa Packages <packages> |
| 88 | +tutorials/adv_tutorial_legacy.ipynb |
| 89 | +``` |
| 90 | + |
| 91 | +# Indices and tables |
| 92 | + |
| 93 | +- {ref}`genindex` |
| 94 | +- {ref}`modindex` |
| 95 | +- {ref}`search` |
| 96 | + |
| 97 | +[contributors guide]: https://github.com/projectmesa/mesa/blob/main/CONTRIBUTING.rst |
| 98 | +[email list]: https://groups.google.com/d/forum/projectmesa |
| 99 | +[github]: https://github.com/projectmesa/mesa/ |
| 100 | +[github issue tracker]: https://github.com/projectmesa/mesa/issues |
| 101 | +[mesa]: https://github.com/projectmesa/mesa/ |
| 102 | +[mesa introductory tutorial]: tutorials/intro_tutorial.html |
| 103 | +[mesa visualization tutorial]: tutorials/visualization_tutorial.html |
| 104 | +[pypi]: https://pypi.python.org/pypi/Mesa/ |
| 105 | +[ticket]: https://github.com/projectmesa/mesa/issues |
0 commit comments