SETI @ home tech applied to Evolution: Evolution 1.0

I dont know which forum this should be but I think this will turn into a GD, especially about all the little points it includes. Moderators: Please move this to the appropriete forum, Thankz.

If anyone knows of anything software similar to this, please tell me and give me a link. Im not talking about Sim Earth which is just a rule based game, but an actual, full-fledged simulation, with extreem complexity, and much oppurtunity for emergence and variation.

I recently got involved with SETI at home, one of the first and the largest distributed networking systems.

Here is a quote from the site:

This intrigued me. I was recently involved in a GD about Evolution(my first OP and it was a total disaster :frowning: ) and I wondered if this could be applied to an evolution simulation. I estimate that a similar amount of power could simulate a fairly complex system at approximatly 10 million sim years/real year, at least until the system evolved more complexity. (but then again, I am only about 1/2 way to my Computer Science Degree so this could be WAY off)

At first lets start this off completely theoretically and debate the various merits of this type of system, what it should include, etc. Perhaps later we can begin the design(which may take place outside of SDMB). Merely designing the system is a very daunting task. If there is enough interest, I will create a website with its own message boards, etc. and hopefully (at least eventually) start this project. Right now this is all theoretical and a very, very, very daunting task.
My (very limited) qualifications.
1 year windows programming (C++ and C).
1 year software dev. management (Not a complete year, just various projects occassionally that I lead)
4 years Internet programming (HTML, JAVA, ASP, CGI, JavaScript, etc)
1 1/2 Years of Community College working on a Computer Science Degree
Some experience with 2d and 3d Graphics programming (OpenGL, DirectX sp. DirectDraw/Direct3D)
Some experience with AI (simple neural net, simple Fuzzy Logic)
Some Experience with AL (simple Evolutionary Algorithm)

Thats about it. I am very weak on the mathematics part of programming (I had to copy the math from books for the advance programming I did w/o really understanding it), and I am very weak on physics and chemistry.
First steps:

  1. Outline basic (software) system reqs such as user interface, etc.
  2. Make various decisions about the simulation.
  3. Discuss how different parts may be constructed.
  4. Begin top down design. (outside of SDMB???)

I will post my thoughts on these issues in a little while. Lets tackle this one item at a time, starting at #1.

Final Note: I did not decide to do this to prove/disprove evolution, only because I think it would be ‘neato’ and ive never heard of anything similar to what I want to do.(you’ll see this better when I list the basic system reqs Ive come up with) Anyone is invited to participate- Athiest, Fundie, Pro/Anti Evolvo, etc. Please do not let this turn into a debate about evolution or religion, just accept Evolution as Fact for the sake of argument.

-Fox

First a side note. A project this immense requires help from experts(at least sub-experts) from almost every field, Pysics, Chemistry, Computer Science, Geology, paleo-Geology(is that what its called), palentology(sp?), etc. Fortunatly the net provides us with (hopefully) sufficient resources.

Let me outline some basic system reqs, which will always be open for change/expansion. (in no particular order)

[ul]
[li]I would like to strive to follow a top down design technique. (for the design of the system)[/li][li]It should distribute as much as the processing to the home users as possible.[/li][li]The system should be easily expandable/changable.[/li][li]Have a sufficiently detailed and complex simulation that it provides more accurate results and provides the opportunity for more variation and emergence(see next).[/li][li]Have a decent physics/chemistry engine.[/li][li]Record Documentation of the sim’s evolutionary process, every step of the way if possible, or at least ‘important occurances’.[/li][li]Allow the home user to view the progress of their own section in a graphical format, and allow some control of the viewing ie zoom in/out etc.[/li][li]Allow the home user to view other sections at their leisure.[/li][li]Allow the user to DL a ‘cross section of time’ in which they can ‘play god’, zoom in/out, change the speed of time, etc. This interaction will be strictly for the home user and not change/effect the rest of the sim.[/li][li]Have a really good sim year/real year ratio.[/li][li]Perhaps(a big perhaps because it would effect the ‘accuracy’ of the data) allow the system to evolve the chem engine as the ‘creatures’ evolve.[/li][li]Expand this list for a very good, scientific, enjoyable experience/experment.[/li][li]Be as ‘realistic’ as possible based on what we know about Life, The Universe, and Everything right now.[/li][/ul]

