Non-isotropic Life-like cellular automaton

From LifeWiki
Jump to navigation Jump to search

Non-isotropic Life-like cellular automata, also called anisotropic Life-like cellular automata, are a generalization of both totalistic and non-totalistic (but isotropic) Life-like cellular automata in which any transition function is allowed. Transitions may thus take into account not just the number of live neighbors of a given cell (as in outer-totalistic CAs) and their alignment relative to each other (as in non-totalistic isotropic CAs), but also their absolute alignment on the grid.

For instance, the following two configurations (which would both be considered 2a in Hensel notation) are distinguished in non-isotropic CAs but not in isotropic ones:

Neighborhood 2a.png Neighborhood 2a rotated.png


Range-1 Moore neighbourhood

Main article: Rule integer

Non-isotropic Life-like CAs are typically not given in B/S notation but rather as MAP strings, a notation first introduced by Chris Rowett, the creator of the LifeViewer. MAP strings encode all possible transitions in the range-1 Moore neighbourhood, and every 2-state rule in a range-1 Moore neighbourhood can be represented in this form.

For this purpose, each member of the range-1 Moore neighbourhood of a cell is assigned a number, as follows:

256 128 64
32 16 8
4 2 1

Each possible neighbourhood configuration thus corresponds to a number between 0 and 511, and the transition function can be represented as a 512-bit binary string, where the n-th bit is set to 1 if, in the configuration numbered n, the center cell will be alive in the next generation, and 0 otherwise.

The resulting binary string is then further encoded in base64 for brevity, creating a string of 86 characters.

Other neighbourhoods

  • The range-1 triangular von Neumann neighbourhood has 4 cells (center plus 3 neighbors), which gives 24=16 possible combinations of cells.
  • The range-1 von Neumann neighbourhood has 5 cells (center plus 4 neighbors), which gives 25=32 possible combinations of cells; these encode into 6 base 64 characters.
  • The range-1 hexagonal neighbourhood has 7 cells (center plus 6 neighbors), which gives 27=128 possible combinations of cells; these encode into 22 base64 characters.
  • The range-1 triangular Moore neighbourhood and range-2 von Neumann neighbourhood have 13 cells (center plus 12 neighbors), which gives 213=8192 possible combinations of cells.
  • The range-2 Moore and range-3 von Neumann neighbourhoods have 25 cells (center plus 24 neighbors), which gives 225=33554432 possible combinations of cells.

Both range 1 hexagonal- and range 1 von Neumann-neighbourhood non-isotropic CAs are supported in Golly starting in version 3.0b2.[1]


MAP rules can also simulate Generations rules, by adding /(states) to the end of the MAP string.

Software support

MAP rules are natively supported by Golly starting with version 2.9b2, and by LifeViewer starting with build 222.[2]

See also


  1. Chris Rowett (August 3, 2017). Re: Golly 3.0b2 (discussion thread) at the forums
  2. Chris Rowett (March 14, 2017). Re: Pattern viewer for forum threads (discussion thread) at the forums