Screenshot of the simulator in action
The Short Description:
I wrote this little artificial life simulator as a final project for a university bioinformatics course. It served as a fun (and informative!) 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, for better or worse), mutations may occur. Over time, this leads 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 spreadsheet software. (I did my final analysis in LibreOffice, the modern successor to OpenOffice.)
The Long Description:
Alongside the source code, I also wrote a full paper describing the artificial life simulator and its relationship to population genetics models.
Unfortunately, due to repeat issues of plagiarism - where professors contacted me to let me know that one of their students attempted to pass off the project and paper as their own - I have since pulled the paper’s text from this website.