# Non-isotropic rule

**Non-isotropic rules**, also called **anisotropic rules**, are a generalization of both totalistic and non-totalistic (but isotropic) rules 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:

## Encoding

### Range-1 Moore neighbourhood

*Main article: Rule integer*

Non-isotropic CAs are typically not given in a birth/survival 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 2
^{4}=16 possible combinations of cells. - The range-1 von Neumann neighbourhood has 5 cells (center plus 4 neighbors), which gives 2
^{5}=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 2
^{7}=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 2
^{13}=8192 possible combinations of cells. - The range-2 Moore and range-3 von Neumann neighbourhoods have 25 cells (center plus 24 neighbors), which gives 2
^{25}=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]}

## Extensions

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

- Cellular automaton
- Totalistic Life-like cellular automaton
- Non-totalistic cellular automaton
- Generations
- Larger than Life

## References

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