WARNING! This page is out-of-date. Go here for the latest versions.


Squirm3

The applet is at the bottom of this page, hopefully running as you read this.

The applet is an approximate simulation of DNA replication. Each coloured square is a molecule, the black lines represent a chemical bond between two molecules. Each molecule moves around at random, with the restriction that bonds cannot extend more than a certain distance. Simple chemical rules determine when bonds are formed and when they are broken (reactions). The effect of these reactions is to cause the string of coloured squares to replicate itself repeatedly, as long as there are sufficient free molecules available.

This code grew out of earlier work on mobile cellular automata and through discussion with Daniel LaLiberte and others on the Primordial Life discussion group.

The aim is to create a chemistry that permits robust, adaptable self-replicators. If it can be shown that self-replicators with varying fitness can exist, then in the presence of mutations and under the pressures of natural selection, evolutionary processes should be observed.

Get involved! You can have the source code for this if you want. Some details about how Squirm3 works are below.

Tim Hutton
30th October 2001


This is Variant 7.

<< back to variant 6 --- on to variant 8 >>

I've tried to provide an interface for working with different chemistries. It works reasonably well I guess but isn't pretty.

Hopefully the interface is reasonably self-explanatory. Reactions like e1 e0 => e4-e10 can be represented using the controls. The ten reactions for self-replicating strings are already set up for you.

Any help with improving this would be welcome. Here is the java source.

typestatetypestatestatestate
Reaction 1:bonded withbecomesbonded with
Reaction 2:bonded withbecomesbonded with
Reaction 3:bonded withbecomesbonded with
Reaction 4:bonded withbecomesbonded with
Reaction 5:bonded withbecomesbonded with
Reaction 6:bonded withbecomesbonded with
Reaction 7:bonded withbecomesbonded with
Reaction 8:bonded withbecomesbonded with
Reaction 9:bonded withbecomesbonded with
Reaction 10:bonded withbecomesbonded with
Reaction 11:bonded withbecomesbonded with
Reaction 12:bonded withbecomesbonded with
Reaction 13:bonded withbecomesbonded with
Reaction 14:bonded withbecomesbonded with
Reaction 15:bonded withbecomesbonded with
Reaction 16:bonded withbecomesbonded with
Reaction 17:bonded withbecomesbonded with
Reaction 18:bonded withbecomesbonded with
Reaction 19:bonded withbecomesbonded with
Reaction 20:bonded withbecomesbonded with

Slowdown: milliseconds
Periodic flood: time steps (alternates between left and right halves)
Cosmic-ray state changes with probability:
Draw only every: time steps