
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 |