Lee Graham    
PhD Candidate    
School of Computer Science    
Carleton University    

Name:
  Lee Graham

Location:
  Ottawa,
  Ontario,
  Canada

Interests
  Artificial
  Intelligence,
  Evolutionary
  Computation,
  Artifical Life,
  Evolution,
  Skepticism,
  Atheism


Homepage
Site Map

Download


I'm happy to share a copy of my software with anyone who wants it. I only ask (though I do not enforce) that we do a trade: a copy of the software in exchange for some CPU time donated to my project. The amount of donated CPU time is completely up to you. I'll take whatever I can get :). Instead of posting a link to the download URL, I ask that anyone interested simply contact me by email at the following address, and I will send a link to where the software can be downloaded:




I recently created this application, meager though it is. It uses simulated evolution to evolve a population of virtual creatures. I need to run lots of experiments with this program and collect lots of data for a project I'm working on, but the program is way too slow for me to do this on my own. If you'd be willing to donate a week's worth of overnight CPU time (or more - I'll take as much CPU time as you're willing to dish out!) in exchange for a copy of my program then we have a deal.


The program combines a genetic algorithm (GA) with a physics engine and a 3D graphics engine. The evolution process works as follows:

  1. A population of random genomes is created.
  2. Each genome translates into a virtual creature.
  3. Each creature is allowed to move about in the virtual world for a fixed amount of time, and is assigned a "fitness" value that reflects its ability to perform some simple task - the distance it travels, for example.
  4. A new population of genomes is generated by mutation and crossover (combining the genomes of two creatures to create a hybrid genome). Creatures that perform better than others have a greater chance of being chosen as "parents" for mutation and crossover.
  5. The program returns to step 2) and keeps looping. The performance of the best individual in each new population (called a "generation") tends to increase over time.

As the user, you have the ability to configure many aspects of this evolution, including the size of the population, the probabilities for mutation and crossover, various parameters that govern restrictions on creature bodies... etc. You also have some flexibility in specifying the "fitness" measure that will be applied to your population of creatures.

Should you happen to evolve any interesting creatures, the program has the ability to record a series of PNG image files that can be combined via the right software (like "Bink and Smacker", for example) into a video of your evolved creature in action.

This program also contains a number of little features that have nothing to do with the evolution side of things. You can spawn various solid blocks and spheres. Pick them up, throw them, push them, blast them with grenades, put them under water, turn gravity on or off, and so on - a kind of primitive physics playground. Many of the graphical aspects can be turned on or off as well, such as fog, ambient light levels, shadows, etc. These features were original created while I was learning how to make use of the physics and graphics engines for the project, but I've left them in. For my fellow Doctor Who fans, there's also a virtual TARDIS, complete with dimensional transcendence and de/materialization.


Easy. Just send me an email to let me know you're interested (creatures AT stellaralchemy DOT com). Give me some idea of how much CPU time you'd be willing to donate, and I'll reply with a link where you can download both a copy of the program and a file containing an experiment that you can run for me. Launching the experiment is very simple and it will automatically continue where it left off if it is run again later. That way, you don't have to donate CPU time to me all in one continuous period of time - you can spread it out, running it only at night, for example. The data to send back to me is in the form of a simple text file to send me by email. I might eventually give the program the ability to send me the data automatically over the net but for now that process is done manually, but don't worry, it's very simple.

Note: I really have no way to enforce this deal I'm proposing. I'm just going to rely on the honor system. If you get a copy of the program without donating any CPU time to my experiments the only penalty will be the shame and guilt that will haunt you endlessly, eventually driving you mad.


Unfortunately, yes. I'm sorry about that :(


Yes. Have a look at The Zoo and the Misc Videos pages. As a user, you can also contribute to the videos by sending me any interesting creatures you've evolved. I'll be happy to record videos and put your creatures in the zoo.


Very slowly. This is why I'm fishing for donated CPU time in the first place. This is not the kind of program where you sit down and watch something evolve over a cup of coffee. It's a little more like watching paint dry, or watching grass grow. Watching a flower grow might be a better analogy since you end up with something pretty in the end. You can probably evolve something fairly interesting within a week if you let the program run during the night. Now, I say that based on intuition from using my own personal computer. It has a somewhat old video card (NVIDIA GeForce FX 5600XT) and a 2 GHz processor. If you have a more powerful machine and a more powerful video card you'll see better performance.


Let's get this ugliness out of the way. I cannot take responsibility for any harm to your system that may arise from the use of my virtual creature evolution program. Nor can I guarantee that it will run at all on your machine. Now, I don't expect there to be any trouble, it's not malicious software and it doesn't do anything even potentially harmful to your system - but I have to provide it with this use-at-own-risk caveat to cover my own butt. I hope you understand.

Also, this is not a professionally-produced piece of software. It's not quite as slick and fancy as the sort of thing you can buy at your local computer store. I did what I could and the final product could certainly use some polishing, but I haven't the time. It should be fairly straight-forward to use, but if not I'm only an email away and I'll try to help you as best I can if you have questions.


Absolutely. Suggest away. If I make the requested modification it might not be for a long time as I don't intend to do more programming on this system for a while. I'm happy to take your ideas, though.


You can't. At least not yet. I have no intention of releasing the code just yet. On the other hand, if you're a C++ programmer who is very familiar with the OPAL physics library and the OGRE graphics library and you think you can improve some serious deficiencies in the program (it's quite possible - I'm just winging it with all this physics/graphics programming - I'm no expert) then I might consider it (the underwater physics for creatures, for example, is essentially unworkable).


I will post videos showing how various parts of the program work. These will be available in two places:

  1. the facebook group:
    http://www.facebook.com/group.php?gid=5956998006
  2. on my youtube channel:
    http://www.youtube.com/kjlg74

Any takers? Contact me.


[return to main page]

This layout is copyrighted by SenkouRyu, don't edit the copyright info anywhere!
Be sure to check http://www.senkouryu.net for more layouts like this or even better ones!