/*Edit: Now once the lines reach the end of the graph, the the population count will continue to work and the graph will shift to show the new data.*/
Intro: I started working on this simulation a few days ago and I'm pretty excited about it. I'm looking for feedback so if you have anything to say about it, please share!
Goal: I think that evolution and natural selection are simple yet powerful concepts that are often misunderstood. The idea for the project is to make a clear and engaging simulation that shows the principles of natural selection in action.
For now, I just want to get this thing out on the web for feedback, so I'm not going to go into a big explanation about it. Here's the basics:
Evolution by natural selection:
Evolution is defined by a change in gene frequency over time. In the blue field in the simulation lives one circular, gray colored animal. The animal has a 6 character, hexidecimal code (e.g. 00FF00) that determines its color. The color code represents the genetic code that determines the structure of organisms.
Evolution happens because of the following four reasons:
1. Individuals vary. The animals in my simulation reproduce asexually, i.e. they clone themselves. But every once in a while a mutation occurs: one of the 6 characters is altered and the cloned critter is a different color from its parent. The different colors represent the genetic variation given in any animal population.
2. Some of that variation is heritable. The critters keep their color and pass it on to their offspring. The critters with mutations will then clone themselves, along with their mutations.
3. Not all of the individuals who are born will survive. Some will die and leave less offspring in the next generation. At the beginning of the simulation, the critters will grow at an exponential rate. But eventually they will start facing more challenges in their environment. Some will not survive these challenges. (Those will say: "challenge failed" and die).
4. Survival and reproduction are not totally random. Individuals with genes that give them advantages in their environment will leave more children than those without those advantages. Those are the genes that will be selected for. The frequency of advantageous genes will increase. That's evolution.
In the simulation, the environment can be either red, green or blue. By default, it's blue. In this simulation, the closer a critter is to the background color, the more likely they are to survive being "challenged" Eventually, less advantageous colors die out. By the time you finish reading this (if you loaded the simulation but didn't change any settings), you may notice that the percentage of blue critters is on the rise. (If not, keep it open, check on it in a few minutes). Eventually the population will change to be mostly blue.
That's it! I'm geeking out, but does anyone else think that's cool?
Please Please Please let me know what you think!
Also, you can play with the buttons. You can add more of the critters by clicking the little buttons on the bottom left. You can change the 'environment' by clicking the colored squares. And please click the 'Toggle Population Graph' button. That shows you a graph of the population size, including the number of individuals whose color code is very close to the extremes of either red, green or blue.
(blog post here