Please send in any suggestions you have of reqs. Also feel free to ask for clarifications. Please avoid the ‘thats impossible’ syndrome and avoid ‘but how’ questions for now.

Thanx

-Fox

Several computer programs have been written to simulate evolution. I remember one simulation a while ago which showed that a fish eye could evolve from a single light sensitive cell in only 400,000 years. But a program to model the entire history of evolution? Too tough. There are too many things now that we don’t know which would be necessary for such a model. Perhaps once we map and decode the genome of every single organism…

Sure its tough, big deal.

Theoretically, if we model Chemistry/physics well enough (or at least a good abstraction thereof) it should be emergent enough to allow evolution even though we dont understand it. Besides, like I said, this is a theoretical debate.

For example (I just love giving examples :slight_smile: ) we could set up an approximation of pre-cambrian earth (or an earlier epoch), or a small section of it, and wait for some type of life to arise. The genesis of life may prove to take way too long, even at a high sim time/real time ratio. Like wise we could simulate ‘pangeosperm(sp)’ and seed it with the known DNA of a (very simple) bacteria, most likely a cyanobacteria(sp?). Right now this is moot, this is further down the road then where we are now.

-Fox

I guess what I was trying to say in my last post was that there are ways around the unknowing fully part. Abstraction and LOD play a very important role. You’ll understand what I mean further when we get to the ‘things to decide’ part. (among one of them, LOD)

For example (yippie! :slight_smile: ) we could simulate on a genetic level. we create genes that do different things in our specific enviroment. This is limiting but we can increase the potential a couple of ways such as by allowing new genes to evolve or adding new genes. This part of the discussion is much further down the road.

-Fox

Any project first needs clear objectives. What are yours? As specific as possible–it really sucks to be sidetracked by unclear goals.

So, what do you want to accomplish? You want to model the whole of evolution? Just portions? Do you want to create some sort of Frankenstein neural net? Do you want to create a machine consciousness?

A very good question, Im surprised I didnt think of it…

Thats some of what this part of the ‘project’ is about. What can we do? (what is actually possible given a sufficient amount of resources including experts in the neccessary fields) I think my last 2 points a couple posts back sum it up relativly good, but need some expansion/clarification.

Lets make a mission statement of this.

To create a realistic, scientific, enjoyable Simulation of Evolution and Life which may be similar to the early history of life on earth.

Right now Im trying not to limit the scope of the mission until more factors have been decided on.

Ok people now we need to expand and clarify this some more. Any suggestions?

On a side note I guess I want to make a system in which we can see a simulation of evolution as ‘realistic’ as possible. I would like to see single cells evolve into multicelular organisms, and diversify and continue to evolve. I would especially like to see relativly high intelligence (not neccessarily consciousness) evolve.

As for the ‘Frankenstein’ syndrome, this is almost impossible because the evolution will only be within the artificial enviroment of The System.

As for the model of the whole of evolution, the Chaos Theory dictates that even with perfect knowledge of the starting variables and the laws that govern them, it would be nearly impossible to model past(or future) events perfectly or even with a high level of aquracy. The key word here is simulation. It is evolution I would like to simulate, not history. Who knows if this System is ever created, a plant based, intelligient organism could develop…

-Fox

There is currently a distributed computing initiative out there … can’t recall the name, but it’s associated with Brandeis University - if I find the website again, I’ll postit here … which is trying to evolve an efficient crawling machine.

I had the download for a few weeks and it worked something (from a loose recollection) like this - you generate a couple hundred random “crawlers” who pretty much just sit there, although a few get lucky and can move. Every once in a while, the ones that move get to meet and do the funky monkey on each other - resulting in a modified crawler. Additionally, every few days, the program connects to another user and swaps one of your crawlers for one of theirs, injecting more variation into the population. In the few weeks I ran mine, it came up with some odd looking, but somewhat effective crawlers…

PBS’ Scientific American series had an episode about it too - the computer plans are then fed to a manufacturing computer that carves the pieces of out plastic - the engineers then attach the motors where they should go according to the model, and ta-da, it’s done. (The interesting facet of that was that it was a machine designing and building another machine with little human interaction - Terminator here we come!)

Oh,here’s the link:

