cellular
automaton

what is this?

initial state


ruleset

expander

birds


harmony

billow


mangler

swirls


horizons

randomness

off

on

speed

slow

medium

fast

color


A cellular automaton is a system of cells that changes with each iteration according to a given ruleset. Each cell has an initial state (e.g. 0 or 1) which is updated based on the states of its neighbors. Cellular automata have been explored since their discovery in the 1940s by Stanislaw Ulam and John von Neumann during their work on the Manhattan Project and more recently by Stephen Wolfram. Originally studied as a model for self-replication, cellular automata have important implications for numerous fields of study, including computability theory, mathematics, physics, and biology.


The simplest model of a cellular automaton is a 1D collection of square cells in a row, each of which has a state of either 0 (white) or 1 (black). In this model, each cell has two neighbors– one to its left and one to its right. The cells' states change according to a set of rules. For example, if the current cell state is 0, its left neighbor's state is 0, and its right neighbor's state is 1, change the current cell state to 1. For this most simple model, there exist 256 possible rulesets/combinations, creating a variety of visual patterns.


Our cellular automaton features a square grid with triangular cells, in which each cell can have one of four states– expressed visually by color. Every cell has three adjacent neighbors which share a border. Because the grid is finite, cells on the edge appear to lack a neighbor. To solve this issue, edge cells are programmed to wrap around the x- and y- axis to find their neighbors on the other side, creating a torus-shaped system of cells. After calculating its next state based on its current state and the state of its three neighbors, each cell updates its color accordingly.


If you'd like to read more about cellular automata, here are some resources:
Wikipedia: Cellular Automaton
Daniel Shiffman: The Nature of Code


We hope you enjoy the intricate patterns created by stability and randomness. Be sure to play around with different initial states, rulesets, colors, and adding a little randomness. Have fun!




Made by Studio OKO