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/
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) |
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 |
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 |
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 |
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 | |
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).