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.

Files changed (192) hide show
  1. {mesa-3.1.3 → mesa-3.1.5}/.github/workflows/benchmarks.yml +3 -1
  2. {mesa-3.1.3 → mesa-3.1.5}/.pre-commit-config.yaml +2 -2
  3. {mesa-3.1.3 → mesa-3.1.5}/CONTRIBUTING.md +57 -1
  4. {mesa-3.1.3 → mesa-3.1.5}/HISTORY.md +55 -0
  5. {mesa-3.1.3 → mesa-3.1.5}/PKG-INFO +13 -10
  6. {mesa-3.1.3 → mesa-3.1.5}/README.md +4 -9
  7. {mesa-3.1.3 → mesa-3.1.5}/binder/environment.yml +2 -2
  8. {mesa-3.1.3 → mesa-3.1.5}/docs/README.md +2 -1
  9. {mesa-3.1.3 → mesa-3.1.5}/docs/apis/visualization.md +8 -0
  10. {mesa-3.1.3 → mesa-3.1.5}/docs/conf.py +1 -0
  11. mesa-3.1.5/docs/getting_started.md +54 -0
  12. mesa-3.1.5/docs/images/wolf_sheep.png +0 -0
  13. {mesa-3.1.3 → mesa-3.1.5}/docs/index.md +7 -10
  14. mesa-3.1.5/docs/mesa_extension.md +97 -0
  15. mesa-3.1.3/docs/getting_started.md → mesa-3.1.5/docs/overview.md +95 -65
  16. {mesa-3.1.3 → mesa-3.1.5}/docs/tutorials/intro_tutorial.ipynb +5 -11
  17. {mesa-3.1.3 → mesa-3.1.5}/docs/tutorials/visualization_tutorial.ipynb +1 -3
  18. {mesa-3.1.3 → mesa-3.1.5}/mesa/__init__.py +1 -1
  19. {mesa-3.1.3 → mesa-3.1.5}/mesa/batchrunner.py +6 -3
  20. {mesa-3.1.3 → mesa-3.1.5}/mesa/datacollection.py +62 -2
  21. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/README.md +9 -4
  22. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/app.py +15 -37
  23. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/grid.py +8 -8
  24. {mesa-3.1.3 → mesa-3.1.5}/mesa/visualization/__init__.py +1 -2
  25. {mesa-3.1.3 → mesa-3.1.5}/mesa/visualization/components/altair_components.py +10 -8
  26. {mesa-3.1.3 → mesa-3.1.5}/mesa/visualization/mpl_space_drawing.py +139 -90
  27. {mesa-3.1.3 → mesa-3.1.5}/mesa/visualization/solara_viz.py +5 -1
  28. {mesa-3.1.3 → mesa-3.1.5}/pyproject.toml +2 -3
  29. {mesa-3.1.3 → mesa-3.1.5}/tests/test_agent.py +3 -3
  30. {mesa-3.1.3 → mesa-3.1.5}/tests/test_cell_space.py +17 -17
  31. {mesa-3.1.3 → mesa-3.1.5}/tests/test_datacollector.py +62 -0
  32. {mesa-3.1.3 → mesa-3.1.5}/tests/test_solara_viz.py +39 -6
  33. mesa-3.1.3/docs/_static/switcher.json +0 -12
  34. mesa-3.1.3/docs/images/tutorial/br_ginis.png +0 -0
  35. mesa-3.1.3/docs/images/tutorial/dc_endwealth.png +0 -0
  36. mesa-3.1.3/docs/images/tutorial/dc_gini.png +0 -0
  37. mesa-3.1.3/docs/images/tutorial/dc_oneagent.png +0 -0
  38. mesa-3.1.3/docs/images/tutorial/first_hist.png +0 -0
  39. mesa-3.1.3/docs/images/tutorial/multirun_hist.png +0 -0
  40. mesa-3.1.3/docs/images/tutorial/numpy_grid.png +0 -0
  41. mesa-3.1.3/docs/images/tutorial/viz_chart.png +0 -0
  42. mesa-3.1.3/docs/images/tutorial/viz_empty.png +0 -0
  43. mesa-3.1.3/docs/images/tutorial/viz_greycircles.png +0 -0
  44. mesa-3.1.3/docs/images/tutorial/viz_histogram.png +0 -0
  45. mesa-3.1.3/docs/images/tutorial/viz_redcircles.png +0 -0
  46. mesa-3.1.3/docs/images/wolf_sheep.png +0 -0
  47. mesa-3.1.3/docs/tutorials/files/viz_chart.png +0 -0
  48. mesa-3.1.3/docs/tutorials/files/viz_empty.png +0 -0
  49. mesa-3.1.3/docs/tutorials/files/viz_greycircles.png +0 -0
  50. mesa-3.1.3/docs/tutorials/files/viz_histogram.png +0 -0
  51. mesa-3.1.3/docs/tutorials/files/viz_redcircles.png +0 -0
  52. mesa-3.1.3/docs/tutorials/files/viz_slider.png +0 -0
  53. {mesa-3.1.3 → mesa-3.1.5}/.codespellignore +0 -0
  54. {mesa-3.1.3 → mesa-3.1.5}/.coveragerc +0 -0
  55. {mesa-3.1.3 → mesa-3.1.5}/.github/ISSUE_TEMPLATE/bug-report.md +0 -0
  56. {mesa-3.1.3 → mesa-3.1.5}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  57. {mesa-3.1.3 → mesa-3.1.5}/.github/ISSUE_TEMPLATE/feature-request.md +0 -0
  58. {mesa-3.1.3 → mesa-3.1.5}/.github/PULL_REQUEST_TEMPLATE/bug.md +0 -0
  59. {mesa-3.1.3 → mesa-3.1.5}/.github/PULL_REQUEST_TEMPLATE/feature.md +0 -0
  60. {mesa-3.1.3 → mesa-3.1.5}/.github/dependabot.yml +0 -0
  61. {mesa-3.1.3 → mesa-3.1.5}/.github/pull_request_template.md +0 -0
  62. {mesa-3.1.3 → mesa-3.1.5}/.github/release.yml +0 -0
  63. {mesa-3.1.3 → mesa-3.1.5}/.github/workflows/build_lint.yml +0 -0
  64. {mesa-3.1.3 → mesa-3.1.5}/.github/workflows/release.yml +0 -0
  65. {mesa-3.1.3 → mesa-3.1.5}/.gitignore +0 -0
  66. {mesa-3.1.3 → mesa-3.1.5}/.readthedocs.yml +0 -0
  67. {mesa-3.1.3 → mesa-3.1.5}/CITATION.bib +0 -0
  68. {mesa-3.1.3 → mesa-3.1.5}/CODE_OF_CONDUCT.md +0 -0
  69. {mesa-3.1.3 → mesa-3.1.5}/Dockerfile +0 -0
  70. {mesa-3.1.3 → mesa-3.1.5}/LICENSE +0 -0
  71. {mesa-3.1.3 → mesa-3.1.5}/NOTICE +0 -0
  72. {mesa-3.1.3 → mesa-3.1.5}/benchmarks/compare_timings.py +0 -0
  73. {mesa-3.1.3 → mesa-3.1.5}/benchmarks/configurations.py +0 -0
  74. {mesa-3.1.3 → mesa-3.1.5}/benchmarks/global_benchmark.py +0 -0
  75. {mesa-3.1.3 → mesa-3.1.5}/codecov.yaml +0 -0
  76. {mesa-3.1.3 → mesa-3.1.5}/docker-compose.yml +0 -0
  77. {mesa-3.1.3 → mesa-3.1.5}/docs/Makefile +0 -0
  78. {mesa-3.1.3 → mesa-3.1.5}/docs/apis/agent.md +0 -0
  79. {mesa-3.1.3 → mesa-3.1.5}/docs/apis/api_main.md +0 -0
  80. {mesa-3.1.3 → mesa-3.1.5}/docs/apis/batchrunner.md +0 -0
  81. {mesa-3.1.3 → mesa-3.1.5}/docs/apis/datacollection.md +0 -0
  82. {mesa-3.1.3 → mesa-3.1.5}/docs/apis/experimental.md +0 -0
  83. {mesa-3.1.3 → mesa-3.1.5}/docs/apis/mesa_logging.md +0 -0
  84. {mesa-3.1.3 → mesa-3.1.5}/docs/apis/model.md +0 -0
  85. {mesa-3.1.3 → mesa-3.1.5}/docs/apis/space.md +0 -0
  86. {mesa-3.1.3 → mesa-3.1.5}/docs/best-practices.md +0 -0
  87. {mesa-3.1.3 → mesa-3.1.5}/docs/example_template.txt +0 -0
  88. {mesa-3.1.3 → mesa-3.1.5}/docs/examples_overview_template.txt +0 -0
  89. {mesa-3.1.3 → mesa-3.1.5}/docs/images/mesa_logo.ico +0 -0
  90. {mesa-3.1.3 → mesa-3.1.5}/docs/images/mesa_logo.png +0 -0
  91. {mesa-3.1.3 → mesa-3.1.5}/docs/make.bat +0 -0
  92. {mesa-3.1.3 → mesa-3.1.5}/docs/mesa.md +0 -0
  93. {mesa-3.1.3 → mesa-3.1.5}/docs/migration_guide.md +0 -0
  94. {mesa-3.1.3 → mesa-3.1.5}/docs/tutorials/MoneyModel.py +0 -0
  95. {mesa-3.1.3 → mesa-3.1.5}/maintenance/fetch_unlabeled_prs.py +0 -0
  96. {mesa-3.1.3 → mesa-3.1.5}/mesa/agent.py +0 -0
  97. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/__init__.py +0 -0
  98. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/__init__.py +0 -0
  99. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/Epstein Civil Violence.ipynb +0 -0
  100. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/Readme.md +0 -0
  101. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/__init__.py +0 -0
  102. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/agents.py +0 -0
  103. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/app.py +0 -0
  104. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/epstein_civil_violence/model.py +0 -0
  105. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/Readme.md +0 -0
  106. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/__init__.py +0 -0
  107. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/agents.py +0 -0
  108. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/analysis.ipynb +0 -0
  109. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/app.py +0 -0
  110. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/pd_grid/model.py +0 -0
  111. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/Readme.md +0 -0
  112. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/__init__.py +0 -0
  113. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/agents.py +0 -0
  114. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/model.py +0 -0
  115. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/sugar-map.txt +0 -0
  116. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/sugarscape_g1mt/tests.py +0 -0
  117. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/wolf_sheep/Readme.md +0 -0
  118. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/wolf_sheep/__init__.py +0 -0
  119. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/wolf_sheep/agents.py +0 -0
  120. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/wolf_sheep/app.py +0 -0
  121. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/advanced/wolf_sheep/model.py +0 -0
  122. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/__init__.py +0 -0
  123. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boid_flockers/Readme.md +0 -0
  124. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boid_flockers/__init__.py +0 -0
  125. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boid_flockers/agents.py +0 -0
  126. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boid_flockers/app.py +0 -0
  127. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boid_flockers/model.py +0 -0
  128. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/Readme.md +0 -0
  129. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/__init__.py +0 -0
  130. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/agents.py +0 -0
  131. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/app.py +0 -0
  132. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/model.py +0 -0
  133. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/boltzmann_wealth_model/st_app.py +0 -0
  134. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/Readme.md +0 -0
  135. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/__init__.py +0 -0
  136. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/agents.py +0 -0
  137. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/app.py +0 -0
  138. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/model.py +0 -0
  139. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/conways_game_of_life/st_app.py +0 -0
  140. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/schelling/Readme.md +0 -0
  141. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/schelling/__init__.py +0 -0
  142. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/schelling/agents.py +0 -0
  143. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/schelling/analysis.ipynb +0 -0
  144. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/schelling/app.py +0 -0
  145. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/schelling/model.py +0 -0
  146. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/virus_on_network/Readme.md +0 -0
  147. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/virus_on_network/__init__.py +0 -0
  148. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/virus_on_network/agents.py +0 -0
  149. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/virus_on_network/app.py +0 -0
  150. {mesa-3.1.3 → mesa-3.1.5}/mesa/examples/basic/virus_on_network/model.py +0 -0
  151. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/__init__.py +0 -0
  152. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/__init__.py +0 -0
  153. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/cell.py +0 -0
  154. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/cell_agent.py +0 -0
  155. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/cell_collection.py +0 -0
  156. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/discrete_space.py +0 -0
  157. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/network.py +0 -0
  158. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/property_layer.py +0 -0
  159. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/cell_space/voronoi.py +0 -0
  160. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/continuous_space/__init__.py +0 -0
  161. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/continuous_space/continuous_space.py +0 -0
  162. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/continuous_space/continuous_space_agents.py +0 -0
  163. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/devs/__init__.py +0 -0
  164. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/devs/eventlist.py +0 -0
  165. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/devs/simulator.py +0 -0
  166. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/mesa_signals/__init__.py +0 -0
  167. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/mesa_signals/mesa_signal.py +0 -0
  168. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/mesa_signals/observable_collections.py +0 -0
  169. {mesa-3.1.3 → mesa-3.1.5}/mesa/experimental/mesa_signals/signals_util.py +0 -0
  170. {mesa-3.1.3 → mesa-3.1.5}/mesa/mesa_logging.py +0 -0
  171. {mesa-3.1.3 → mesa-3.1.5}/mesa/model.py +0 -0
  172. {mesa-3.1.3 → mesa-3.1.5}/mesa/space.py +0 -0
  173. {mesa-3.1.3 → mesa-3.1.5}/mesa/visualization/components/__init__.py +0 -0
  174. {mesa-3.1.3 → mesa-3.1.5}/mesa/visualization/components/matplotlib_components.py +0 -0
  175. {mesa-3.1.3 → mesa-3.1.5}/mesa/visualization/user_param.py +0 -0
  176. {mesa-3.1.3 → mesa-3.1.5}/mesa/visualization/utils.py +0 -0
  177. {mesa-3.1.3 → mesa-3.1.5}/mypy.ini +0 -0
  178. {mesa-3.1.3 → mesa-3.1.5}/tests/__init__.py +0 -0
  179. {mesa-3.1.3 → mesa-3.1.5}/tests/read_requirements.py +0 -0
  180. {mesa-3.1.3 → mesa-3.1.5}/tests/test_batch_run.py +0 -0
  181. {mesa-3.1.3 → mesa-3.1.5}/tests/test_components_matplotlib.py +0 -0
  182. {mesa-3.1.3 → mesa-3.1.5}/tests/test_continuous_space.py +0 -0
  183. {mesa-3.1.3 → mesa-3.1.5}/tests/test_devs.py +0 -0
  184. {mesa-3.1.3 → mesa-3.1.5}/tests/test_end_to_end_viz.sh +0 -0
  185. {mesa-3.1.3 → mesa-3.1.5}/tests/test_examples.py +0 -0
  186. {mesa-3.1.3 → mesa-3.1.5}/tests/test_grid.py +0 -0
  187. {mesa-3.1.3 → mesa-3.1.5}/tests/test_import_namespace.py +0 -0
  188. {mesa-3.1.3 → mesa-3.1.5}/tests/test_lifespan.py +0 -0
  189. {mesa-3.1.3 → mesa-3.1.5}/tests/test_mesa_logging.py +0 -0
  190. {mesa-3.1.3 → mesa-3.1.5}/tests/test_mesa_signals.py +0 -0
  191. {mesa-3.1.3 → mesa-3.1.5}/tests/test_model.py +0 -0
  192. {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.8.6
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.3.0
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
- ## Maintainers
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
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 (3.0.x), run:
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 --pre mesa[network,viz]
127
+ pip install -U mesa[network,viz]
125
128
 
126
129
  # This is equivalent to our recommended dependencies:
127
- pip install -U --pre mesa[rec]
130
+ pip install -U mesa[rec]
128
131
 
129
132
  # To install all, including developer, dependencies:
130
- pip install -U --pre mesa[all]
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 (3.0.x), run:
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 --pre mesa[network,viz]
40
+ pip install -U mesa[network,viz]
46
41
 
47
42
  # This is equivalent to our recommended dependencies:
48
- pip install -U --pre mesa[rec]
43
+ pip install -U mesa[rec]
49
44
 
50
45
  # To install all, including developer, dependencies:
51
- pip install -U --pre mesa[all]
46
+ pip install -U mesa[all]
52
47
  ```
53
48
 
54
49
  You can also use `pip` to install the latest GitHub version:
@@ -1,4 +1,4 @@
1
- name: example-environment
1
+ name: mesa-tutorials
2
2
  channels:
3
3
  - conda-forge
4
4
  dependencies:
@@ -11,4 +11,4 @@ dependencies:
11
11
  - matplotlib
12
12
  - seaborn
13
13
  - solara
14
- - mesa[rec]==3.0.0b1
14
+ - mesa[rec]
@@ -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 (3.0.x), run:
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://github.com/projectmesa/mesa-examples
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
+ ---