Introduction
This applet displays a cellular automata substrate capable of supporting
self-reproducing entities
with distinct phenotypes.
It is a cut-down version of HAL, based on a
hexagonal neighbourhood, and with fewer states per cell.
It uses the Tripod neighbourhood.
Changes from HAL
HexHAL was concieved to be a minimalistic version of HAL.
The different neighbourhood allows fewer neighbours, which makes for a simpler
and more compact automaton.
It uses 83 states per cell - which fits into seven bits of storage space.
HexHAL exibits a phenomenon strongly reminiscent of abiogenesis. Small
collections of random configurations of cells easily give rise to
self-replicating entities.
Things that were deliberately removed from HAL include:
- Arms that auto-retract on a collision;
- A different colour/type for each creature;
- Ability to produce rotated offspring;
- Wrap-around;
- Communications point with a configurable position;
Things that are present in HAL, which need to be added to HexHAL:
- Universal computation layer;
- Ontological growth;
- Automated selection process based on evaluated fitness;
It was hoped to add a reversible computation layer - based on the Triumphant neighbourhood. This looks
like it may be impractical, though - due to its not being in keeping with the
"small size" philosophy.
Previous work
HexHAL may be the first ever non-trivial hexagonal self-reproducing automata.
- The parity rule (which may be viewed here)
provides self-reproduction - but it is linear and out-of control - with offspring soon
reproducing messily all over their parents.
- Automata related to "brian's brain" exhibit something like reproduction -
but there is not normally any heritability involved. A hexagonal
example of this type of automaton is part of SARCASIM - George
Maydwell's CA tool. He calls the reproducing entities "comets".
Interactive controls
The applet is interactive, allowing you to apply selection based on organisms
visual characteristics using a variety of implements.
- Use - tool selection - controls which type of tool to use to manipulate the environment;
- Click to - set the tool's behavior - controls how the tool in use is applied;
- Display - controls which aspect of the automata is presented;
- Size - controls how many cells are displayed, and their size;
- Show - configures how frequently the display is updated;
- Delay - configures how much delay occurs between frame updates;
- Radiation - causes random deletions;
- Mutation - causes random modifictions to the organisms;
- Step - allows a paused automata to be single-stepped;
- Pause - allows the automata to be stopped and started;
- Clear - completely blank all the universe's cells;
- Randomise - configure all cells randomly;
- Restart - resets the universe to its initial configuration;
Downloads
This applet can also be run as an application. Download this jar file (using shift-click) and double-click on it.
Source code is available - with a "no-restrictions" license. Download this zip file.