A fascinating simulation of evolution
post by D_Alex · 2011-09-30T01:49:46.678Z · LW · GW · Legacy · 29 commentsContents
29 comments
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...
29 comments
Comments sorted by top scores.
comment by dbilenkin · 2011-09-30T04:20:20.123Z · LW(p) · GW(p)
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 :)
Replies from: D_Alex↑ comment by D_Alex · 2011-09-30T05:06:09.194Z · LW(p) · GW(p)
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?)
Replies from: dbilenkin↑ comment by dbilenkin · 2011-09-30T14:24:58.940Z · LW(p) · GW(p)
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.
comment by AdeleneDawner · 2011-10-01T03:59:17.282Z · LW(p) · GW(p)
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.
Replies from: dbilenkin↑ comment by dbilenkin · 2011-10-01T19:43:49.721Z · LW(p) · GW(p)
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.
Replies from: AdeleneDawner↑ comment by AdeleneDawner · 2011-10-02T00:13:24.508Z · LW(p) · GW(p)
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.
Replies from: AdeleneDawner↑ comment by AdeleneDawner · 2011-10-02T03:51:10.041Z · LW(p) · GW(p)
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!
comment by MarkusRamikin · 2011-10-03T12:34:26.361Z · LW(p) · GW(p)
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.
Replies from: AdeleneDawner, Armok_GoB↑ comment by AdeleneDawner · 2011-10-04T06:15:19.550Z · LW(p) · GW(p)
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.
↑ comment by Armok_GoB · 2011-10-04T18:18:18.558Z · LW(p) · GW(p)
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
Replies from: MarkusRamikin↑ comment by MarkusRamikin · 2011-10-04T18:19:38.325Z · LW(p) · GW(p)
Publish or perish. ;)
Replies from: Armok_GoBcomment by lukeprog · 2011-09-30T16:32:56.591Z · LW(p) · GW(p)
Breve is a more comprehensive simulation, though it doesn't run in the browser. (hat tip Steve Rayhawk)
Replies from: None↑ comment by [deleted] · 2011-10-03T17:46:36.731Z · LW(p) · GW(p)
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.
comment by vi21maobk9vp · 2011-09-30T06:45:41.176Z · LW(p) · GW(p)
One-population single-parameter evolution seems to produce convergence, not explosion...
Replies from: dbilenkincomment by Carinthium · 2011-10-01T04:28:56.108Z · LW(p) · GW(p)
I'm trying to use it, but for some reason it's not loading properly. The game seems to have frozen.
comment by Dorikka · 2011-09-30T03:13:18.254Z · LW(p) · GW(p)
Heh. Tried it out and found that the graphics kinda grossed me out. Reminded me of tapeworms...eww.
Replies from: dbilenkin, D_Alex↑ comment by D_Alex · 2011-09-30T03:24:20.022Z · LW(p) · GW(p)
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.
Replies from: atucker↑ comment by atucker · 2011-09-30T14:09:26.383Z · LW(p) · GW(p)
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.
Replies from: dbilenkin, Xachariah, Desrtopa↑ comment by dbilenkin · 2011-09-30T14:20:36.891Z · LW(p) · GW(p)
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 :)
Replies from: vi21maobk9vp↑ comment by vi21maobk9vp · 2011-09-30T18:17:11.094Z · LW(p) · GW(p)
For quadrupeds in the current version, it is a good idea to reduce gravity.
Replies from: dbilenkin↑ comment by Xachariah · 2011-10-01T01:09:28.301Z · LW(p) · GW(p)
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.