HAL - Hardware Artificial Life

Unfortunately, your browser does not support Java.
A Java applet is the central focus of this page.
You're encouraged to try again using a Java-aware browser.

A version of this applet using Sun's Java plug-in is available here.


This applet displays a cellular automata substrate capable of supporting evolving, self-reproducing organisms which are capable of universal computation.

The applet is fully interactive, allowing you to apply selection based on organisms visual characteristics using a variety of implements.

Selection may also applied automatically. Currently the built in selection methods are for size and shape only.

The cellular automata uses a strict von-Neumann neighbourhood and is based on an innovative, multi-layered design.

The whole architecture is designed to be implemented on massively parallel hardware.
Central to HAL's design is the use of fine-grained massive parallelism which, on appropriate hardware, should allow maximum possible performance to be reached.

Note: if you're playing with wiping out organisms manually you'll probably want to have the 'No selection at all' checkbox ticked - this causes all cells to be born pregnant and removes some constraints which abort malformed offspring.


Interactive controls

  • Initial configuration - controls how the automata starts up;
  • Tool selection - controls which type of tool to use to manipulate the environment;
  • Tool behaviour - controls how the tool in use is applied;
  • Display - controls which aspect of the automata is presented:
    • Cell types - an essentially static display of each cell. This redraws rapidly;
    • Development - shows the passage of developmental date through each cell;
    • Calculation - shows the calculation layer. This layer supports universal computation;
  • Resolution - controls how many cells are displayed, and their size;
  • Life span - allows the maximum life span of each cell, in generations to be controlled;
  • Show frames - configures how frequently the display is updated;
  • Mutation rate - allows the level of 'background radiation' in the environment to be controlled;
  • 'No selection at all' - a checkbox which turns off all the computer-driven selection methods;
    • Selection for area - allows computer-driven selection based on area coverage criteria;
    • Selection for shape - allows selection based on the number of corners of each cell;
    • Selection for size - allows selection based on cell's maximum and minimum spatial extent;
    • Selection for calc 1 - allows bits in the first calculation layer to be set or cleared;
  • Restart - restarts the automata with the current initial configuration;
  • Clear - completely clears the grid - including any walls that may be present;
  • Step - allows a paused automata to be single-stepped;
  • Pause - allows the automata to be stopped and started;
HAL can also be run as an application. Download this jar file (using shift-click) and double-click on it.

Index | HAL | EoSex | Firefly | CA | Links

tim@tt1.org | http://alife.co.uk/