Mesa 3.1.3__tar.gz → 3.1.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of Mesa might be problematic. Click here for more details.
- {mesa-3.1.3 → mesa-3.1.5}/.github/workflows/benchmarks.yml +3 -1
- {mesa-3.1.3 → mesa-3.1.5}/.pre-commit-config.yaml +2 -2
- {mesa-3.1.3 → mesa-3.1.5}/CONTRIBUTING.md +57 -1
- {mesa-3.1.3 → mesa-3.1.5}/HISTORY.md +55 -0
- {mesa-3.1.3 → mesa-3.1.5}/PKG-INFO +13 -10
- {mesa-3.1.3 → mesa-3.1.5}/README.md +4 -9
- {mesa-3.1.3 → mesa-3.1.5}/binder/environment.yml +2 -2
- {mesa-3.1.3 → mesa-3.1.5}/docs/README.md +2 -1
- {mesa-3.1.3 → mesa-3.1.5}/docs/apis/visualization.md +8 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/conf.py +1 -0
- mesa-3.1.5/docs/getting_started.md +54 -0
- mesa-3.1.5/docs/images/wolf_sheep.png +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/index.md +7 -10
- mesa-3.1.5/docs/mesa_extension.md +97 -0
- mesa-3.1.3/docs/getting_started.md → mesa-3.1.5/docs/overview.md +95 -65
- {mesa-3.1.3 → mesa-3.1.5}/docs/tutorials/intro_tutorial.ipynb +5 -11
- {mesa-3.1.3 → mesa-3.1.5}/docs/tutorials/visualization_tutorial.ipynb +1 -3
- {mesa-3.1.3 → mesa-3.1.5}/mesa/__init__.py +1 -1
- {mesa-3.1.3 → mesa-3.1.5}/mesa/batchrunner.py +6 -3
- {mesa-3.1.3 → mesa-3.1.5}/mesa/datacollection.py +62 -2
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/README.md +9 -4
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/app.py +15 -37
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/grid.py +8 -8
- {mesa-3.1.3 → mesa-3.1.5}/mesa/visualization/__init__.py +1 -2
- {mesa-3.1.3 → mesa-3.1.5}/mesa/visualization/components/altair_components.py +10 -8
- {mesa-3.1.3 → mesa-3.1.5}/mesa/visualization/mpl_space_drawing.py +139 -90
- {mesa-3.1.3 → mesa-3.1.5}/mesa/visualization/solara_viz.py +5 -1
- {mesa-3.1.3 → mesa-3.1.5}/pyproject.toml +2 -3
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_agent.py +3 -3
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_cell_space.py +17 -17
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_datacollector.py +62 -0
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_solara_viz.py +39 -6
- mesa-3.1.3/docs/_static/switcher.json +0 -12
- mesa-3.1.3/docs/images/tutorial/br_ginis.png +0 -0
- mesa-3.1.3/docs/images/tutorial/dc_endwealth.png +0 -0
- mesa-3.1.3/docs/images/tutorial/dc_gini.png +0 -0
- mesa-3.1.3/docs/images/tutorial/dc_oneagent.png +0 -0
- mesa-3.1.3/docs/images/tutorial/first_hist.png +0 -0
- mesa-3.1.3/docs/images/tutorial/multirun_hist.png +0 -0
- mesa-3.1.3/docs/images/tutorial/numpy_grid.png +0 -0
- mesa-3.1.3/docs/images/tutorial/viz_chart.png +0 -0
- mesa-3.1.3/docs/images/tutorial/viz_empty.png +0 -0
- mesa-3.1.3/docs/images/tutorial/viz_greycircles.png +0 -0
- mesa-3.1.3/docs/images/tutorial/viz_histogram.png +0 -0
- mesa-3.1.3/docs/images/tutorial/viz_redcircles.png +0 -0
- mesa-3.1.3/docs/images/wolf_sheep.png +0 -0
- mesa-3.1.3/docs/tutorials/files/viz_chart.png +0 -0
- mesa-3.1.3/docs/tutorials/files/viz_empty.png +0 -0
- mesa-3.1.3/docs/tutorials/files/viz_greycircles.png +0 -0
- mesa-3.1.3/docs/tutorials/files/viz_histogram.png +0 -0
- mesa-3.1.3/docs/tutorials/files/viz_redcircles.png +0 -0
- mesa-3.1.3/docs/tutorials/files/viz_slider.png +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/.codespellignore +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/.coveragerc +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/.github/PULL_REQUEST_TEMPLATE/bug.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/.github/PULL_REQUEST_TEMPLATE/feature.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/.github/dependabot.yml +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/.github/pull_request_template.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/.github/release.yml +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/.github/workflows/build_lint.yml +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/.github/workflows/release.yml +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/.gitignore +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/.readthedocs.yml +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/CITATION.bib +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/CODE_OF_CONDUCT.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/Dockerfile +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/LICENSE +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/NOTICE +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/benchmarks/compare_timings.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/benchmarks/configurations.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/benchmarks/global_benchmark.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/codecov.yaml +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docker-compose.yml +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/Makefile +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/apis/agent.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/apis/api_main.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/apis/batchrunner.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/apis/datacollection.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/apis/experimental.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/apis/mesa_logging.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/apis/model.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/apis/space.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/best-practices.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/example_template.txt +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/examples_overview_template.txt +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/images/mesa_logo.ico +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/images/mesa_logo.png +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/make.bat +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/mesa.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/migration_guide.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/docs/tutorials/MoneyModel.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/maintenance/fetch_unlabeled_prs.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/agent.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/Epstein Civil Violence.ipynb +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/Readme.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/agents.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/app.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/model.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/Readme.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/agents.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/analysis.ipynb +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/app.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/model.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/Readme.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/agents.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/model.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/sugar-map.txt +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/tests.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/wolf_sheep/Readme.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/wolf_sheep/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/wolf_sheep/agents.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/wolf_sheep/app.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/wolf_sheep/model.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boid_flockers/Readme.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boid_flockers/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boid_flockers/agents.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boid_flockers/app.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boid_flockers/model.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/Readme.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/agents.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/app.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/model.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/st_app.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/Readme.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/agents.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/app.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/model.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/st_app.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/schelling/Readme.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/schelling/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/schelling/agents.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/schelling/analysis.ipynb +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/schelling/app.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/schelling/model.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/virus_on_network/Readme.md +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/virus_on_network/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/virus_on_network/agents.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/virus_on_network/app.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/virus_on_network/model.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/cell.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/cell_agent.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/cell_collection.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/discrete_space.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/network.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/property_layer.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/voronoi.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/continuous_space/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/continuous_space/continuous_space.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/continuous_space/continuous_space_agents.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/devs/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/devs/eventlist.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/devs/simulator.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/mesa_signals/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/mesa_signals/mesa_signal.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/mesa_signals/observable_collections.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/mesa_signals/signals_util.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/mesa_logging.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/model.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/space.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/visualization/components/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/visualization/components/matplotlib_components.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/visualization/user_param.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mesa/visualization/utils.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/mypy.ini +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/tests/__init__.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/tests/read_requirements.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_batch_run.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_components_matplotlib.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_continuous_space.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_devs.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_end_to_end_viz.sh +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_examples.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_grid.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_import_namespace.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_lifespan.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_mesa_logging.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_mesa_signals.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_model.py +0 -0
- {mesa-3.1.3 → mesa-3.1.5}/tests/test_space.py +0 -0
|
@@ -28,8 +28,10 @@ jobs:
|
|
|
28
28
|
python-version: '3.13'
|
|
29
29
|
- name: Add project directory to PYTHONPATH
|
|
30
30
|
run: echo "PYTHONPATH=$PYTHONPATH:$(pwd)" >> $GITHUB_ENV
|
|
31
|
+
- name: Install uv
|
|
32
|
+
run: pip install uv
|
|
31
33
|
- name: Install dependencies
|
|
32
|
-
run: pip install numpy pandas tqdm tabulate matplotlib solara networkx
|
|
34
|
+
run: uv pip install --system numpy pandas tqdm tabulate matplotlib solara networkx scipy
|
|
33
35
|
# Benchmarks on the projectmesa main branch
|
|
34
36
|
- name: Checkout main branch
|
|
35
37
|
uses: actions/checkout@v4
|
|
@@ -4,7 +4,7 @@ ci:
|
|
|
4
4
|
repos:
|
|
5
5
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
6
6
|
# Ruff version.
|
|
7
|
-
rev: v0.
|
|
7
|
+
rev: v0.9.4
|
|
8
8
|
hooks:
|
|
9
9
|
# Run the linter.
|
|
10
10
|
- id: ruff
|
|
@@ -25,7 +25,7 @@ repos:
|
|
|
25
25
|
- id: check-toml
|
|
26
26
|
- id: check-yaml
|
|
27
27
|
- repo: https://github.com/codespell-project/codespell
|
|
28
|
-
rev: v2.
|
|
28
|
+
rev: v2.4.1
|
|
29
29
|
hooks:
|
|
30
30
|
- id: codespell
|
|
31
31
|
args: [
|
|
@@ -119,7 +119,63 @@ ruff .
|
|
|
119
119
|
|
|
120
120
|
The license of this project is located in [LICENSE]. By submitting a contribution to this project, you are agreeing that your contribution will be released under the terms of this license.
|
|
121
121
|
|
|
122
|
-
##
|
|
122
|
+
## Roles in Mesa
|
|
123
|
+
Mesa has several roles to help structure our collaboration and recognize great work. They also form a progression path for community members to that want to take on increasing responsibility in the project. Since we're all volunteers, everyone contributes what they can when they can - there are no minimum time commitments. Also, the best ideas and contributions can come from anyone, these roles are just a way to coordinate our efforts.
|
|
124
|
+
|
|
125
|
+
Feel free to reach out to us anytime to discuss your interests and ambitions in the project. We're always happy to chat about how you can grow your involvement in Mesa!
|
|
126
|
+
|
|
127
|
+
### Contributor
|
|
128
|
+
Contributors help improve Mesa through:
|
|
129
|
+
- Code contributions
|
|
130
|
+
- Documentation improvements
|
|
131
|
+
- Bug reports and fixes
|
|
132
|
+
- Example models
|
|
133
|
+
- Tutorial improvements
|
|
134
|
+
- Answering questions
|
|
135
|
+
- Participating in discussions
|
|
136
|
+
- Testing pre-releases
|
|
137
|
+
- Sharing Mesa with others
|
|
138
|
+
|
|
139
|
+
Everyone can contribute what they can, when they can. No contribution is too small! Contributors who have a PR successfully merged receive the "Contributor" label on GitHub.
|
|
140
|
+
|
|
141
|
+
### Collaborator
|
|
142
|
+
When contributors consistently demonstrate technical skills and community mindset through their contributions, they may be invited to become collaborators. Collaborators help coordinate by:
|
|
143
|
+
|
|
144
|
+
- Reviewing pull requests
|
|
145
|
+
- Triaging issues and discussions
|
|
146
|
+
- Coordinating between contributors
|
|
147
|
+
- Leading specific areas of development
|
|
148
|
+
- Helping new contributors
|
|
149
|
+
- Participating in project planning
|
|
150
|
+
- Building community
|
|
151
|
+
|
|
152
|
+
The collaborator role recognizes people who help Mesa grow through both their technical contributions and community involvement. Collaborators receive GitHub triage permissions and the "Collaborator" label.
|
|
153
|
+
|
|
154
|
+
### Maintainer
|
|
155
|
+
Maintainers help guide Mesa's overall development while ensuring the project remains sustainable and welcoming. They focus on:
|
|
156
|
+
- Project vision and roadmap
|
|
157
|
+
- Major architectural decisions
|
|
158
|
+
- Release management
|
|
159
|
+
- Community governance
|
|
160
|
+
- Mentoring collaborators
|
|
161
|
+
- Setting community standards
|
|
162
|
+
- Long-term sustainability
|
|
163
|
+
|
|
164
|
+
Maintainers are selected based on their technical expertise, project understanding, and community leadership. Maintainers receive full repository permissions and the "Member" label.
|
|
165
|
+
|
|
166
|
+
### Special Roles
|
|
167
|
+
In some cases, special roles may be created for specific purposes, such as leading particular initiatives or components within Mesa. These roles are created as needed based on project requirements and may come with specific permissions and labels.
|
|
168
|
+
|
|
169
|
+
All roles are expected to:
|
|
170
|
+
- Follow Mesa's code of conduct
|
|
171
|
+
- Communicate respectfully
|
|
172
|
+
- Work collaboratively
|
|
173
|
+
- Help maintain a welcoming community
|
|
174
|
+
- Make decisions transparently
|
|
175
|
+
|
|
176
|
+
Mesa grows through good ideas and contributions. We're all volunteers working together to make Mesa better. Don't hesitate to reach out to any maintainer to discuss your interests and potential growth within the project!
|
|
177
|
+
|
|
178
|
+
## Maintainers' notes
|
|
123
179
|
Some notes useful for Mesa maintainers.
|
|
124
180
|
|
|
125
181
|
### Releases
|
|
@@ -1,6 +1,61 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Release History
|
|
3
3
|
---
|
|
4
|
+
# 3.1.5 (2025-03-26)
|
|
5
|
+
## Highlights
|
|
6
|
+
Mesa 3.1.5 is a maintenance release focused on improving documentation and cleaning up our resources. This update includes no breaking changes and is compatible with previous 3.1.x releases.
|
|
7
|
+
|
|
8
|
+
The documentation improvements include enhanced explanations for batch run parallel processing, a significantly expanded overview section covering spaces, property layers and time advancement methods with practical code examples, and a clearer installation guide detailing what the optional `[rec]` dependencies provide. We've also improved our examples documentation to better distinguish between core and user-contributed examples, and added a new "Roles" section to the contributing guide that outlines the project's community structure and progression paths.
|
|
9
|
+
|
|
10
|
+
On the maintenance side, we've cleaned up unused images and compressed existing ones, reducing the repository size by over 2MB and distribution size from 3.2MB to 1.2MB.
|
|
11
|
+
|
|
12
|
+
## What's Changed
|
|
13
|
+
### 📜 Documentation improvements
|
|
14
|
+
* docs: Split off the overview page, extend with spaces/activation by @EwoutH in https://github.com/projectmesa/mesa/pull/2673
|
|
15
|
+
* docs: Add Roles section to CONTRIBUTING.md by @EwoutH in https://github.com/projectmesa/mesa/pull/2694
|
|
16
|
+
* [JOSS] Docs: Clarify difference between core and user examples by @EwoutH in https://github.com/projectmesa/mesa/pull/2706
|
|
17
|
+
* [JOSS] docs: Improve batch_run documentation for parallel processing by @EwoutH in https://github.com/projectmesa/mesa/pull/2707
|
|
18
|
+
* Clean-up old images, compress wolf-sheep image, remove version switch artifact by @EwoutH in https://github.com/projectmesa/mesa/pull/2717
|
|
19
|
+
|
|
20
|
+
**Full Changelog**: https://github.com/projectmesa/mesa/compare/v3.1.4...v3.1.5
|
|
21
|
+
|
|
22
|
+
# 3.1.4 (2025-02-09)
|
|
23
|
+
## Highlights
|
|
24
|
+
This release contains various improvements and bugfixes to the matplotlib-based visualization of spaces. Hexgrids are now fully supported, including property layers. In making this possible, various minor bugs were encountered and also fixed. In addition to the visualization improvements, there are various minor convenience improvements to the docs.
|
|
25
|
+
|
|
26
|
+
## What's Changed
|
|
27
|
+
### 🛠 Enhancements made
|
|
28
|
+
* Fixed hex-space draw function to avoid overlaps by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2609
|
|
29
|
+
* Fix: Property layer visualization for HexGrid by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2646
|
|
30
|
+
* Enhance DataCollector to validate model_reporters functions by @peter-kinger in https://github.com/projectmesa/mesa/pull/2605
|
|
31
|
+
* Implemented post_process in Altair based components by @sanika-n in https://github.com/projectmesa/mesa/pull/2641
|
|
32
|
+
### 🐛 Bugs fixed
|
|
33
|
+
* bugfix for draw_property_layer by @quaquel in https://github.com/projectmesa/mesa/pull/2639
|
|
34
|
+
* Uses array for hex grid property layer fix by @Sahil-Chhoker in https://github.com/projectmesa/mesa/pull/2651
|
|
35
|
+
* Update Binder environment to use latest Mesa version (#2652) by @aarav-shukla07 in https://github.com/projectmesa/mesa/pull/2655
|
|
36
|
+
* Change Hexgrid._connect_cells_2d to use x,y coordinates by @quaquel in https://github.com/projectmesa/mesa/pull/2632
|
|
37
|
+
### 🔍 Examples updated
|
|
38
|
+
* Added property layer viz to sugarscape by @sanika-n in https://github.com/projectmesa/mesa/pull/2653
|
|
39
|
+
* added color-bar for spice by @sanika-n in https://github.com/projectmesa/mesa/pull/2622
|
|
40
|
+
### 📜 Documentation improvements
|
|
41
|
+
* remove any reference to using --pre by @quaquel in https://github.com/projectmesa/mesa/pull/2618
|
|
42
|
+
* Updated Docs by @sanika-n in https://github.com/projectmesa/mesa/pull/2624
|
|
43
|
+
* Fixed 404 error for Examples Tab in Introductory Tutorial (#2662) by @aarav-shukla07 in https://github.com/projectmesa/mesa/pull/2664
|
|
44
|
+
* Documentation by @Spartan-71 in https://github.com/projectmesa/mesa/pull/2630
|
|
45
|
+
* Adding a copy option at the top of the code written in the docs by @PrashantChoudhary13579 in https://github.com/projectmesa/mesa/pull/2628
|
|
46
|
+
* Adding Mesa Extension page by @PrashantChoudhary13579 in https://github.com/projectmesa/mesa/pull/2627
|
|
47
|
+
### 🔧 Maintenance
|
|
48
|
+
* remove remnants of mesa cli by @quaquel in https://github.com/projectmesa/mesa/pull/2617
|
|
49
|
+
* benchmarks.yml: Install SciPy and use uv for pip install by @EwoutH in https://github.com/projectmesa/mesa/pull/2633
|
|
50
|
+
* [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/projectmesa/mesa/pull/2659
|
|
51
|
+
|
|
52
|
+
## New Contributors
|
|
53
|
+
* @PrashantChoudhary13579 made their first contribution in https://github.com/projectmesa/mesa/pull/2628
|
|
54
|
+
* @aarav-shukla07 made their first contribution in https://github.com/projectmesa/mesa/pull/2655
|
|
55
|
+
* @peter-kinger made their first contribution in https://github.com/projectmesa/mesa/pull/2605
|
|
56
|
+
|
|
57
|
+
**Full Changelog**: https://github.com/projectmesa/mesa/compare/v3.1.3...v3.1.4
|
|
58
|
+
|
|
4
59
|
# 3.1.3 (2025-01-11)
|
|
5
60
|
## Highlights
|
|
6
61
|
Mesa 3.1.3 introduces a major experimental reimplementation of Mesa's continuous space, providing an intuitive agent-centric API and significant performance improvements. The new implementation supports n-dimensional spaces and offers streamlined methods for agent movement and neighbor calculations.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: Mesa
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.5
|
|
4
4
|
Summary: Agent-based modeling (ABM) in Python
|
|
5
5
|
Project-URL: homepage, https://github.com/projectmesa/mesa
|
|
6
6
|
Project-URL: repository, https://github.com/projectmesa/mesa
|
|
@@ -27,6 +27,7 @@ Requires-Dist: pandas
|
|
|
27
27
|
Requires-Dist: scipy
|
|
28
28
|
Requires-Dist: tqdm
|
|
29
29
|
Provides-Extra: all
|
|
30
|
+
Requires-Dist: altair; extra == 'all'
|
|
30
31
|
Requires-Dist: ipython; extra == 'all'
|
|
31
32
|
Requires-Dist: matplotlib; extra == 'all'
|
|
32
33
|
Requires-Dist: myst-nb; extra == 'all'
|
|
@@ -41,7 +42,9 @@ Requires-Dist: scipy; extra == 'all'
|
|
|
41
42
|
Requires-Dist: seaborn; extra == 'all'
|
|
42
43
|
Requires-Dist: solara; extra == 'all'
|
|
43
44
|
Requires-Dist: sphinx; extra == 'all'
|
|
45
|
+
Requires-Dist: sphinx-copybutton; extra == 'all'
|
|
44
46
|
Provides-Extra: dev
|
|
47
|
+
Requires-Dist: altair; extra == 'dev'
|
|
45
48
|
Requires-Dist: matplotlib; extra == 'dev'
|
|
46
49
|
Requires-Dist: networkx; extra == 'dev'
|
|
47
50
|
Requires-Dist: pytest; extra == 'dev'
|
|
@@ -51,6 +54,7 @@ Requires-Dist: ruff; extra == 'dev'
|
|
|
51
54
|
Requires-Dist: solara; extra == 'dev'
|
|
52
55
|
Requires-Dist: sphinx; extra == 'dev'
|
|
53
56
|
Provides-Extra: docs
|
|
57
|
+
Requires-Dist: altair; extra == 'docs'
|
|
54
58
|
Requires-Dist: ipython; extra == 'docs'
|
|
55
59
|
Requires-Dist: matplotlib; extra == 'docs'
|
|
56
60
|
Requires-Dist: myst-nb; extra == 'docs'
|
|
@@ -60,7 +64,9 @@ Requires-Dist: pydata-sphinx-theme; extra == 'docs'
|
|
|
60
64
|
Requires-Dist: seaborn; extra == 'docs'
|
|
61
65
|
Requires-Dist: solara; extra == 'docs'
|
|
62
66
|
Requires-Dist: sphinx; extra == 'docs'
|
|
67
|
+
Requires-Dist: sphinx-copybutton; extra == 'docs'
|
|
63
68
|
Provides-Extra: examples
|
|
69
|
+
Requires-Dist: altair; extra == 'examples'
|
|
64
70
|
Requires-Dist: matplotlib; extra == 'examples'
|
|
65
71
|
Requires-Dist: networkx; extra == 'examples'
|
|
66
72
|
Requires-Dist: pytest; extra == 'examples'
|
|
@@ -69,10 +75,12 @@ Requires-Dist: solara; extra == 'examples'
|
|
|
69
75
|
Provides-Extra: network
|
|
70
76
|
Requires-Dist: networkx; extra == 'network'
|
|
71
77
|
Provides-Extra: rec
|
|
78
|
+
Requires-Dist: altair; extra == 'rec'
|
|
72
79
|
Requires-Dist: matplotlib; extra == 'rec'
|
|
73
80
|
Requires-Dist: networkx; extra == 'rec'
|
|
74
81
|
Requires-Dist: solara; extra == 'rec'
|
|
75
82
|
Provides-Extra: viz
|
|
83
|
+
Requires-Dist: altair; extra == 'viz'
|
|
76
84
|
Requires-Dist: matplotlib; extra == 'viz'
|
|
77
85
|
Requires-Dist: solara; extra == 'viz'
|
|
78
86
|
Description-Content-Type: text/markdown
|
|
@@ -107,27 +115,22 @@ can be displayed in browser windows or Jupyter.*
|
|
|
107
115
|
|
|
108
116
|
## Using Mesa
|
|
109
117
|
|
|
110
|
-
To install our latest stable release
|
|
118
|
+
To install our latest stable release, run:
|
|
111
119
|
|
|
112
120
|
``` bash
|
|
113
121
|
pip install -U mesa
|
|
114
122
|
```
|
|
115
123
|
|
|
116
|
-
To install our latest pre-release, run:
|
|
117
|
-
|
|
118
|
-
``` bash
|
|
119
|
-
pip install -U --pre mesa
|
|
120
|
-
```
|
|
121
124
|
Starting with Mesa 3.0, we don't install all our dependencies anymore by default.
|
|
122
125
|
```bash
|
|
123
126
|
# You can customize the additional dependencies you need, if you want. Available are:
|
|
124
|
-
pip install -U
|
|
127
|
+
pip install -U mesa[network,viz]
|
|
125
128
|
|
|
126
129
|
# This is equivalent to our recommended dependencies:
|
|
127
|
-
pip install -U
|
|
130
|
+
pip install -U mesa[rec]
|
|
128
131
|
|
|
129
132
|
# To install all, including developer, dependencies:
|
|
130
|
-
pip install -U
|
|
133
|
+
pip install -U mesa[all]
|
|
131
134
|
```
|
|
132
135
|
|
|
133
136
|
You can also use `pip` to install the latest GitHub version:
|
|
@@ -28,27 +28,22 @@ can be displayed in browser windows or Jupyter.*
|
|
|
28
28
|
|
|
29
29
|
## Using Mesa
|
|
30
30
|
|
|
31
|
-
To install our latest stable release
|
|
31
|
+
To install our latest stable release, run:
|
|
32
32
|
|
|
33
33
|
``` bash
|
|
34
34
|
pip install -U mesa
|
|
35
35
|
```
|
|
36
36
|
|
|
37
|
-
To install our latest pre-release, run:
|
|
38
|
-
|
|
39
|
-
``` bash
|
|
40
|
-
pip install -U --pre mesa
|
|
41
|
-
```
|
|
42
37
|
Starting with Mesa 3.0, we don't install all our dependencies anymore by default.
|
|
43
38
|
```bash
|
|
44
39
|
# You can customize the additional dependencies you need, if you want. Available are:
|
|
45
|
-
pip install -U
|
|
40
|
+
pip install -U mesa[network,viz]
|
|
46
41
|
|
|
47
42
|
# This is equivalent to our recommended dependencies:
|
|
48
|
-
pip install -U
|
|
43
|
+
pip install -U mesa[rec]
|
|
49
44
|
|
|
50
45
|
# To install all, including developer, dependencies:
|
|
51
|
-
pip install -U
|
|
46
|
+
pip install -U mesa[all]
|
|
52
47
|
```
|
|
53
48
|
|
|
54
49
|
You can also use `pip` to install the latest GitHub version:
|
|
@@ -15,6 +15,7 @@ Updating docs can be confusing. Here are the basic setups.
|
|
|
15
15
|
1. Build the docs, from the inside of the docs folder.
|
|
16
16
|
* **Requires** sphinx: `pip install sphinx`
|
|
17
17
|
* **Requires** nbsphinx: `pip install nbsphinx` (this will render the images from jupyter in the docs)
|
|
18
|
+
* **Requires** sphinx-copybutton: `pip install sphinx-copybutton` (this will enable a copy option at the top of the code written in the docs)
|
|
18
19
|
* `make html`
|
|
19
20
|
1. Commit the changes. If there are new files, you will have to explicit add them.
|
|
20
21
|
* `git commit -am "Updating docs."`
|
|
@@ -32,5 +33,5 @@ From this point, you will need to find someone that has access to readthedocs. C
|
|
|
32
33
|
### Helpful Sphnix tips
|
|
33
34
|
* Build html from docs:
|
|
34
35
|
* `make html`
|
|
35
|
-
* Autogenerate / update sphninx from docstrings (replace your name as the author:
|
|
36
|
+
* Autogenerate / update sphninx from docstrings (replace your name as the author):
|
|
36
37
|
* `sphinx-apidoc -A "Jackie Kazil" -F -o docs mesa/`
|
|
@@ -11,6 +11,13 @@ For a detailed tutorial, please refer to our [Visualization Tutorial](../tutoria
|
|
|
11
11
|
:show-inheritance:
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
+
```{eval-rst}
|
|
15
|
+
.. automodule:: mesa.visualization.components.__init__
|
|
16
|
+
:members:
|
|
17
|
+
:undoc-members:
|
|
18
|
+
:show-inheritance:
|
|
19
|
+
```
|
|
20
|
+
|
|
14
21
|
## User Parameters
|
|
15
22
|
|
|
16
23
|
```{eval-rst}
|
|
@@ -37,6 +44,7 @@ For a detailed tutorial, please refer to our [Visualization Tutorial](../tutoria
|
|
|
37
44
|
:show-inheritance:
|
|
38
45
|
```
|
|
39
46
|
|
|
47
|
+
|
|
40
48
|
## Altair-based visualizations
|
|
41
49
|
|
|
42
50
|
```{eval-rst}
|
|
@@ -47,6 +47,7 @@ extensions = [
|
|
|
47
47
|
"sphinx.ext.viewcode",
|
|
48
48
|
"sphinx.ext.napoleon", # for google style docstrings
|
|
49
49
|
"myst_nb", # For Markdown and Jupyter notebooks
|
|
50
|
+
"sphinx_copybutton" # For copying the code in the documentation
|
|
50
51
|
]
|
|
51
52
|
|
|
52
53
|
# Add any paths that contain templates here, relative to this directory.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Getting started
|
|
2
|
+
Mesa is a modular framework for building, analyzing and visualizing agent-based models.
|
|
3
|
+
|
|
4
|
+
**Agent-based models** are computer simulations involving multiple entities (the agents) acting and interacting with one another based on their programmed behavior. Agents can be used to represent living cells, animals, individual humans, even entire organizations or abstract entities. Sometimes, we may have an understanding of how the individual components of a system behave, and want to see what system-level behaviors and effects emerge from their interaction. Other times, we may have a good idea of how the system overall behaves, and want to figure out what individual behaviors explain it. Or we may want to see how to get agents to cooperate or compete most effectively. Or we may just want to build a cool toy with colorful little dots moving around.
|
|
5
|
+
|
|
6
|
+
## Tutorials
|
|
7
|
+
If you want to get a quick start on how to build agent based models with MESA, check the overview and tutorials:
|
|
8
|
+
|
|
9
|
+
- [Overview of the MESA library](overview): Learn about the core concepts and components of Mesa.
|
|
10
|
+
- [Introductory Tutorial](tutorials/intro_tutorial): Learn how to create your first Mesa model.
|
|
11
|
+
- [Visualization Tutorial](tutorials/visualization_tutorial): Learn how to create interactive visualizations for your models.
|
|
12
|
+
|
|
13
|
+
## Examples
|
|
14
|
+
Mesa ships with a collection of example models. These are classic ABMs, so if you are familiar with ABMs and want to get a quick sense of how MESA works, these examples are great place to start. You can find them [here](examples).
|
|
15
|
+
|
|
16
|
+
## Further resources
|
|
17
|
+
To further explore Mesa and its features, we have the following resources available:
|
|
18
|
+
|
|
19
|
+
### Best practices
|
|
20
|
+
- [Mesa best practices](best-practices): an overview of tips and guidelines for using MESA.
|
|
21
|
+
|
|
22
|
+
### API documentation
|
|
23
|
+
- [Mesa API reference](apis): Detailed documentation of Mesa's classes and functions.
|
|
24
|
+
|
|
25
|
+
### Repository of models built using MESA
|
|
26
|
+
- [Mesa Examples repository](https://github.com/projectmesa/mesa-examples): A collection of example models demonstrating various Mesa features and modeling techniques.
|
|
27
|
+
|
|
28
|
+
### Migration guide
|
|
29
|
+
- [Mesa 3.0 Migration guide](migration_guide): If you're upgrading from an earlier version of Mesa, this guide will help you navigate the changes in Mesa 3.0.
|
|
30
|
+
|
|
31
|
+
### Source Ccode and development
|
|
32
|
+
- [Mesa GitHub repository](https://github.com/projectmesa/mesa): Access the full source code of Mesa, contribute to its development, or report issues.
|
|
33
|
+
- [Mesa release notes](https://github.com/projectmesa/mesa/releases): View the detailed changelog of Mesa, including all past releases and their features.
|
|
34
|
+
|
|
35
|
+
### Community and support
|
|
36
|
+
- [Mesa GitHub Discussions](https://github.com/projectmesa/mesa/discussions): Join discussions, ask questions, and connect with other Mesa users.
|
|
37
|
+
- [Matrix Chat](https://matrix.to/#/#project-mesa:matrix.org): Real-time chat for quick questions and community interaction.
|
|
38
|
+
|
|
39
|
+
Enjoy modelling with Mesa, and feel free to reach out!
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
```{toctree}
|
|
46
|
+
:hidden: true
|
|
47
|
+
:maxdepth: 7
|
|
48
|
+
|
|
49
|
+
tutorials/intro_tutorial
|
|
50
|
+
tutorials/visualization_tutorial
|
|
51
|
+
Best Practices <best-practices>
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
```
|
|
Binary file
|
|
@@ -33,7 +33,7 @@ Mesa allows users to quickly create agent-based models using built-in core compo
|
|
|
33
33
|
|
|
34
34
|
## Using Mesa
|
|
35
35
|
### Installation Options
|
|
36
|
-
To install our latest stable release
|
|
36
|
+
To install our latest stable release, run:
|
|
37
37
|
|
|
38
38
|
```bash
|
|
39
39
|
pip install -U mesa
|
|
@@ -43,16 +43,11 @@ To also install our recommended dependencies:
|
|
|
43
43
|
pip install -U mesa[rec]
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
+
The `[rec]` option installs additional recommended dependencies needed for visualization, plotting, and network modeling capabilities.
|
|
47
|
+
|
|
46
48
|
On a Mac, this command might cause an error stating `zsh: no matches found: mesa[all]`.
|
|
47
49
|
In that case, change the command to `pip install -U "mesa[rec]"`.
|
|
48
50
|
|
|
49
|
-
|
|
50
|
-
To install our latest pre-release:
|
|
51
|
-
|
|
52
|
-
```bash
|
|
53
|
-
pip install -U --pre mesa[rec]
|
|
54
|
-
```
|
|
55
|
-
|
|
56
51
|
### Resources
|
|
57
52
|
|
|
58
53
|
For help getting started with Mesa, check out these resources:
|
|
@@ -60,6 +55,7 @@ For help getting started with Mesa, check out these resources:
|
|
|
60
55
|
- [Getting started] - Learn about Mesa's core concepts and components
|
|
61
56
|
- [Migration Guide] - Upgrade to Mesa 3.0
|
|
62
57
|
- [Mesa Examples] - Browse user-contributed models and implementations
|
|
58
|
+
- [Mesa Extensions] - Overview of mesa's Extensions
|
|
63
59
|
- [GitHub Discussions] - Ask questions and discuss Mesa
|
|
64
60
|
- [Matrix Chat Room] - Real-time chat with the Mesa community
|
|
65
61
|
|
|
@@ -78,6 +74,7 @@ The original Mesa conference paper is [available here](http://conference.scipy.o
|
|
|
78
74
|
:maxdepth: 7
|
|
79
75
|
|
|
80
76
|
Getting started <getting_started>
|
|
77
|
+
Overview <overview>
|
|
81
78
|
Examples <examples>
|
|
82
79
|
Migration guide <migration_guide>
|
|
83
80
|
API Documentation <apis/api_main>
|
|
@@ -97,9 +94,9 @@ API Documentation <apis/api_main>
|
|
|
97
94
|
[matrix chat room]: https://matrix.to/#/#project-mesa:matrix.org
|
|
98
95
|
[mesa]: https://github.com/projectmesa/mesa/
|
|
99
96
|
[mesa overview]: overview
|
|
100
|
-
[mesa examples]: https://
|
|
97
|
+
[mesa examples]: https://mesa.readthedocs.io/stable/examples.html
|
|
101
98
|
[mesa introductory tutorial]: tutorials/intro_tutorial
|
|
102
99
|
[mesa visualization tutorial]: tutorials/visualization_tutorial
|
|
103
100
|
[migration guide]: migration_guide
|
|
104
101
|
[Getting started]: getting_started
|
|
105
|
-
|
|
102
|
+
[Mesa Extensions]: mesa_extension.md
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Mesa Extensions Overview
|
|
2
|
+
|
|
3
|
+
This contains an overview of Mesa Extensions. Mesa's extensibility is a key feature that allows users to enhance functionality, improve scalability, and foster innovation in agent-based modeling.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
## Mesa-Geo 🌍
|
|
7
|
+
|
|
8
|
+
**Field:** Geographic Information Systems (GIS)
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
**Description:**
|
|
12
|
+
Mesa-Geo is an extension of the Mesa framework designed to facilitate working with geographic data in agent-based modeling. It introduces a **GeoSpace** to host **GeoAgents**, which are enhanced agents that include a `geometry` attribute ([a Shapely object](https://shapely.readthedocs.io/en/latest/manual.html)) and a `crs` attribute (Coordinate Reference System). These attributes enable the integration of geographic and spatial data into simulations. Geometries can be defined manually using Shapely or imported from various sources, such as vector data files (e.g., shapefiles), GeoJSON objects, or GeoPandas GeoDataFrames.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
**Key Features:**
|
|
16
|
+
- **Spatial Reference Systems Support:** Mesa-Geo handles coordinate reference systems (CRS), which is essential for working with geographic data in various projections.
|
|
17
|
+
- **Geometric Operations Support:** Mesa-Geo utilizes Shapely, which provides robust tools for creating and manipulating geometric shapes like points, polygons, and lines.
|
|
18
|
+
- **Topological Operations Support:** Functions for analyzing spatial relationships between geometries.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
**Author(s):** Wang Boyu
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
**Additional Resources:**
|
|
25
|
+
For more information, visit the official [Mesa-Geo repository](https://github.com/projectmesa/mesa-geo?tab=readme-ov-file).
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Mesa Examples 📊
|
|
30
|
+
|
|
31
|
+
**Description:**
|
|
32
|
+
Mesa Examples provide a collection of models and use cases demonstrating the features and capabilities of the Mesa framework for agent-based modeling. These examples include core and user-submitted models covering a variety of domains like grid spaces, networks, visualization, and GIS.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
**Key Features:**
|
|
37
|
+
- **Core Examples:** Fully tested and updated models included directly with the Mesa framework.
|
|
38
|
+
- **User Examples:** Community-contributed models showcasing advanced and diverse use cases.
|
|
39
|
+
- **Extensive Coverage:** Examples for grid spaces, GIS integration, networks, visualization, and more.
|
|
40
|
+
- **Easy Access:** Available directly from the Mesa package or via installation from the repository.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
**Author(s):** Contributions from the Mesa developer community.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
**Examples Include:**
|
|
49
|
+
- **Grid Space:** Models like Bank Reserves, Conway’s Game of Life, and Forest Fire.
|
|
50
|
+
- **GIS:** GeoSchelling Models, Urban Growth, and Population Models.
|
|
51
|
+
- **Network:** Boltzmann Wealth Model and Ant System for the Traveling Salesman Problem.
|
|
52
|
+
- **Visualization:** Charting tools and grid displays.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
**For More Information:**
|
|
57
|
+
For more Detail, Visit the [Mesa Examples Repository](https://github.com/projectmesa/mesa/tree/main/mesa/examples).
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## **Mesa-Frames** 🚀
|
|
62
|
+
|
|
63
|
+
**Description:**
|
|
64
|
+
Mesa-Frames is an extension of the Mesa framework designed to handle complex simulations with thousands of agents. By utilizing DataFrames (pandas or Polars), it enhances scalability and performance while maintaining a syntax similar to Mesa.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
**Key Features:**
|
|
69
|
+
- **Enhanced Performance:** Uses DataFrames for SIMD processing and vectorized functions to speed up simulations.
|
|
70
|
+
- **Backend Support:** Supports `pandas` (ease of use) and `Polars` (performance innovations with Rust-based backend).
|
|
71
|
+
- **Seamless Integration:** Maintains a similar API and functionality as the base Mesa framework for easier adoption.
|
|
72
|
+
- **In-Place Operations:** Functional programming and fast memory-efficient copy methods.
|
|
73
|
+
- **Future Plans:** GPU functionality, automatic model vectorization, and backend-independent AgentSet class.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
**Usage:**
|
|
78
|
+
- Define agents using `AgentSetPandas` or `AgentSetPolars`.
|
|
79
|
+
- Implement models by subclassing `ModelDF`.
|
|
80
|
+
- Perform vectorized operations to enhance simulation performance.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
**Author(s):**
|
|
85
|
+
Developed and maintained by the Mesa development community.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
**License:**
|
|
90
|
+
Distributed under the MIT License.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
**More Information:**
|
|
95
|
+
Visit the [GitHub Repository](https://github.com/projectmesa/mesa-frames).
|
|
96
|
+
|
|
97
|
+
---
|