Hexagonal neighbourhood

From LifeWiki
Jump to navigation Jump to search

The hexagonal neighbourhood is the set of all cells that are adjacent to the region of interest (neighbourhood) in a grid tiled with hexagons (the region of interest itself may or may not be considered part of the hexagonal neighbourhood, depending on context). Currently, these rules are partially supported by both Golly and apgsearch. These rules are typically notated using the H suffix (e.g. B2/S34H).

Generalizations

As mentioned above, Golly also has the ability to support outer-totalistic Generations rules using the hexagonal grid. Larger than Life and BSFKL rules are also possible, but they are not currently supported by apgsearch as of January 2022. However, LifeViewer and Golly support Larger than Life rules in this neighbourhood.

Higher ranges

The hexagonal neighbourhood can be defined with a higher range; that is, so that it captures cells that are further than one cell away from the region of interest. The higher range hexagonal neighbourhood take the shape of a symmetric honeycomb[1] and the number of cells in a range n hexagonal neighbourhood has the formula 3 n (n + 1).

x=1, y = 1, rule = R1,C0,S,B1,NH o! #C [[ GRID GRIDMAJOR 0 STARTFROM 1 NOREPORT NOGUI ZOOM 16 WIDTH 100 HEIGHT 100 ]] #C [[ COLOR GRID 192 192 192 COLOR BACKGROUND 255 255 255 COLOR ALIVE 192 239 192 COLOR DEAD 0 0 0 ]]
Range = 1
x=1, y = 1, rule = R2,C0,S,B1,NH o! #C [[ GRID GRIDMAJOR 0 STARTFROM 1 NOREPORT NOGUI ZOOM 16 WIDTH 112.5 HEIGHT 112.5 ]] #C [[ COLOR GRID 192 192 192 COLOR BACKGROUND 255 255 255 COLOR ALIVE 192 239 192 COLOR DEAD 0 0 0 ]]
Range = 2
x=1, y = 1, rule = R3,C0,S,B1,NH o! #C [[ GRID GRIDMAJOR 0 STARTFROM 1 NOREPORT NOGUI ZOOM 16 WIDTH 125 HEIGHT 125 ]] #C [[ COLOR GRID 192 192 192 COLOR BACKGROUND 255 255 255 COLOR ALIVE 192 239 192 COLOR DEAD 0 0 0 ]]
Range = 3

Subsets and alternate extensions

Rather than extending the hexagonal neighbourhood outwards as to form a large, solid hexagon, it can be extended by casting six rays outwards from the central cell to form what is referred to as the "asterisk" neighbourhood. This can be seen as the hexagonal-grid analogue to the cross neighbourhood or star neighbourhood depending on the analysis used.

range = 1
range = 2
range = 3

A subset of the hexagonal range 1 neighbourhood known as the tripod neighbourhood has also been investigated.[2] This neighbourhood has an essence of intrinsic chirality; having only half of the rotational symmetry of the usual hexagonal and asterisk neighbourhoods as well as cells in one cell's tripod neighbourhood not including the original cell in their tripod neighbourhood imparts rather strange mechanics upon rules which use it. Like with the asterisk neighbourhood, it can be extended via casting three rays from a central cell.

range = 1
range = 2
range = 3

Isotropic non-totalistic rules

See also: Isotropic non-totalistic cellular automaton

Like in the Moore neighborhood, isotropic cellular automata using the hexagonal neighbourhood can be defined using a notation devised by Paul Callahan which represent the relative permutations of the cells using the letters o, m, and p, as shown in the table below. The three letters stand for ortho, meta, and para respectively and were chosen in analogy to arene substitution patterns[3] in aromatic chemistry.[4][5]

Golly does not support isotropic non-totalistic hexagonal rules using this syntax, so they must instead be simulated using either rule tables or MAP strings. LifeViewer and lifelib support them natively.

0 1 2 3 4 5 6
(no
letter)
INT hexagonal R1 0.png INT hexagonal R1 1.png INT hexagonal R1 5.png INT hexagonal R1 6.png
o
(ortho)
INT hexagonal R1 2o.png INT hexagonal R1 3o.png INT hexagonal R1 4o.png
m
(meta)
INT hexagonal R1 2m.png INT hexagonal R1 3m.png INT hexagonal R1 4m.png
p
(para)
INT hexagonal R1 2p.png INT hexagonal R1 3p.png INT hexagonal R1 4p.png

