By Thomas

Let’s do something totally unproductive today: Let`s play god.

Well, it`s going to be “playing god” if you go with the saying “Evolution is god’s way of issuing upgrades”.

For everyone else it’s going to be “Let`s play simple-laws-that-lead-to-complex-life”*.

A while back I read Richard Dawkins “The Selfish Gene” (1976) which argues that genes are the basic unit that natural selection is working on. I found the book was entertaining and it was easy to follow the arguments (even for laymen on the subject, like me). It replaced “The Science of Discworld” (Pratchett, Stewart, Cohen; 1999) as my Nr.1 popular science book. Naturally I went on reading more of Dawkins books and currently I am reading “The Blind Watchmaker”.

Fractal-Dragon-IFS-01Fig. 1: Fractal – Repetion of simple structures create a complex structure. From fractalsciencekit.

In one chapter Dawkins describes a small computer program to illustrate how evolution works. The basic principle that is used is the one of drawing a tree by using a simple algorithm. If you ever had the slightest contact with programming you`ll probably heard of that. If not you can see the basic principal here. This kind of algorithm is often used to show that complex things can arise from applying simple rules (see Fig. 1). In this case the simple rules are:

Draw a line.
After a while, split it into 2 (or 3, or 4, or 5 …) branches.
Then repeat that game with every branch.

The program in the “The Blind Watchmaker” takes the whole thing a step further:

It treads the variables in the program (e.g. “How many branches?”, “What is the angle between the branches?”, “After what distance does branching occur?”, “How often does branching occur?”) like genes that can randomly vary in their value. It also adds some more “genes” to allow for some more shapes to arise then tree-like ones. In the book the resulting figures are called Biomorphs. The program starts with a Biomorph and by randomly changing one of its variables/genes it creates “children” of this Biomorph.

And then comes the “playing god” part:
The program offers 8 children (with different variations in their “genes”) to the user and the user decides which one will be the “parent” of the next generation. Apparently it was possible to create quite complex structures using this simple program (Fig. 2). As I wanted to try the program myself I checked Google and found that there are several websites having some version of this program. Unfortunately most of them seem to be written centuries ago (meaning: in the 1990s) in a JAVA code that nowadays is mostly blocked or crashes browsers**.

Anyway, I found two versions that seem to work quite well:

1.) A pretty basic version, as far as I can tell similar to the original one described in the book.

2.) A version that seems a bit more complex and has COLOURS.

Fig. 2: Biomorphs from “The Blind Watchmaker”.

The middle square in both programs contains the “parent” which is surrounded by its “children”. To progress select one and it will become the new “parent”. You can just randomly select children to see what various forms some simple rules can create or you can put some selection pressure on the Biomorphs: Aim for a particular property (e.g. elongated, round, complex or a colour in the second program). The effect that is illustrated is breeding (evolution by selection by humans) but if you change the perspective a bit it serves as well to illustrate evolution by natural selection: Those biomorphs just “live” in an environment where it`s crucial for survival to be as colourful and as shaped as you want them to be.

Happy Evolving.

And don`t try to think too much about the possibility that we all just might be result of a slightly more complex Biomorph program – run by a procrastinating, 666-dimensional PhD-student.


*    Even though more likely to be true, this is just not such a catchy phrase as the whole Let`s-play-god-thing.

**   You could say those programs are not fit to survive in the modern day internet – it is JAVAlution.