cellular automata are very good minimal illustrations of the notion of computation. at any given time, there is the current state of the world, and each cell follows a very simple rule to decide what state it will have at the next time step. what is interesting is how complex systems can emerge from simple transition definitions.
one of the most interesting questions of our time is whether or not the universe can be understood as a CA. (c.f. minsky, zuse, fredkin/wolfram, 't hooft)
source on github
binary 1d nearest neighbor rule definitions yield 255 possibilities. within these, various classes of complexity can arise.
~rule-32 class 1 - uniform
~rule-108 class 2 - pattern
~rule-30 class 3 - random
~rule-110 class 4 - complexity
k ∈ [ ON, OFF ]
a game of iterated prisoner's dilemma. shows an ecological evolution of a system that allows for many different strategies. pockets of friendly agents can exist, but mean tribes will take advantage of them. the golden rule generally prevails. starting distributions determine the long term ecological equilibrium.
~darwin ALL-C:25%, PAV:25%, TFT:25%, ALL-D:25%
~insulation ALL-C:38%, PAV:2%, TFT:35%, ALL-D:25%
~ozymandias ALL-C:48%, PAV:2%, TFT:25%, ALL-D:25%
~herding PAV:50%, ALL-D:50%
~inert PAV:50%, ALL-C:50%
~jack handy PAV:5%, ALL-C:85%, ALL-D:5%, TFT:5%
k ∈ [ ALL-D, ALL-C, RAND, TFT, PAV ]
a traffic simulation. some cars move right, some down. it's not clear beforehand whether or not an initial state will eventually gridlock or not without running the simulation.
k ∈ [ RIGHT, DOWN ]
water moves down in a cave.
trees grow, and sometimes burn down. neighboring trees spread wildfire.