- #1
DaveC426913
Gold Member
- 23,145
- 6,822
- TL;DR Summary
- Natural Selection Simulator like Conways' Game of Life - but much more complex.
I'm considering making a Natural Selection Simulator (possibly in Java).
I've always been fascinated with the idea that so many traits can evolve independently of each other in the same population (even little things like tufted ears and loss of tail, etc.) and I want to see it in action.
Like Conway's Game of Life, writ large.
I know there are sims for selection of just a few given traits (like the AI that evolved blocks to "walk") - I'd like to see a sim where the environment is a determining factor.
Not sure if there are such sims.
Mine would be as abstracted as possible.
Here is what I'm thinking:
I'd like to watch the time pass and see if the population's traits change over time and eventually stabilize at a new equilibrium.
I think this is doable by starting small, with limited landscape and critter properties, and increasing them as I test the limit of my processor.
To be clear, I'm not interested in a "nature simulator" - I have no need for it to be anything except completely abstract.
Has anyone ever heard of such a sim? If not, I may start developing this further and bugging you guys for ideas on how to refine the algorithms.
I've always been fascinated with the idea that so many traits can evolve independently of each other in the same population (even little things like tufted ears and loss of tail, etc.) and I want to see it in action.
Like Conway's Game of Life, writ large.
I know there are sims for selection of just a few given traits (like the AI that evolved blocks to "walk") - I'd like to see a sim where the environment is a determining factor.
Not sure if there are such sims.
Mine would be as abstracted as possible.
Here is what I'm thinking:
- a landscape of, say, 10^3 or 10^4 cells (or undefined would be even better, just grow the landscape as-needs)
- each cell would be seeded with, say 100 landscape properties, simply labeled 0-99. A property simply has a value that varies within a range. The values in nearby cells would be similar, to represent gradual shifts across the scape.
- critters (say, 10^3) are likewise just an array of objects, each with, say, 10^2 critter properties, these would vary only a little, representing a single species with variations
- the critter properties are interdependent so, using some algorithm, property 1 and 16 might be closely linked - one changes, so does the other, and they change based on the landscape's properties.
- Both landscape and critter will have algorithms that control them:
- Critter 207 moves to landscape 403, and landscape 403's property 123 drops by one for each time iteration 207 is there ("food"ish).
- If 403's property 123 drops to near zero, then 207 moves on ("depleted"ish).
- If 207's property 00 drops to near zero it dies ("starvation"ish).
- But if it reaches, say 80/100 then it spawns copies of itself ("food a-plenty"-ish).
- Critter properties and landscape properties can vaguely represent real-world conditions, but not intended to mimic them accurately. Essentially just abstract drivers. eg. :
- a widespread landscape property set to 90 might be akin to a mountain range or body of water that the critters won't occupy - giving rise to geographical isolation of populations
- another one might represent food-like resources, the critter's "health"ish and "breeding comfort"ish properties might rise.)
- I could add algorithms at-whim. If a "hunger" property gets too low, it might boost the "adventurous" property, causing it to encroach more on "mountain"ish cells and "water"ish cells. The permutations are limitless.
I'd like to watch the time pass and see if the population's traits change over time and eventually stabilize at a new equilibrium.
I think this is doable by starting small, with limited landscape and critter properties, and increasing them as I test the limit of my processor.
To be clear, I'm not interested in a "nature simulator" - I have no need for it to be anything except completely abstract.
Has anyone ever heard of such a sim? If not, I may start developing this further and bugging you guys for ideas on how to refine the algorithms.