-
Notifications
You must be signed in to change notification settings - Fork 162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Updated mesa project #218
base: main
Are you sure you want to change the base?
Updated mesa project #218
Conversation
for more information, see https://pre-commit.ci
Thanks for opening a PR! Could you translate the Ukrainian part to English? I’m not sure if I want to alter the classic Game of Life rules themselves, but the “noise” concept could be interesting. |
Thanks for translating! The PR is appreciated. However, currently it changes too much unnecessarily. I'm also not fully convinced of changing such a classic, well defined model, like Conway's Game of Life. The concept of noise/mutations is interesting though. I think you can go two ways with this:
These are interesting concepts. Only maybe is this not the model to apply it on. @projectmesa/maintainers would appreciate some other opinions, especially on in which models this might be useful (if at all). @MariiaMelnychenko I would love to hear the background what you're using Mesa for, as part of which project/course/interest. Might help us help you better :) |
As they are parameters, I think we should allow it. This can allow folks to explore the model and it underlying concepts more. So I would say it defaults to the Conways classical model, but now has sliders/paramters to allow users to explore different variants. |
You can always fork the classic model into a separate, adjacent model in another folder. Adding variations to the classic model will strain bandwidth of the learner who is trying to understand the essence of the model. In short, I think it's better to create a separate model, named "conways_game_of_life_advanced", where any variations and extensions can be added. |
Since I have been going through all the examples for the grid spaces, I feel that we have too many examples and variants of essentially the same model. I recall a discussion on this before, but my idea would be to have a carefully curated set of famous examples in the main mesa repo (i.e., wolf-sheep, Schelling, Epstein civil violence, sugarscape, Axelrod evolution of collaboration, el farol, forest fire, Conway game of life, and virus on a network), and have a not actively maintained gallery for show and tell. We could do a template for the gallery that includes an environment file to enhance future reproducibility. The curated examples would be used for integration testing and be kept in sync with the main branch at all times. |
Conceptually - there is the possibility of an infinite number of models that can be created off of one model. |
A randomize_new_cells parameter has been added to the code, which allows the user to manually adjust the probability of randomly spawning new cells at each simulation step. This option can be adjusted through the user interface using a slider. This allows you to control the dynamics of the model and experiment with the frequency of the appearance of new cells during the simulation.
A new logic was also added to the game rules: if a cell has more than 4 living neighbors, it "dies" from overpopulation. This adds more realistic behavior to the game, because cells can die due to oversaturation of living neighbors. Cells with 2 or 3 neighbors remain alive, and dead cells with exactly 3 neighbors come to life.