http://golem03.cs-i.brandeis.edu/download.html

Thank you. I saw the show and read the site. I didnt dl the prog though. Very interesting stuff.

Some of those techniques could be applied to this ‘project’ but thats much further down the road…

As for the ‘terminator’ syndrome, something like that crawler project would be very safe, it pretty much runs in a natural ‘sandbox’, because theres no way provided for the AI to interact with the outside world, or even develop high intelligence.

Along that line though, I found a site about a meat eating robot (it processes meat in a catylitic based generator for energy). Thats a very terrifying thought, no? It could have some interesting applications such as a Grass eating robot…

Anyway, thanks for the link.

-Fox

I came up with a couple more reqs.

[ul]
[li]There should be ‘Evolutionary Bottlenecks’ in the System (see the next items)[/li][li]The ‘climate’ should slowly change over ‘time’ either real, RND, or physics based, It should also have sudden changes as well.[/li][li]There should be local and global disasters. Once again these should be real, RND, or physics based[/li][li]Mass extinctions. (caused by the previous 2?)[/li][/ul]

Any suggestions?

-Fox

Ok, I’m certainly no expert on this subject, but have an ongoing interest in evolutionary processes. If what one wants to do here is demonstrate the viability of natural selection, this has already been done through abstract computer models as described in some of the other posts. If one wants to “prove” the principle of natural selection by simulating the interactions of the actual materials that make up living organisms, why not do oneself a favor and keep it as simple as possible to start?

It seems that plenty of useful information could be obtained just by modeling the states that, in theory, get us from amino acids to a molecule capable of self-replication, like RNA. Now, I wouldn’t know what specific rules would be required for this, but as one would start with a relatively small number of elements in a limited number of configurations, it seems that a proof of the concept could be obtained in a “reasonable” number of iterations on a distributed system. Glad I wouldn’t be programming it, though.

Assuming a viable analogue to RNA could be turned up via the model, one could then move on to more complex structures.

Am I way off base here?

Hi, I just read this thread. Information about an ongoing distributed computing project concerning digital evolution, called Network Tierra, can be found at the Network Tierra FAQ.

Hope this helps.

Bill

Foxfyre: sometimes, for compex problems, modeling is impossible. That is, it would be many orders of magnitude easier to create the actual thing rather than model it.

For instance, it would be possible to model every neuron in a human brain and every connection between them and therefore get a simulated model of that person’s thoughts. But, the physical brain will operate thousands of times faster than the model, even though the computer can calculate millions of times faster than the model.

I see this as likely with your project.

The SDMB has its own Seti group! Check in this thread.

Another program, similar to Seti at home, is Folding at home. I think you will find this to be close to your goal.

I had this program once, SimLife, simulated mutation and evolution of life. Must not have been very accurate, 99% of the time my world’s ecosystem would end up consisting of 99% asexual omnivores, 1% intelligent large flying predators (I always named them dragons as soon as they inevitably showed up), and about 4 species of shrub.

Thanks for the links, etc Ill look into them asap.

Here’s some things that need to be decided on, and yes Rocket88, you are right on the money.
A few things that must be decided.

  1. The LOD(level of detail) of the simulation. By this I mean ‘How low level should the sim be?’.
  2. The Aspects of the Miniverse. Size, shape, complexity, behavior, LOD, starting circumstances etc.
  3. The Aspects of the Creatures. Same as #2.

Number 1. There are a few ways to go with this. The pysics sim should be relativly easy to decide on, games have been using good physics engines for years. I anticipate the chem engine to be the hardest, most complex part.

2 main ways, Real World Based and Created Based. They are basiclly the same accept for created we create our own unique “elements” (or genes depending on LOD). Each level should be designed so all the levels above it may operate correctly, mainly through emergent behavior. Also, other factors will effect this decision such as #2 and #3 above.

A) Sub-Atomic Level. The hardest and most complex to implement, especially because chemistry is not fully known. This system would be more ‘emergent’ then some of the other systems and therefore have less neccessary ‘rules’, as well as allow more variation (almost infinite). Ie: {A}a (Atom a) comes in contact with {A}b and interact based on electron swapping/sharing/chemical laws etc. This way all levels above it can be implemented in an emergent fashion.