Symmetries

Main article: Static symmetry#On a hexagonal or triangular grid

The hexagonal neighbourhood relies on a different grid than the Moore and von Neumann neighborhoods and thus features a different set of inherent symmetries when dealing with isotropic rules:

  • Asymmetric (C1, 8x32, 4x64, 2x128, 1x256)
  • C2_1
  • C2_4
  • C3_1
  • C3_3 (unsupported by apgsearch)
  • C6
  • D2_xo
  • D2_x
  • D4_x1
  • D4_x4
  • D6_1
  • D6_1o
  • D6_3 (unsupported by apgsearch)
  • D12

All of these are currently supported by both lifelib and apgsearch, except for D6_3 and C3_3. Catagolue's /hashsoup endpoint currently does not understand any of the C3, C6, D6 or D12 symmetries,[6] but the samples soups can nonetheless be correctly retrieved using lifelib's pattern.download_samples() function.[7]

Hexagonal rules can also support gutter symmetry,[8] however apgsearch does not support searching with these.

Software support

LifeViewer supports outer-totalistic hexagonal rules and also supports isotropic non-totalistic hexagonal rulestrings from build 313,[9] and supports hexagonal Higher-range outer-totalistic (including Larger than Life) rules.

Golly also simulates outer-totalistic hexagonal rules, although it does not natively support isotropic non-totalistic hexagonal rules with the usual notation. They both also have the ability to support Generations variants of hexagonal rules. In addition, hexagonal Higher-range outer-totalistic (including Larger than Life) rules are supported from v4.0 onwards.

apgsearch and Catagolue also support the hexagonal neighbourhood. They support hexagonal Generations rules, but they also support isotropic non-totalistic rules (see Generalizations below). As of version 4.71, all possible symmetries are available for searching except for C3_3 and D6_3 (see Symmetries below).[10][11]

Gallery

x=1, y = 1, rule = R2,C0,S,B1,NH o! #C [[ GRID GRIDMAJOR 0 STARTFROM 1 NOREPORT NOGUI ZOOM 16 WIDTH 150 HEIGHT 150 ]] #C [[ COLOR GRID 192 192 192 COLOR BACKGROUND 255 255 255 COLOR ALIVE 192 239 192 COLOR DEAD 0 0 0 ]]
Range-2 hexagonal Moore neighbourhood
x=1, y = 1, rule = R3,C0,S,B1,NH o! #C [[ GRID GRIDMAJOR 0 STARTFROM 1 NOREPORT NOGUI ZOOM 16 WIDTH 150 HEIGHT 150 ]] #C [[ COLOR GRID 192 192 192 COLOR BACKGROUND 255 255 255 COLOR ALIVE 192 239 192 COLOR DEAD 0 0 0 ]]
Range-3 hexagonal Moore neighbourhood

See also

References

  1. Chris Rowett. "LifeViewer Plugin Tests". Retrieved on November 21, 2020.
  2. EricG (September 9, 2012). Triangular & Tripod von Neuman neighborhoods (discussion thread) at the ConwayLife.com forums
  3. Arene substitution pattern at Wikipedia
  4. Experiments with a somewhat "Life-like" hexagonal CA (long) at Paul Callahan's Page of Conway's Life Miscellany
  5. "ExtendedCallahanHexagonal.gif". ConwayLife.com forums. Retrieved on December 8, 2018.
  6. https://gitlab.com/apgoucher/catagolue/-/issues/2
  7. Re: apgsearch v4.0 (discussion thread) at the ConwayLife.com forums
  8. Connor Steppie (December 5, 2018). Re: Non-totalistic hex rules (discussion thread) at the ConwayLife.com forums
  9. Chris Rowett (March 17, 2019). Re: Pattern viewer for forum threads (discussion thread) at the ConwayLife.com forums
  10. Adam P. Goucher (December 20, 2018). Re: apgsearch v4.0 (discussion thread) at the ConwayLife.com forums
  11. Connor Steppie (January 15, 2020). "C3_3 and D6_3 hex symmetries are not supported". GitLab.

External links

Forum threads: