Art, design & a little curiosity
Creative coding ↗

Cellular automata as a visual sketchbook

Design a small rule-based grid using explicit neighbor counts, then compare behaviors from the same starting pattern without confusing update order with emergent structure.

An original two-ink print study exploring cellular automata art.
Two-ink print / Original digital study

Local rules become visible history

A cellular automaton gives each grid cell a state and a rule for its next state. The picture changes through many local decisions. For an art study, the goal is not to discover a famous rule but to understand how a chosen rule builds visual rhythm over time.

Calculate the next generation separately

Make a small rectangular grid with only two states. Count selected neighbors for each cell and write the next result into a separate grid. Replace the current grid only after every next state has been calculated. Decide explicitly what happens at the edges.

Write down the current setting for initial occupied cells before making a second interpretation of the idea. Begin with the smallest version that demonstrates the proposed relationship. Remove secondary decoration while checking its construction. A tiny proof makes incorrect assumptions visible before they multiply across the finished work. A useful acceptance check is whether the same input and rule reproduce the same sequence. Judge that at the intended viewing size or working distance, where tiny construction mistakes and exaggerated effects can have very different consequences.

Detect updates that bias their neighbors

Updating the original grid while counting neighbors makes later cells depend on already changed values. This creates an unintended directional bias. If activity disappears immediately, inspect the starting pattern and rule with a hand-calculated three-by-three example before enlarging the canvas.

To locate a fault, inspect the part of the result most directly affected by initial occupied cells. Temporarily show construction points and intermediate values. Reduce repeated elements to a handful and pause anything that changes over time.

Save ten generations as a contact sheet

Use the same initial cluster for three different survival thresholds. Save a frame after each of ten updates. Compare how boundaries advance, fragment, or settle. A contact sheet makes these temporal patterns easier to inspect than continuous playback.

Arrange a small experiment with a single cell, a short bar, and an uneven cluster, keeping its other decisions consistent. Predict one consequence before each trial, then compare that prediction with the actual result. Record a surprise in plain language and identify the part of the construction that could explain it. This turns a set of variations into information you can use in a later, more ambitious piece.

Define the world beyond the edge

For the first grid, treat cells outside the boundary as inactive. Then make a second version where opposite edges connect. Use the same initial cluster and rule in both versions. A pattern reaching the border should behave differently, and that difference is evidence of the boundary policy rather than a bug. Label the two studies clearly so a later comparison does not mistake edge behavior for a changed transition rule.

A worked example

A woven cellular strip

Make a woven-looking strip by reading each successive grid row as a new generation from the row above it. Use a narrow starting band and a simple three-neighbor rule. The final image records the system's history vertically rather than showing only its latest state.

References & further reading

Examples and exercises in this guide are original teaching scenarios.

Keep following the thread.

More creative coding ↗