To give you an ad-free browsing experience, this website is completely funded by donations. If you use the information in this article to solve a problem, entertain yourself, or otherwise improve your life, please consider a small donation to help pay for server costs. (Even $1 helps!) Many thanks, and enjoy the site!

// Bioinformatics

Artificial Life Simulator (in VB6)

This is what the Artificial Life Simulator looks like in action

The Short Description:

Here you have it: the largest, most complex programming project now available on tannerhelland.com. Originally a final project for a university bioinformatics course, my artificial life simulator has now been completely retooled as a full-blown lesson in evolution and population genetics.

As with most artificial life simulators, a set of simple artificial creatures compete for limited resources.  Each creature has a strand of pseudo-DNA that determines three basic attributes: size, speed, and range (how far it can see).  When the little critters reproduce (asexually… unfortunately), mutations may occur.  Over time, this can lead to remarkable changes in gene frequency throughout the population.  Typically the creatures with a balance of speed and range tend to win out over bigger, slower creatures and smaller, faster ones.

The code is well-optimized, so it should run decently on any hardware.   As a bonus, the simulator can be surprisingly addicting – my longest simulation to date ran for over 500,000 cycles before all the creatures died.  For further analysis of a particular simulation run, all data can be saved to a tab-delimited text file compatible with any major spreadsheet software.

The Long Description:

As you can imagine, a project of this magnitude warrants a fair amount of documentation.  I am currently working on a “how to use this software to teach evolution and population genetics” tutorial that educators – or anyone interested in biology – can read to see how things like genetic drift, population equilibrium, the “bottleneck” effect, and other aspects of a small, closed population work.

Unfortunately, a document like that takes some time to create… so rather than holding off until I’ve finished it, I’ve decided to upload the project for people to start playing with.  If you have any comments or questions, let me know and I’ll see if I can’t work answers into the final version of the tutorial.

(If you’d like to be notified when the documentation is finished, please let me know via the contact form.  I plan on sending out an email once all updates have been posted.)

 

bookmark and share this article

if you liked this article, you may also like

Discussion (Oldest Comments Displayed First)

Public comments are closed for this article. Private comments may be submitted using this link.
  1. Look at http://www.darwinbots.com this is what you’re creating.

    Posted by Somebody | April 9, 2010, 8:14 am