How to play

You start with a simple drawing surrounded by drawings which vary a tiny bit. Click on one of the variations, and it moves to the center, surrounded by variations on it. Repeat this 10 to 20 times, and cool things start to appear.

The series of drawings picked is shown at the top. At the bottom are buttons allowing you to save a cool Biomorph, and a button for starting over.

Play the game.

View the gallery of interesting images.

Origin of Biomorph

Biomorph is based on the description of a similar program of the same name in The Blind Watchmaker by Richard Dawkins, ISBN:0-393-30448-5. The program simulates some aspects of evolution.

In Biomorph, each drawing is based on 13 parameters. The parameters are whole numbers from -9 to 9, or from 0 to 9. In each 'variation' image, one of the parameters is changed by one. This generation of variation followed by human selection models some aspects of evolution. Over the course of a few dozen rounds of selection, surprizing images can appear. To see how surprizing, look at the gallery, or better yet, try it a few times yourself.

This simulation differs from natural evolution in a number of ways. Organisms have many genes (from a low of ~350 to 10^5), more than 13, and interesting variations take much longer than a 'click' to appear. Natural selection selects organisms based on survival to reproduce, not based on shapes interesting to people.

The Biomorph drawing is a tree, with a trunk splitting into two branches, each branch splitting into 2 sub-branches, and so on. One parameter determines the number of branches, others the length of each branch and the branch angles. Three parameters set the color of a branch. And there are parameters which cause other parameters to change at each branch point. This can be seen the clearest in drawings with color changes.

Here's the code. You can examine the individual files, or grab the whole package in the .tgz file.

Home page Return to the home page

Please send comments or questions regarding this web page to Jim Lund (jlund256 at gmail dot com)