RoadMap - GollyGang/ruletablerepository GitHub Wiki

Looking further ahead, here's a sketch of how the rule table format might be extended to support future CA (see also: FutureWork).

  • Items in bold are those supported in Golly.
  • Items marked with ** are supported in a Golly emulation script: Scripts/Python/RuleTableToTree.py.

These are just some ideas - please edit or comment to add your opinions. For a good survey on neighborhoods, see http://cell-auto.com/neighbourhood/

Two-dimensional neighborhoods

neighborhood transitions symmetries image
vonNeumann c,n,e,s,w : c' none, rotate2, rotate (rotate4), rotate_reflect (rotate4reflect), reflect_horizontal (reflect), reflect_vertical, permute
Moore c,n,ne,e,se,s,sw,w,nw : c' none, rotate2, rotate4, rotate8, rotate4reflect, rotate8reflect, reflect_horizontal (reflect), reflect_vertical, direction_permutation, total_permutation (permute)
hexagonal (see HexagonalNeighborhood) c,n,e,se,s,w,nw : c none, rotate2, rotate3, rotate6, rotate6reflect, permute
triangularVonNeumann** c,n1,n2,n3 : c' none, rotate, rotate_reflect (permute)
triangularMoore** c,n1..n12 : c' none, rotate, rotate_reflect, layer_permutation, total_permutation (permute)

Two-dimensional partitioning schemes

neighborhood transitions symmetries image
Margolus** (see MargolusNeighborhood) a,b,c,d : a',b',c',d' none, rotate (rotate4), rotate_reflect (rotate4reflect), reflect_horizontal, reflect_vertical, permute
square4_cyclic, square4_figure8h, square4_figure8v** (==square4_reading_order) (see MargolusNeighborhood) a,b,c,d : a',b',c',d' none, rotate4, rotate4reflect, reflect_horizontal, reflect_vertical, permute
square9_reading_order a,b,c,d,e,f,g,h,i : a',b',c',d',e',f',g',h',i' none, rotate, rotate_reflect, reflect_horizontal, reflect_vertical, permutation

One-dimensional neighborhoods and partitioning schemes

neighborhood transitions symmetries image
oneDimensional c,w,e : c' none, reflect (permute)
oneDimensional_radius2 c,w2,w,e,e2 : c' none, reflect, permutation?
oneDimensional_partition2 (brick wall) a,b : a',b' none, reflect

Larger two-dimensional neighborhoods

neighborhood transitions symmetries image
cross_radius2 c,n,e,s,w,N,E,S,W : c' none, rotate2, rotate4, rotate4reflect, reflect_horizontal, reflect_vertical, layer_permutation, total_permuation
vonNeumann_radius2 c,n,ne,e,se,s,sw,w,nw,N,E,S,W : c' none, rotate2, rotate4, rotate4reflect, reflect_horizontal, reflect_vertical, layer_permutation, total_permuation
star_radius2 c,n,ne,e,se,s,sw,w,nw,N,NE,E,SE,S,SW,W,NW : c' none, rotate2, rotate4, rotate4reflect, reflect_horizontal, reflect_vertical, layer_permutation, direction_permutation, layer_direction_permutation, total_permuation
disc_radius2, or
circle_radius2
c,n,ne,e,se,s,sw,w,nw,N,NNE,ENE,E,ESE,SSE,S,SSW,WSW,W, : c' none, rotate2, rotate4, rotate4reflect, reflect_horizontal, reflect_vertical, layer_permutation, total_permuation
Moore_radius2 c,n,ne,e,se,s,sw,w,nw,N,NNE,NE,ENE,E,ESE,SE,SSE,S,SSW,SW,WSW,W,WNW,NW,NNW : c' none, rotate2, rotate4, rotate8, rotate4reflect, rotate8reflect, reflect_horizontal, reflect_vertical, layer_permutation, total_permuation

Three-dimensional neighborhoods

neighborhood transitions symmetries image
vonNeumann3D c,x+,x-,y+,y-,z+,z- : c' none, rotate, rotate_x, rotate_y, rotate_z, reflect_x, reflect_y, reflect_z, rotate24, rotate24reflect, permutation
Moore3D c,n1..n26 : c' none, rotate4, rotate8, rotate4_x, rotate4_y, rotate4_z, rotate8_x, rotate8_y, rotate8_z, reflect_x, reflect_y, reflect_z, rotate24, rotate24reflect, permutation
faceCentredCubic c,n1..n12 : c' none, rotate12, rotate24, rotate24reflect, permutation

Exotic neighborhoods

neighborhood transitions symmetries image
Penrose P3 tiling c,n1..n4 : c' permutation
F4_lattice c,n1..n16 : c' none, rotate192, rotate192reflect, permutation
D4_lattice c,n1..n24 : c' none, rotate192, rotate192reflect, permutation
E8_lattice c,n1..n240 : c' none, rotate348364800, rotate348364800reflect, permutation
Leech_lattice c,n1..n196560 : c' none, rotate8315553613086720000, rotate8315553613086720000reflect, permutation

Brian Prentice and others have done some work on CA that run on arbitrary tilings: http://linuxenvy.com/bprentice/TiledCA/TiledCA.html

There are some sets of cellular automata that are best supported independently, rather than incorporating them into rule tables:


Rule set Parameters
Life-like b0..b8,s0..s8
Generations b0..b8,s0..s8,n
Larger than Life range,bMin,bMax,sMin,sMax

The final rule, Larger than Life, relies on large neighborhoods; these are supported by Golly 3.0 (up to range 500). Mirek's Cellebration (MCell) is another program capable of running these rules (but only up to range 10).

CA on Penrose tilings have been intensively investigated by Susan Stepney et al.

Many of these concepts, and much more, have been covered in Andrew Adamatzky's book, Game of Life Cellular Automata (Springer, 2010).

⚠️ **GitHub.com Fallback** ⚠️