CellularAutomata is a basic cellular automata editor and explorer I originally wrote in late July 2011.
The application is written in C++ and uses the Windows Console API for display and input.
The executable is unusually small because it uses WCRT 1.16 instead of the normal Visual C++ standard libraries.
Specify cellular automata rules on the command line:
CellularAutomata.exe 23/3
The application supports several formats for cellular automata rules.
The standard format is a string of numbers separated by slashes in the form:
<survival>/<birth>[/<count>]
The <survival> and <birth> fields list neighbor counts (between 0 and 8) that cause a cell to survive and be born, respectively. The <count> field specifies the total state count. The default state count is 2.
Conway's Game of Life, where a cell survives if it has 2 or 3 neighbors and is born if it has 3 neighbors, is:
23/3
The alternate format uses B, S, and C prefixes followed by numbers. The prefixes can be in any order and groups can be run together or separated by non-whitespace characters. If surrounded by quotes, they can be separated by whitespace.
B3S23, S23B3, B3/S23, S23/B3, "B3 S23", "S23 B3" are equivalent and produce the same result.
A rule table specifies the next state for each count of neighbors in state 1.
R<state>:<next0>,<next1>,<next2>,<next3>,<next4>,<next5>,<next6>,<next7>,<next8>
The rule table for Wireworld is:
R1:2,2,2,2,2,2,2,2,2/R2:3,3,3,3,3,3,3,3,3/R3:3,1,1,3,3,3,3,3,3
Name | Rule (S/B) |
---|---|
1 Out Of 8 | 012345678/1 |
2 Out Of 8 | 012345678/2 |
Anneal | 35678/4678 |
Brian's Brain | /2/3 |
Conway's Life | 23/3 |
Flakes/Inkspot | 012345678/3 |
Lichens | 012345789/378 |
Lichens With Death | 01235678/378 |
Day & Night | 34678/3678 |
Majority | 45678/5678 |
From http://www.mirekw.com/ca/rullex_life.html
Name | Rule (S/B) |
---|---|
2x2 | 125/36 |
34 Life | 34/34 |
Amoeba | 1358/357 |
Anneal | 35678/4678 |
Assimilation | 4567/345 |
Coagulations | 235678/378 |
Conway's Life | 23/3 |
Coral | 45678/3 |
Day & Night | 34678/3678 |
Diamoeba | 5678/35678 |
Feux | 0247/1358 |
Flakes/Inkspot | 012345678/3 |
Gnarl | 1/1 |
High Life | 23/36 |
Inverse Life | 01234678/0123478 |
Long Life | 5/345 |
Maze | 12345/3 |
Mazectric | 1234/3 |
Move | 245/368 |
Pseudo Life | 238/357 |
Replicator | 1357/1357 |
Seeds | /2 |
Serviettes | /234 |
Stains | 235678/3678 |
Walled Cities | 2345/45678 |
From http://www.mirekw.com/ca/rullex_gene.html
Name | Rule (S/B/C) |
---|---|
Banners | 2367/3457/5 |
BelZhab | 23/23/8 |
BelZhab Sediment | 145678/23/8 |
Bloomerang | 234/34678/24 |
Bombers | 345/24/25 |
Brain 6 | 6/246/3 |
Brian's Brain | /2/3 |
Burst | 0235678/3468/9 |
Burst II | 235678/3468/9 |
Caterpillars | 124567/378/4 |
Chenille | 05678/24567/6 |
Circuit Genesis | 2345/1234/8 |
Cooties | 23/2/8 |
Ebb & Flow | 012478/36/18 |
Ebb & Flow II | 012468/37/18 |
Faders | 2/2/25 |
Flaming Starbows | 347/23/8 |
Frogs | 12/34/3 |
Frozen Spirals | 356/23/6 |
Glisserati | 035678/245678/7 |
Glissergy | 035678/245678/5 |
Lava | 12345/45678/8 |
Lines | 012345/458/3 |
Living On The Edge | 345/3/6 |
Meteor Guns | 01245678/3/8 |
Nova | 45678/2478/25 |
OrthoGo | 3/2/4 |
Prairie On Fire | 345/34/6 |
RainZha | 23/2/8 |
Rake | 3467/2678/6 |
SediMental | 45678/25678 |
Snake | 03467/25/6 |
SoftFreeze | 13458/38/6 |
Spirals | 2/234/5 |
Star Wars | 345/2/4 |
Sticks | 3456/2/6 |
Swirl | 23/34/8 |
ThrillGrill | 1234/34/48 |
Transers | 345/26/5 |
Transers II | 0345/26/6 |
Wanderers | 345/34678/5 |
Worms | 3467/25/6 |
Xtasy | 1456/2356/16 |
From http://psoup.math.wisc.edu/mcell/rullex_rtab.html
Name | Rule |
---|---|
Historical Life | R0:0,0,0,1,0,0,0,0,0/R1:2,2,1,1,2,2,2,2,2/R2:2,2,2,1,2,2,2,2,2 |
Wireworld | R1:2,2,2,2,2,2,2,2,2/R2:3,3,3,3,3,3,3,3,3/R3:3,1,1,3,3,3,3,3,3 |