A fascinating simulation of evolution
http://www.cambrianexplosion.com/
This is one of the coolest things I’ve seen on the internet recently. Anyone who is familiar with R. Dawkins’ “Weasel”, Greg Egan’s work like “Crystal Nights” etc and the simulation argument might find it fascinating.
Addiction Warning: I’ve spent 8 hours playing with this in the last 2 days…
Hey, I made this! I have not heard of the things you’ve mentioned but I’ll definitely check them out. I’m glad you are messing with the creatures :)
I really like the sim, thanks for developing it. Are you planning to keep working on it?
I would love to see an explanation of the workings of the sim, maybe on your “About” page. What does the “Seed DNA” box do?
Also… any way of speeding it up? (I left my computer running overnight to see the effect of hundreds of generations, but maybe it just can be done faster?)
Thanks! I had abandoned it, but now I am fired up and am planning to keep working on it.
I intend to put up a FAQ over the weekend that will explain everything. I know right now there’s all these settings and some buttons don’t work so you can see it was left unfinished.
I’m looking into using Web Workers to speed it up, but another thing you can do in the meantime especially if you plan on leaving it to come back to is set the render to “None”. This makes it runs the entire population simultaneously so it goes through the generations at a much faster clip. I’ve gone up to thousands of generations after leaving it over night.
I’m curious as to how the simulation decides when to ‘kill’ a non-performing creature. I’ve seen a few creatures disappear that seemed to just be at a slow point of their gait, getting a limb into position or whatever, where I would have expected them to keep moving forward given another second or two.
They have to reach a certain distance in a certain time (physics steps) or they die. If you adjust the “Steps per creature”, the first number represents the “check points” the creatures have to reach. The second number represents the total time the creatures have.
This is pretty weird. I changed the second number in ‘steps per creature’ to the maximum of 2,000 starting with generation 25 of my in-progress species of facecrawling quadrupeds. My ‘fittest’ score, which had been slowly growing, jumped some 200 points in that generation and has been fairly stable since (previous high of 484 in gen. 22, hovering around 700 now, I’m running generation 33 at the moment). Meanwhile, my average fitness fell from 347 in generation 25 (not a surprising number given how it’d been trending) to 254 in generation 26, recovered to 302 in generation 28, then fell again and has been in the 200-225 range since then.
… Generation 33 just came in. Max 393, average 166. Buh?
Edit: I think what happened is that the species transitioned to a new gait; some of my creatures are using their forelimbs differently now, and the numbers for generation 34 were 653 and 317. This still doesn’t make very much sense, though, unless I’m misunderstanding what that variable does.
Yeah, I think changing that setting buggers the selection mechanism somehow. Half the time, a generation with no good creatures in it is followed by a generation where the average is almost as good as its parents’ best!
My worms at 100 gravity became awesome acrobats.
My quadrupeds seems to be evolving a pretty effective gait, now that I gave them longer starting limbs and lowered grav to 300.
This is great.
Quadrupeds at gravity 30 turn out to be some pretty interesting leapers. I think I’m going to do worms at 15 next—worms at 10 don’t even touch the ground unless they reach for it, which seems to tend to send them flying backwards for some reason.
Dammit, I were just about to tell everyone here about the epicness of low gravity worms! you stole my idea before i discovered it! :p
Publish or perish. ;)
… you realize this means someone has to write a simulation where acrobatic worms evolve to write academic papers now, right?
Breve is a more comprehensive simulation, though it doesn’t run in the browser. (hat tip Steve Rayhawk)
I don’t know how to get Breve to evolve stuff, but Michael Goodfellow has a great simulation of evolution that attempts to evolve a computer program (a finite-state machine with 40 states) capable of following a trail of food. Its input is whether or not there is food in front of it, and its output is whether to turn left, turn right, move forward, or do nothing. I’ve already evolved creatures suitable for two types of trail (the one the applet uses by default, and one where each line of food is followed by a second line whose length indicates which way to turn). They sometimes stumble upon the optimal solution, but figuring out how to get them to do that can be an interesting challenge.
One-population single-parameter evolution seems to produce convergence, not explosion...
You are correct. The name is just to tie into one of the more exciting moments in the evolution of animals. I am thinking of expanding on the project to have multiple environments which will allow for modeling speciation.
It appears that sufficiently high levels of gravity will cause most organisms to fall through the ground, and cause quadrupeds to turn into worms over a sufficient time frame (have not tested this with the other body types yet.)
I’m trying to use it, but for some reason it’s not loading properly. The game seems to have frozen.
Tried with population size 18, it always breaks down with creature 16 in generation 1 (the creature doesn’t appear and simulation runs endlessly).
This is a bug. At this point, populations only work if they are multiples (1 / successful parents cutoff) so by default, 20. If you want less, you can go with 16.
Heh. Tried it out and found that the graphics kinda grossed me out. Reminded me of tapeworms...eww.
I have a suggestion, as I myself was getting grossed out, especially if you increase the thickness of the worms. Set the render to “Wire” and see what you think :)
Try the different body types—there are four to choose from. Quadripeds very interesting, you can see the various distinct evolutionary branchings like “gazelle”, “rabbit”, “kangaroo” and “velociraptor” if you run the sim enough times.
I currently have a species of facecrawling quadrupeds. The front legs have atrophied.
Because the one that got the furthest originally fell on its face and inched forward a bit. They move a bit like the worms.
Unfortunately, the quadrupeds are a bit lacking. They were the last thing I worked on before I gave up and I left them completely unbalanced in the version up there now. I have a local version where they have more joints so they resemble an actual quadruped, but it turns out, evolving a nice horse trot is not so easy :)
For quadrupeds in the current version, it is a good idea to reduce gravity.
Also, you can make the “segment length” longer and that will make for longer legs which helps.
This simulation has taught me that men can evolve from horses, given a sufficiently high mutation coefficient.
Edit: Oh goodness! The current dominant life form in my high gravity world is a species of horses with vestigial heads, who somersault onto their backs, and stretch out their legs as far as they can. It reminds me of the robot AI that climbed stacked boxes as the most efficient way to jump.
I’ve ended up with a species whose back legs have atrophied, and they bound forward with their front legs while nearly executing a front flip and end up landing on their heads.