The "Revoworms" applet shows self-reproducing worms in a reversible cellular automata.
By default absorbing walls are placed around the edges of the automaton.
With the walls in place exact reversibility is lost once some worms crawl off the edges.
If the absorbing walls are removed, the simulation is exactly reversible - but it is
liable to get rapidly clogged up with worm debris.
Note that some of this debris forms because
I have not got the best rule. However the rule is good enough to demonstrate self-reproduction.
Revoworms was insipred by
[the work of Keuichi Morita and Katsunobu Imai].
I attempted to design a simple self-reproducing automata, following the first point of their
"Concluding Remarks".
It uses 729 states per cell. This contrasts to the Morita/Imai - which uses 32768 states per cell.
Primarily in order to keep down the number of states per cell down,
Revoworms uses a strange neighbourhood called
Doubled Central Triumphant neighbourhood.
I hope to publish the either the rule or the source code at some stage. If you're keen to get hold of this,
you could always try mailing me.
Of the 729 states, 27 are in the central region of each cell
and 3 are in each surrounding neighbourhood.
3x3x3x27 = 729. The 27 states are conceptually broken down
into 3 groups of 3 states - each group associated with
a direction.
The worms may be likened to caterpillar tracks. The bottom surface rests on the ground.
The top surface travels forwards towards the head of the worm.
As it moves the upper surface rolls down onto the ground at the front of the worm,
and the bottom surface at the end of the worm lifts up.
Each group of three states represents one of , or . These
instructions govern the worm's behaviour when they are on the bottom surface of the
worm. When they are on the top surface they just travel forwards passively along the worm.
The details of the rule are still quite complex. I used an elaborate program to discover
it - and I still don't have it working as well as is possible.
That's about it.