>>> Cellular Automata

Conway's Game of Life

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.

Downloads

Executable
Source Code

Usage

Specify cellular automata rules on the command line:

CellularAutomata.exe 23/3

Rules

The application supports several formats for cellular automata rules.

Standard Format

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

Alternate Format

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.

Rule Table

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

Controls

Keys

Mouse

Rules

Classic Rules

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

Life-Like Rules

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

Generations/Decay Rules

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

Rules Tables

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