RoadMap
Pages 29
- Home
- AlansIdeas
- CoddsDesign
- EdPeggsBusyBeaverTurmiteChallenge
- FutureWork
- GenericNeighborhoods
- HexagonalNeighborhood
- HexTurmites
- HistoricalLife
- Hutton32
- JvN29
- LifeHistory
- MargolusNeighborhood
- NewRuleFormat
- Nobili32
- PartialConstructor
- PermutationSymmetry
- RoadMap
- SubmittingNewRules
- TheFormat
- TheRules
- TwoDimensionalTuringMachines
- UnboundVariables
- UnresolvedHexTurmites1s3c
- UnresolvedHexTurmites1s4c
- UnresolvedTurmites1States5Colors
- UnresolvedTurmites2States2Colors
- UsingRuleTables
- WireWorld
- Show 14 more pages…
Clone this wiki locally
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 |
|---|---|---|---|
| vonNeumann_radius2 | c,n,e,s,w,N,E,S,W : c' |
none, rotate2, rotate4, rotate4reflect, reflect_horizontal, reflect_vertical, layer_permutation, total_permuation | |
| diamond_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 not currently supported by Golly. Mirek's Cellebration (MCell) is one program capable of running these rules.
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).