B) Atomic Level. Easier but possibly more time consuming. This system would be less transendent and hamper the variation a lot (variation will be in relation to number of rules). Ie: {A}a comes in contact with {A}b and reacts based on the rules a + b = c.

C) Molecular Level. Easier, more time consuming, less variation possible. Same as B) but based on molecular interaction not atomic.

D) Micro Level. Easier, more time consuming, less variation possible. Same as B) but based on protein/lipid/enzyme/etc reaction.

E) Sub Celular Level. Easier, not too time consuming, less variation possible. Same as B) but based on Sub Celular structures such as ERs, nucleous (genes, etc), plastids, etc.

F) Celular Level. Easier, not too time consuming, much less variation possible. Same as B) but based on various types of cels (this is the way most ALife programs are based)

G) Macro Celular Level. Im sure you’re getting the picture by now.

H) Abstract Level. An abstraction of various levels above designed especially for emergent behavior.
Number 2:
A) Will it be 2d or 3d.
B) Will it be dynamic or stable. (Ie lakes, mountains, streams, etc will stay the same or will it change based on What We Know Really Happened or physics, erosion etc)
C) Will it be an entire planet or just a small section such as a lake/ocean/valley etc.
D) Will it start with a Pre-Cambrian type enviro, Unique enviro, Random enviro, etc.
The rest are pretty much self explanatory.

-Fox

Ive heard of SimLife and played it briefly a long time ago. You’re right it was very inaqurate. This is most likly because they relied more on hard-coded software elements than emergent software els. (If anyone doesnt understand what I mean by this, ask and ill explain)

Anyway, I think Ive come up with an estimate about how long this system will take to make. For an extreemly high LOD (very ‘real’) it would take a team at MIT of 10-20 experts of every field around 2-5 years to get a decently perfected system. What I mean by this is the development of the system is pretty much moot, right now just the design is relevant. (although with a good level of Abstraction, and a good team of 30 or so ‘sub-experts’ over the internet I think this can be programmed in around a year or 2)

-Fox

(First some background: I have a masters in computer science and I work as a computer game design so I do have a fair amount of experience designing and building distributed simulations.)

What you’re describing is way, way beyond the current computing capacity you could reasonably assemble. In fact, it’s almost certainly beyond the current computing capacity of all the world’s computing systems combined. I suspect that it may be a fundamentally intractable problem that is not solvable by any computer, no matter how powerful.

An example – right now lots of research money is going into building supercomputers that calculate how protein molecules fold up. This is very important because a protein’s chemical behavior is determined more by how its folded than by what atoms it’s made from. When you realize that researchers are spending months of supercomputer time to calculate the behavior of one small protein you can begin to imagine how monumental a project you are proposing.

It’s certainly possible to build small virtual ecosystems that exhibit evolutionary behavior. Jeff Ventrella has some cool stuff at http://www.ventrella.com/Alife/alife.html. But all that is currently within our grasp are toy ecosystems – ones that demonstrate principles rather than model reality.

(BTW, understanding the full difficulty of modelling evolution is one way to better understand why events that at first glance seem to be vanishingly improbable can actually become inevitable given enough time and matter.)

Well, then the LOD will have to be scaled back/abstracted a bit. What I really want is a very expandable system that simulates evolution more realistically than anything out there so far.

Also, why wouldn’t a system that models/simulates elemental reactions (Carbon and Hydrogen atoms, etc) also simulate protein folding from the emergent behaviour from that type of system?(Im probably mis-using this term but I think its pretty close to correct)
-Fox

I think you’re drastically underestimating how much you’ll need to scale back your level-of-detail. At some point the model will become so simplistic that it will cease to be a meaningful simulation of the real world. I suspect that you’ll reach that point long before you have something that’s computationally tractable.

Theoretically, yes, but in practice the calculations involved quickly become enormous. If you haven’t encountered it yet in one of your computer science courses you might want to read up on “big-O” notation. It’s a technique for putting difficulty bounds on different classes of computational problems. The problem with protein folding is that in order to precisely calculate the fold you need to track the interaction of every atom with every other atom in the protein and surrounding liquid. That means the complexity of the problem grows as the square of the number of atoms (O(n^2) in “big-O” notation).

For one protein with several hundred atoms this can take months of supercomputer time.