Skip to the plates
FORMA PUBLIC DOMAIN GENERATIVE ATLAS / ED. 0.28

INDEX OF PLATES

Every specimen in the atlas — number, name, order, discoverer and definition. Each entry has a page of its own carrying the full note, the provenance and the licence standing, and a link to the plate running live. This page is generated from the same array the atlas renders, so it cannot drift from the plates. 95 plates carry a HOUDINI · VEX port — the same published mathematics written for a Detail Wrangle, cooked and verified in Houdini before it shipped. 41 carry a TOUCHDESIGNER · GLSL port, generated from the same shader the page itself runs. Both are on the plate's own page.

PL. 01

Lissajous Figure

CURVES / PARAMETRIC / STANDING WAVE

Nathaniel Bowditch, 1815 · Jules Lissajous, 1857

x(u) = A·sin(a·u + δ)
y(u) = B·sin(b·u)

Two perpendicular sinusoids plotted against each other.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 03

Epitrochoid

CURVES / ROULETTE / ROLLING CIRCLE

Albrecht Dürer, 1525 · Ptolemaic tradition

x(θ) = (R+r)·cos θ − h·cos(((R+r)/r)·θ)
y(θ) = (R+r)·sin θ − h·sin(((R+r)/r)·θ)

The path of a point fixed to a circle rolling around the outside of another circle.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 04

Superformula

CURVES / POLAR / SUPERELLIPSE

Johan Gielis, 2003

r(φ) = ( |cos(mφ/4)/a|^n₂ + |sin(mφ/4)/b|^n₃ )^(−1/n₁)

A generalisation of the superellipse that Gielis proposed as a single equation behind starfish, diatoms, flowers and shells.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 05

Harmonograph

CURVES / DAMPED / PENDULUM PAIR

Hugh Blackburn, 1844

x(t) = Σ Aᵢ·sin(fᵢ·t + φᵢ)·e^(−dᵢ·t)
y(t) = Σ Aⱼ·sin(fⱼ·t + φⱼ)·e^(−dⱼ·t)

A Victorian drawing machine: two or three pendulums swinging on perpendicular axes, a pen on the last one.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 06

Phyllotaxis

CURVES / PACKING / GOLDEN ANGLE

Helmut Vogel, 1979 · after Kepler and Bravais

θ(n) = n · 137.508°
r(n) = c · nᵏ,  k = ½ for equal area

The arrangement of florets in a sunflower head.

THE PLATE ▸RUN IT ▸VEX

PL. 07

Lorenz Attractor

ATTRACTORS / FLOW / DIFFERENTIAL

Edward Lorenz, 1963

ẋ = σ(y − x)
ẏ = x(ρ − z) − y
ż = xy − βz

Lorenz was running a truncated weather model, restarted it from a rounded printout, and got a completely different forecast.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 08

De Jong Map

ATTRACTORS / MAP / ITERATED

Peter de Jong, popularised 1980s

xₙ₊₁ = sin(a·yₙ) − cos(b·xₙ)
yₙ₊₁ = sin(c·xₙ) − cos(d·yₙ)

Four constants, two lines, and an unreasonable amount of structure.

THE PLATE ▸RUN IT ▸VEX

PL. 09

Clifford Map

ATTRACTORS / MAP / ITERATED

Clifford A. Pickover

xₙ₊₁ = sin(a·yₙ) + c·cos(a·xₙ)
yₙ₊₁ = sin(b·xₙ) + d·cos(b·yₙ)

A sibling of the de Jong map with the cosine terms scaled rather than subtracted.

THE PLATE ▸RUN IT ▸VEX

PL. 10

Thomas Attractor

ATTRACTORS / FLOW / CYCLIC SYMMETRY

René Thomas, 1999

ẋ = sin y − b·x
ẏ = sin z − b·y
ż = sin x − b·z

Cyclically symmetric in x, y and z — the same equation rotated through all three.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 11

Hénon Map

ATTRACTORS / MAP / QUADRATIC

Michel Hénon, 1976

xₙ₊₁ = 1 − a·xₙ² + yₙ
yₙ₊₁ = b·xₙ

Hénon built this deliberately as the simplest possible map with a strange attractor — a stripped-down stand-in for a slice through the Lorenz system.

THE PLATE ▸RUN IT ▸VEX

PL. 12

Ikeda Map

ATTRACTORS / MAP / OPTICAL CAVITY

Kensuke Ikeda, 1979

tₙ = 0.4 − 6/(1 + xₙ² + yₙ²)
xₙ₊₁ = 1 + u(xₙ·cos tₙ − yₙ·sin tₙ)
yₙ₊₁ = u(xₙ·sin tₙ + yₙ·cos tₙ)

Derived from light circulating in a ring cavity filled with a nonlinear medium — the rotation angle depends on the intensity, so bright parts of the beam twist further than dim ones.

THE PLATE ▸RUN IT ▸VEX

PL. 13

Mandelbrot Set

FRACTALS / ESCAPE TIME / QUADRATIC

Benoît Mandelbrot, 1980 · after Fatou and Julia

zₙ₊₁ = zₙ² + c,  z₀ = 0
c ∈ M  ⟺  |zₙ| stays bounded

The set of complex c for which the orbit of zero never escapes.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 14

Julia Set

FRACTALS / ESCAPE TIME / FIXED C

Gaston Julia, 1918 · Pierre Fatou, 1917

zₙ₊₁ = zₙ² + c,  z₀ = pixel
c = μ/2 − μ²/4,  μ = |μ|·e^(iθ)

The same iteration as the Mandelbrot set with the roles swapped: c is fixed and the starting point varies.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 15

Barnsley Fern

FRACTALS / IFS / AFFINE

Michael Barnsley, 1988

four affine maps fᵢ(x,y) = Aᵢ·(x,y)ᵀ + bᵢ
applied at random with fixed probabilities

An iterated function system: pick one of four affine transforms at random, apply it, plot the point, repeat.

THE PLATE ▸RUN IT ▸VEX

PL. 16

Chaos Game

FRACTALS / IFS / VERTEX JUMP

Michael Barnsley, 1988 · Sierpiński, 1915

pₙ₊₁ = pₙ + r·(vₖ − pₙ),  vₖ a random vertex

Mark some vertices, start anywhere, and repeatedly jump a fixed fraction of the way toward a randomly chosen one.

THE PLATE ▸RUN IT ▸VEX

PL. 17

Heighway Dragon

FRACTALS / L-SYSTEM / PAPER FOLD

John Heighway, William Harter, Bruce Banks, 1966

fold a strip in half n times, unfold to 90°
turn sequence: Lₙ₊₁ = Lₙ · L · reverse(swap(Lₙ))

Fold a strip of paper in half repeatedly, then open every crease to a right angle.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 18

Hilbert Curve

FRACTALS / SPACE FILLING / RECURSIVE

David Hilbert, 1891

a bijection [0,1] → [0,1]²
built by recursive quadrant subdivision

A line that visits every point of a square.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 19

Fractional Brownian Motion

FIELDS / NOISE / OCTAVE SUM

Mandelbrot & Van Ness, 1968

fBm(p) = Σᵢ aⁱ · noise(2ⁱ·p),  a < 1

Octaves of the same noise summed at doubling frequency and halving amplitude.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 20

Gradient Noise

FIELDS / NOISE / GRADIENT LATTICE

Ken Perlin, 1985

n(p) = interpolate over lattice corners of
       gᵢ · (p − cᵢ),  gᵢ pseudo-random unit vectors

Perlin built this for Tron and it won him an Academy Award.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 21

Cellular Noise

FIELDS / NOISE / NEAREST FEATURE

Steven Worley, 1996

F₁(p) = min‖p − featureᵢ‖
F₂ − F₁ gives the cell borders

Scatter feature points, then colour every pixel by its distance to the nearest one.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 22

Domain Warping

FIELDS / NOISE / INPUT TRANSFORM

A folk technique of procedural graphics

q = fbm(p)
r = fbm(p + 4q)
out = fbm(p + 4r)

Instead of transforming the output of a noise function, transform its input — with more noise.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 23

Flow Field

FIELDS / ADVECTION / VECTOR FIELD

Standard practice; after Perlin's vector fields

θ(p) = 2π · fbm(p)
pₙ₊₁ = pₙ + s·(cos θ, sin θ)

Read an angle out of a noise field at every point, then let particles drift along it leaving trails.

THE PLATE ▸RUN IT ▸VEX

PL. 24

Game of Life

AUTOMATA / AUTOMATON / 2D TOTALISTIC

John Horton Conway, 1970

live cell with 2 or 3 live neighbours survives
dead cell with exactly 3 live neighbours is born

Two rules on a square grid, and the result is Turing complete.

THE PLATE ▸RUN IT ▸

PL. 25

Rule 30

AUTOMATA / AUTOMATON / 1D ELEMENTARY

Stephen Wolfram, 1983

aᵢ′ = aᵢ₋₁ XOR (aᵢ OR aᵢ₊₁)

A one-dimensional automaton, one line of cells, each new row derived from the one above by looking at three neighbours.

THE PLATE ▸RUN IT ▸VEX

PL. 26

Gray–Scott Reaction–Diffusion

AUTOMATA / PDE / REACTION DIFFUSION

Peter Gray & Stephen Scott, 1983 · after Turing, 1952

∂u/∂t = Dᵤ∇²u − uv² + f(1−u)
∂v/∂t = D᷅∇²v + uv² − (f+k)v

Two chemicals: one fed in, one that consumes it autocatalytically and decays.

THE PLATE ▸RUN IT ▸

PL. 27

Diffusion-Limited Aggregation

AUTOMATA / GROWTH / RANDOM WALK

Thomas Witten & Leonard Sander, 1981

release a random walker; when it touches
the cluster, it sticks there permanently

Particles wander at random until they bump into a growing cluster, then freeze.

THE PLATE ▸RUN IT ▸VEX

PL. 28

Truchet Tiles

LATTICES / TILING / ROTATION SET

Sébastien Truchet, 1704

each cell takes one of k rotations,
chosen by a hash of its coordinates

Father Truchet, a Carmelite friar, catalogued what happens when you tile a plane with a single square split diagonally and let each tile take any of four rotations.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 29

Voronoi Diagram

LATTICES / PARTITION / NEAREST SITE

Georgy Voronoy, 1908 · Descartes, 1644

cell(sᵢ) = { p : ‖p − sᵢ‖ ≤ ‖p − sⱼ‖ ∀j }

Divide the plane so every point belongs to whichever site is nearest.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 30

Circle Packing

LATTICES / PACKING / GREEDY GROWTH

Classical; the greedy method is folklore

place a candidate at random;
grow its radius until it meets another or the edge

The naive algorithm — propose a centre, expand until something stops it, keep it if it is big enough — is not optimal packing in any mathematical sense, but it is the one that makes the drawings.

THE PLATE ▸RUN IT ▸VEX

PL. 31

Ulam Spiral

LATTICES / NUMBER THEORY / SPIRAL

Stanisław Ulam, 1963

walk the integers outward in a square spiral;
mark n when n is prime

Ulam drew this while bored in a meeting.

THE PLATE ▸RUN IT ▸VEX

PL. 32

Cosine Gradient

COLOUR / GRADIENT / COSINE BASIS

Formulated by Inigo Quilez

colour(t) = a + b · cos( 2π · (c·t + d) )
with a, b, c, d ∈ ℝ³

Twelve numbers describe an entire gradient.

THE PLATE ▸RUN IT ▸GLSL TOP · AE · BLINK

PL. 33

Easing Curves

COLOUR / INTERPOLATION / POLYNOMIAL

Robert Penner, 2001 · the polynomials are older

quad  f(t) = t²
cubic f(t) = t³
sine  f(t) = 1 − cos(πt/2)
expo  f(t) = 2^(10(t−1))

The interpolation curves that make motion read as physical rather than mechanical.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 34

Burning Ship Fractal

FRACTALS / ESCAPE TIME / NON-ANALYTIC

Michael Michelitsch & Otto E. Rössler, 1992

z_{n+1} = (|Re(z_n)| + i|Im(z_n)|)² + c

A variation of the Mandelbrot set where the absolute values of the real and imaginary components are taken before squaring at each iteration.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 35

Newton Fractal

FRACTALS / ROOT FINDING / POLYNOMIAL

Sir Isaac Newton, 1669 · Arthur Cayley, 1879

z_{n+1} = z_n − (z_n³ − 1)/(3z_n²)

Newton's method for finding roots applied to the complex polynomial z³ − 1 = 0.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 36

Apollonian Gasket

LATTICES / CIRCLE PACKING / RECURSIVE

Apollonius of Perga, c. 200 BC · Frederick Soddy, 1936

(k₁ + k₂ + k₃ + k₄)² = 2(k₁² + k₂² + k₃² + k₄²)

Repeatedly filling the interstices between mutually tangent circles with smaller tangent circles.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 37

Turmite Automaton

AUTOMATA / AUTOMATON / 2D TURING

Christopher Langton, 1986 · Greg Turk & Jim Propp, 1986 · named by A. K. Dewdney, 1989

(state, color) → (new_color, turn, new_state)

A 2D Turing Machine that moves on a grid, changing the color of cells and turning relative to its orientation.

THE PLATE ▸RUN IT ▸VEX

PL. 38

Gumowski–Mira Map

ATTRACTORS / MAP / BEAM DYNAMICS

Igor Gumowski & Christian Mira, 1980

G(x) = μx + 2(1−μ)x²/(1+x²)
xₙ₊₁ = yₙ + α·yₙ(1 − σ·yₙ²) + G(xₙ)
yₙ₊₁ = −xₙ + G(xₙ₊₁)

Gumowski and Mira were modelling the transverse oscillation of particle beams in CERN’s storage rings when they found this recurrence.

THE PLATE ▸RUN IT ▸VEX

PL. 39

Hopalong

ATTRACTORS / MAP / PIECEWISE ROOT

Barry Martin, 1986

xₙ₊₁ = yₙ − sign(xₙ)·√|b·xₙ − c|
yₙ₊₁ = a − xₙ

Martin’s orbit hops between interleaving rings, and the rings assemble into wallpaper.

THE PLATE ▸RUN IT ▸VEX

PL. 40

Chirikov Standard Map

ATTRACTORS / MAP / KICKED ROTOR

Boris Chirikov, 1969

pₙ₊₁ = pₙ + K·sin θₙ  (mod 2π)
θₙ₊₁ = θₙ + pₙ₊₁  (mod 2π)

The phase portrait of a rotor kicked once per revolution, and the standard test problem of Hamiltonian chaos.

THE PLATE ▸RUN IT ▸VEX

PL. 41

Rössler Attractor

ATTRACTORS / FLOW / FOLDED BAND

Otto Rössler, 1976

ẋ = −y − z
ẏ = x + a·y
ż = b + z(x − c)

Rössler went looking for the simplest possible continuous chaos — one nonlinear term, against the Lorenz system’s two.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 42

Koch Snowflake

FRACTALS / REWRITING / EDGE SUBSTITUTION

Helge von Koch, 1904

each side → four sides, each ⅓ the length
perimeter: L → (4/3)ⁿ·L
dimension: log 4 / log 3 ≈ 1.2619

Von Koch built it to show a curve with no tangent anywhere could come from elementary geometry, not only from the analytic monsters of Weierstrass.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 43

Maurer Rose

CURVES / POLAR / CHORD WALK

Peter M. Maurer, 1987

rose: r = sin(n·θ)
walk: θₖ = k·d°,  k = 0 … 360
join consecutive walk points with chords

Take a rose curve, but instead of drawing it, walk around it in strides of d degrees and join the stops with straight chords.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 44

Cardioid Chord Envelope

CURVES / ENVELOPE / MODULAR CHORDS

Luigi Cremona, 1862 · string-art tradition

N points on a circle: Pₖ = e^(2πik/N)
chord: Pₖ → P₍m·k mod N₎
envelope: an epicycloid with m − 1 cusps

Join every point k on a circle to point m·k, working modulo N, and a curve nobody drew appears where the chords crowd together: the cardioid at m = 2, the nephroid at 3, an…

THE PLATE ▸RUN IT ▸VEX · AE

PL. 45

Euler Spiral

CURVES / PARAMETRIC / LINEAR CURVATURE

Leonhard Euler, 1744 · Alfred Cornu, 1874

κ(s) = sᵏ⁻¹,  k = 2 is the Euler spiral
x(s) = ∫₀ˢ cos(uᵏ/k) du
y(s) = ∫₀ˢ sin(uᵏ/k) du

The curve whose curvature grows in exact proportion to the distance travelled along it — which is what a car traces when the driver turns the wheel at a constant rate.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 46

Pythagoras Tree

FRACTALS / RECURSION / SQUARE PAIR

Albert E. Bosman, 1942

on each square, a right triangle of angle θ
two squares on its legs, scaled cos θ and sin θ
area per level: cos²θ + sin²θ = 1

Bosman, a Dutch engineering teacher, drew it by hand with compasses during the war and published it in a book about the wonder of plane geometry.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 47

L-System Plant

FRACTALS / L-SYSTEM / BRACKETED

Aristid Lindenmayer, 1968 · Przemysław Prusinkiewicz, 1990

X → F−[[X]+X]+F[FX]−X
F → FF
δ = 22.5°

Lindenmayer was a biologist; the grammar was a model of how cells divide and differentiate, and the drawing came later.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 48

Chladni Figures

FIELDS / FIELD / STANDING WAVE

Ernst Chladni, 1787

u(x,y) = sin(mπx)·sin(nπy) + s·sin(nπx)·sin(mπy)
sand gathers where u = 0

Chladni bowed the edge of a sand-dusted brass plate and the grains leapt away from everything that moved, collecting along the still curves — the nodal lines of the standing wave.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 49

Wave Interference

FIELDS / FIELD / SUPERPOSITION

Thomas Young, 1801

ψ(p) = Σᵢ sin(2π·f·|p − sᵢ| − ωt)
nodes where the sum stays zero

Young argued light was a wave by showing two sources produce fringes — bands where the crests reinforce and lines where they always cancel.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 50

Simplex Noise

FIELDS / NOISE / SIMPLEX LATTICE

Ken Perlin, 2001

skew to the simplex lattice: F = (√3−1)/2
n(p) = 70·Σᵢ (½ − |dᵢ|²)⁴ · (gᵢ · dᵢ)

Perlin rebuilt his own noise on a triangular lattice: three corners contribute instead of four, each through a radial kernel, so the cost grows linearly with dimension instead of exponentially.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 51

Ordered Dithering

COLOUR / DITHER / ORDERED MATRIX

Bryce Bayer, 1973

M₂ = [0 2; 3 1] / 4
M₂ₙ = [4M 4M+2; 4M+3 4M+1] / (2n)²
pixel lit where tone > M(x, y)

Bayer proved which threshold matrix spreads the on-dots as evenly as possible at every grey level, and his matrix has been the default ever since — newspaper halftones, 1-bit…

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 52

Error-Diffusion Dithering

COLOUR / DITHER / ERROR DIFFUSION

Robert W. Floyd & Louis Steinberg, 1976

quantise each pixel; pass the error on
ε → 7⁄16 →,  3⁄16 ↙,  5⁄16 ↓,  1⁄16 ↘

Where Bayer consults a fixed matrix, Floyd and Steinberg carry the rounding error to pixels not yet visited, so the mistakes cancel instead of accumulating.

THE PLATE ▸RUN IT ▸VEX

PL. 53

Hitomezashi Stitching

LATTICES / STITCHING / PARITY RULE

Traditional Japanese sashiko · Edo period onward

rows: stitch where (i + aⱼ) is even
columns: stitch where (j + bᵢ) is even
a, b ∈ {0,1} — two random sequences

Hitomezashi — "one-stitch" sashiko — sews single running stitches along the lines of a grid, and the entire cloth is determined by one bit per row and one bit per column: does…

THE PLATE ▸RUN IT ▸VEX

PL. 54

Ford Circles

LATTICES / NUMBER THEORY / TANGENT CIRCLES

Lester R. Ford, 1938 · after John Farey, 1816

for p/q in lowest terms:
centre (p/q, 1/2q²),  radius 1/2q²
tangent ⇔ |p·q′ − p′·q| = 1

Above every rational number sits a circle, tangent to the number line, its size falling with the square of the denominator.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 55

Poisson-Disk Sampling

LATTICES / SAMPLING / BLUE NOISE

Robert Bridson, 2007 · dart throwing after Robert L. Cook, 1986

no two samples closer than r
candidates ring an active sample: r ≤ d < 2r
k failures retire the sample

Random but never crowded: every sample keeps its neighbours at least r away, which is the "blue noise" the eye reads as even texture with no pattern.

THE PLATE ▸RUN IT ▸VEX

PL. 56

Cyclic Cellular Automaton

AUTOMATA / AUTOMATON / CYCLIC STATES

David Griffeath, 1988 · popularised by A. K. Dewdney, 1989

k states in a ring
s → s+1 (mod k) when ≥ θ von Neumann
neighbours already hold s+1

Rock-paper-scissors on a grid: every state is eaten by its successor, and the ring closes so nobody wins.

THE PLATE ▸RUN IT ▸

PL. 57

Abelian Sandpile

AUTOMATA / AUTOMATON / SELF-ORGANISED

Per Bak, Chao Tang & Kurt Wiesenfeld, 1987

z ≥ 4 → z −= 4, one grain to each neighbour
grains leave at the boundary
topple order does not matter — the pile is abelian

Drop sand on one spot forever.

THE PLATE ▸RUN IT ▸

PL. 58

Ising Model

AUTOMATA / STATISTICAL / SPIN LATTICE

Wilhelm Lenz, 1920 · Ernst Ising, 1925 · Metropolis et al., 1953

E = −Σ⟨ij⟩ sᵢ·sⱼ − B·Σ sᵢ,  s = ±1
flip with probability min(1, e^(−ΔE/T))
T_c = 2 / ln(1 + √2) ≈ 2.269 at B = 0

Ising solved the one-dimensional chain for his 1925 thesis, found no phase transition, and concluded the model explained nothing; Onsager proved in 1944 that two dimensions transition sharply at T_c.

THE PLATE ▸RUN IT ▸

PL. 59

Brian’s Brain

AUTOMATA / AUTOMATON / 3-STATE

Brian Silverman, 1984

off → firing with exactly 2 firing neighbours
firing → refractory → off
(Moore neighbourhood)

Conway’s rules with a refractory period: a cell that fires must rest one generation before it can fire again, the way a neuron must.

THE PLATE ▸RUN IT ▸

PL. 60

Double Pendulum

CURVES / MECHANICS / CHAOTIC

Classical Lagrangian mechanics · after Euler and Lagrange

two rods, two bobs, one pivot
θ̈₁, θ̈₂ from the Euler–Lagrange equations
no closed form — the motion must be integrated

One pendulum is the clock; two, hinged together, are chaos you can build with a hacksaw.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 61

Three-Body Figure-Eight

CURVES / MECHANICS / CHOREOGRAPHY

Cristopher Moore, 1993 · Chenciner & Montgomery, 2000

ẍᵢ = Σⱼ (xⱼ − xᵢ)/|xⱼ − xᵢ|³
three equal masses, one shared orbit
x₁(t) = x₂(t + T/3) = x₃(t + 2T/3)

Three equal masses chasing each other around a single figure-eight, each a third of a period behind the next — a choreography, in the technical term the discovery created.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 62

Space Colonisation

LATTICES / GROWTH / SPACE COLONISATION

Adam Runions, Brendan Lane & Przemysław Prusinkiewicz, 2007

each attractor pulls its nearest node
nodes step toward the mean pull
attractors die inside the kill radius

Scatter points where a plant could grow, then let the branches compete for them: every attractor tugs on its nearest node, each node steps toward the average tug, and any…

THE PLATE ▸RUN IT ▸VEX

PL. 63

Metaballs

FIELDS / ISO-SURFACE / SUMMED FALLOFF

James Blinn, 1982

D(r) = b·e^(−a·r²)
F(p) = Σᵢ D(|p − cᵢ|)
draw the curves where F = threshold

Blinn was rendering electron density maps for molecular models and needed surfaces that merged where atoms overlapped.

THE PLATE ▸RUN IT ▸GLSL TOP · AE

PL. 64

Curl Noise

FIELDS / FIELD / DIVERGENCE-FREE

Robert Bridson, Jim Houriham & Marcus Nordenstam, 2007

v = ∇ × ψ,  in 2D: v = (∂ψ/∂y, −∂ψ/∂x)
∇ · v = 0 identically

Take a noise field, call it a stream function, and use its perpendicular gradient as a velocity.

THE PLATE ▸RUN IT ▸VEX

PL. 65

Lyapunov Fractal

FRACTALS / EXPONENT / FORCED LOGISTIC

Mario Markus & Benno Hess, 1989

xₙ₊₁ = rₙ·xₙ(1 − xₙ),  rₙ ∈ {a, b} by a repeating word
λ = lim (1/N)·Σ ln|rₙ(1 − 2xₙ)|
λ < 0 stable · λ > 0 chaotic

Drive the logistic map with two growth rates instead of one, alternating between them on a fixed repeating word, and plot the Lyapunov exponent over the (a, b) plane.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 66

Buddhabrot

FRACTALS / ESCAPE ORBIT / DENSITY

Melinda Green, 1993

for c that escape: plot every zₙ of the orbit
z₀ = 0,  zₙ₊₁ = zₙ² + c
density of visits, not escape time

The Mandelbrot set rendered inside out.

THE PLATE ▸RUN IT ▸VEX

PL. 67

Penrose Tiling

LATTICES / TILING / APERIODIC

Roger Penrose, 1974 · after Robinson and de Bruijn

deflate each Robinson triangle by φ = (1+√5)/2
acute → one acute + one obtuse
obtuse → two obtuse + one acute

Two rhombs that tile the plane and can never tile it periodically.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 68

Wave Function Collapse

LATTICES / CONSTRAINT / MIN ENTROPY

Maxim Gumin, 2016 · analysed by Karth & Smith, 2017

every cell holds the set of tiles still possible
observe: collapse the lowest-entropy cell
propagate: strike neighbours that no longer fit

A constraint solver that behaves like a texture generator.

THE PLATE ▸RUN IT ▸VEX

PL. 69

Weierstrass Function

CURVES / SERIES / PATHOLOGICAL

Karl Weierstrass, 1872 · G. H. Hardy, 1916

W(x) = Σ aⁿ cos(bⁿ π x)
0 < a < 1, b odd integer, ab > 1 + 3π/2  (Weierstrass, 1872)
0 < a < 1, b real, ab ≥ 1  (Hardy, 1916)
continuous everywhere · differentiable nowhere

The function that ended the belief that a continuous curve must have a tangent somewhere — Weierstrass read it to the Berlin Academy and the century’s geometers called it a scandal.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 70

Takagi Curve

CURVES / SERIES / MIDPOINT TENT

Teiji Takagi, 1901

T(x) = Σ wⁿ s(2ⁿ x)
s(x) = distance from x to the nearest integer
w = ½ is the blancmange

Takagi’s simpler route to Weierstrass’s scandal, published as "a simple example of the continuous function without derivative": stack tent maps, each twice the frequency and a…

THE PLATE ▸RUN IT ▸VEX · AE

PL. 71

Gosper Flowsnake

FRACTALS / L-SYSTEM / HEX SUBSTITUTION

William Gosper, 1973 · via Martin Gardner

A → A−B−−B+A++AA+B−
B → +A−BB−−B−A++A+B
turn 60° · both symbols step forward

Gosper’s space-filling curve on the hexagonal lattice, which Gardner introduced to the world as the "flowsnake" — a spoonerism of snowflake — and the name stuck.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 72

Lévy C Curve

FRACTALS / REWRITING / SYMMETRIC FOLD

Ernesto Cesàro, 1906 · Georg Faber, 1910 · Paul Lévy, 1938

F → +F−−F+   (turn θ, 45° is the C)
every segment folds outward each generation
dimension → 2 as the folds close

Fold every segment of a line into a right-angle tent, forever, and the C curve appears — Cesàro described it first and Faber analysed the same family, both for its…

THE PLATE ▸RUN IT ▸VEX · AE

PL. 73

Gibbs Phenomenon

CURVES / SERIES / FOURIER PARTIAL SUM

Henry Wilbraham, 1848 · J. Willard Gibbs, 1899 · named by Maxime Bôcher, 1906

fₙ(x) = (4/π) Σₖ₌₁ⁿ sin((2k−1)x)/(2k−1)
peak → (2/π)·Si(π) ≈ 1.178980
overshoot → 0.0894899 of the jump
it never dies — it only narrows

Sum the odd harmonics of a square wave and the corners grow horns: about nine per cent of the jump, and adding terms makes them thinner but never shorter — the partial sums…

THE PLATE ▸RUN IT ▸VEX · AE

PL. 74

Recamán Sequence

CURVES / SEQUENCE / GREEDY WALK

Bernardo Recamán Santos, 1991 · via N. J. A. Sloane

a₀ = s
aₙ = aₙ₋₁ − n   if positive and unvisited
aₙ = aₙ₋₁ + n   otherwise

Step backwards if you can, forwards if you must, with strides that grow by one each time.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 75

Ueda Attractor

ATTRACTORS / FORCED OSCILLATOR / SECTION

Yoshisuke Ueda, 1961

ẍ + k·ẋ + x³ = B·cos t
the Poincaré section: (x, ẋ) sampled once per drive period
k = 0.05, B = 7.5 is Ueda’s own set

The oldest recorded strange attractor, and nobody was allowed to say so.

THE PLATE ▸RUN IT ▸VEX

PL. 76

Van der Pol Oscillator

ATTRACTORS / FLOW / LIMIT CYCLE

Balthasar van der Pol, 1926

ẍ − μ(1 − x²)ẋ + x = 0
drawn as the phase portrait (x, ẋ)
μ → 0 a circle · μ large a relaxation oscillation

Damping that changes sign: inside |x| < 1 the term feeds the oscillation, outside it drains one.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 77

Chua’s Circuit

ATTRACTORS / CIRCUIT / DOUBLE SCROLL

Leon O. Chua, 1983 · simulated by Takashi Matsumoto

ẋ = α(y − x − f(x))
ẏ = x − y + z
ż = −β·y
f(x) = m₁x + ½(m₀ − m₁)(|x+1| − |x−1|)

The first chaotic system built deliberately rather than stumbled upon.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 78

Langford Attractor

ATTRACTORS / FLOW / TORUS BIFURCATION

William F. Langford, 1984

ẋ = (z − b)x − d·y
ẏ = d·x + (z − b)y
ż = c + a·z − z³/3 − (x² + y²)(1 + e·z) + f·z·x³

A torus that folds into a shell — the trajectory winds around a rising bowl, turns over its rim and drops back through the middle.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 79

Gingerbreadman Map

ATTRACTORS / MAP / PIECEWISE LINEAR

Robert L. Devaney, 1984

xₙ₊₁ = 1 − yₙ + |xₙ|
yₙ₊₁ = xₙ
area-preserving · piecewise linear

One absolute value is the entire nonlinearity — no multiplication anywhere — and it is enough for chaos.

THE PLATE ▸RUN IT ▸VEX

PL. 80

Zaslavsky Web Map

ATTRACTORS / KICKED ROTOR / WEB

George M. Zaslavsky and colleagues, 1986

uₙ₊₁ = (uₙ + K·sin vₙ)·cos α + vₙ·sin α
vₙ₊₁ = −(uₙ + K·sin vₙ)·sin α + vₙ·cos α
α = 2π/q

A linear oscillator kicked in step with its own period, and the chaos it produces does not stay in a pocket — it joins up into a web that reaches across the whole plane, however weak the kick.

THE PLATE ▸RUN IT ▸VEX

PL. 81

Tinkerbell Map

ATTRACTORS / MAP / QUADRATIC

origin unrecorded · documented by Nusse & Yorke, 1994

xₙ₊₁ = xₙ² − yₙ² + a·xₙ + b·yₙ
yₙ₊₁ = 2·xₙ·yₙ + c·xₙ + d·yₙ

A quadratic map whose attractor is a hooked crescent, and one of the rare entries here where the honest provenance is that nobody knows.

THE PLATE ▸RUN IT ▸VEX

PL. 82

Sprott Quadratic Map

ATTRACTORS / MAP / SEARCHED, NOT DESIGNED

Julien Clinton Sprott, 1993

xₙ₊₁ = a₀ + a₁x + a₂x² + a₃xy + a₄y + a₅y²
yₙ₊₁ = a₆ + a₇x + a₈x² + a₉xy + a₁₀y + a₁₁y²
twelve coefficients, each a letter A–Y over −1.2 … 1.2

Sprott’s idea was to stop designing attractors and search for them instead: pick twelve coefficients at random, iterate, test whether the orbit is bounded and its Lyapunov…

THE PLATE ▸RUN IT ▸VEX

PL. 83

Moiré Interference

FIELDS / FIELD / BEAT FREQUENCY

Lord Rayleigh, 1874 · the effect is far older than its physics

g(θ) = ½ + ½·tanh(s·cos θ)/tanh s
θ₁ = 2πf·(p·n̂₁),  θ₂ = 2πfr·(p·n̂₂) − φ
T(p) = g(θ₁)·g(θ₂)
fringes where θ₁ − θ₂ ≡ 0 (mod 2π),  spacing d / 2sin(α/2)

Lay one ruled grating over another, turn it a hair, and a pattern appears that is in neither of them.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 84

Domain Colouring

FIELDS / FIELD / COMPLEX ARGUMENT

Frank A. Farris named it, 1997 · the method is older than the name

f(z) = ∏ₖ(z − aₖ) / ∏ⱼ(z − bⱼ)
arg f = Σ arg(z − aₖ) − Σ arg(z − bⱼ)
log|f| = Σ log|z − aₖ| − Σ log|z − bⱼ|
hue = arg f / 2π,  contours at frac(log₂|f|)

A complex function takes a plane to a plane, so its graph needs four dimensions and cannot be drawn.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 85

Hyperbolic Tiling {p,q}

FIELDS / TILING / REFLECTION GROUP

Eugenio Beltrami, 1868 · Henri Poincaré, 1882 · H. S. M. Coxeter, 1957

{p,q} exists in the disk ⟺ (p−2)(q−2) > 4
qₘᵢₙ(p) = ⌊4/(p−2)⌋ + 3,  the slider sets q − qₘᵢₙ
R² = cos(π/p + π/q) / cos(π/p − π/q)
edge mirror: centre c = (R²+1)/(2R cos(π/p)),  radius √(c²−1)

The whole hyperbolic plane fits inside a circle if you agree that distance grows without bound as you approach the rim.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 86

Gabor Noise

FIELDS / NOISE / SPARSE CONVOLUTION

Lagae, Lefebvre, Drettakis & Dutré, 2009 · kernel after Dennis Gabor, 1946

g(x,y) = K·e^(−πa²(x²+y²))·cos(2πF₀(x cos ω₀ + y sin ω₀))
N(p) = Σᵢ wᵢ·g(p − pᵢ),  pᵢ a Poisson process of density λ
ĝ is two Gaussians at ±F₀(cos ω₀, sin ω₀)

Perlin noise gives you a band of frequencies and no say in which.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 87

Magnetic Pendulum Basins

FRACTALS / BASIN / DAMPED PENDULUM

Grebogi, McDonald, Ott & Yorke, 1983 · the pendulum exhibit has no single author

ẍ + b·ẋ + k·x = Σₙ C·(Xₙ − x) / (|Xₙ − x|² + h²)^(5/2)
start at rest, colour by which magnet it reaches
shade by the step at which the answer stopped changing

Hang a magnet on a string over three more arranged in a triangle, pull it aside, let go.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 88

Buffon’s Needle

LATTICES / MONTE CARLO / NEEDLE DROP

Georges-Louis Leclerc, Comte de Buffon, 1777 · Pierre-Simon Laplace, 1812

P(cross) = 2ℓ/(πt),  ℓ ≤ t
after N drops, H hits:  π ≈ 2ℓN / (tH)

Rule a floor with parallel lines spaced t apart and drop a needle of length ℓ ≤ t onto it, over and over, at a uniform position and a uniform angle.

THE PLATE ▸RUN IT ▸VEX

PL. 89

Fibonacci Word Fractal

FRACTALS / REWRITING / MORPHIC WORD

Alexis Monnerot-Dumaine, 2009 · after the Fibonacci word (Morse & Hedlund, 1940)

w = fixed point of μ: 0→01, 1→0
letter k of w, 1-indexed, moving forward one step:
  0 → turn left if k even, right if k odd
  1 → straight

Take the Fibonacci word — the infinite string 0100101001001… that never changes under the substitution 0→01, 1→0 — and walk it with a turtle: one step forward per letter, and…

THE PLATE ▸RUN IT ▸VEX · AE

PL. 90

Forest Fire Model

AUTOMATA / LATTICE / SELF-ORGANISED

Per Bak, Kan Chen & Chao Tang, 1990 · lightning: Barbara Drossel & Franz Schwabl, 1992

burning → empty
tree → burning if any neighbour burns, else burning with probability f
empty → tree with probability p

Three states on a lattice and two probabilities, and the result is a fire whose sizes follow a power law nobody tuned it to produce.

THE PLATE ▸RUN IT ▸

PL. 91

Wireworld

AUTOMATA / AUTOMATON / FOUR STATE

Brian Silverman, 1987

empty → empty
electron head → electron tail
electron tail → conductor
conductor → electron head if 1 or 2 of its 8 neighbours are heads

Four states and one counting rule, and the lattice becomes a circuit board.

THE PLATE ▸RUN IT ▸

PL. 92

Seashell Pigmentation

LATTICES / REACTION / SPACE-TIME

Alfred Gierer & Hans Meinhardt, 1972 · shells: Hans Meinhardt & Martin Klingler, 1987

∂a/∂t = s·(a²/(h·(1+γc)·(1+κa²)) + b) − rₐ·a + Dₐ·∂²a/∂x²
∂h/∂t = s·a² − r_h·h + D_h·∂²h/∂x²
∂c/∂t = r_c·(a − c)

A shell is a record of its own growth.

THE PLATE ▸RUN IT ▸VEX

PL. 93

Boids

LATTICES / AGENTS / THREE RULES

Craig Reynolds, 1987

separation: steer away from neighbours closer than d
alignment: steer toward the mean heading of neighbours
cohesion: steer toward the mean position of neighbours

Three rules, each of them local, and a flock appears that none of them mentions.

THE PLATE ▸RUN IT ▸VEX

PL. 94

Physarum Transport

LATTICES / AGENTS / CHEMOTAXIS

Jeff Jones, 2010

sense at −θ, 0, +θ, distance o ahead
turn by ±α toward the strongest trail
move forward, deposit, then the field diffuses and decays

A slime mould has no nervous system and solves shortest-path problems anyway, and Jones showed in 2010 that almost nothing is required to reproduce it: a particle with three…

THE PLATE ▸RUN IT ▸VEX

PL. 95

Grown Colour Pattern

LATTICES / GROWTH / PRECEDENCE ORDER

Lawrence J. Mazlack, 1976

weightⱼ = Σᵢ cᵢ·dᵢⱼ   over the precoloured points i
fill in ascending weight; at each point draw from the colours
compatible with every coloured neighbour, weighted by the matrix

Every other way of making a coloured picture in 1976 drew a figure and coloured it afterwards.

THE PLATE ▸RUN IT ▸VEX

PL. 96

Hofstadter Butterfly

FRACTALS / SPECTRUM / RATIONAL FLUX

Douglas R. Hofstadter, 1976 · Harper’s equation, P. G. Harper, 1955

ψₘ₊₁ + ψₘ₋₁ + λ·cos(2πφm + k_y)·ψₘ = E·ψₘ
φ = p/q:  tr Mq(E, k_y) = P(E) − 2(λ/2)^q·cos(q k_y)
spectrum ⇔ |P(E)| ≤ 2 + 2(λ/2)^q

Put a crystal in a magnetic field and the answer turns on whether the flux through one cell is a rational multiple of the flux quantum — not nearly rational, exactly rational.

THE PLATE ▸RUN IT ▸VEX

PL. 97

Rauzy Fractal

FRACTALS / SUBSTITUTION / EIGENPLANE PROJECTION

Gérard Rauzy, 1982

σ: 1→12, 2→13, 3→1
M (letter counts) = [[1,1,1],[1,0,0],[0,1,0]]
plot Σᵢ₌₁ⁿ e_{wᵢ}, projected onto the contracting eigenplane of M

Iterate the substitution 1→12, 2→13, 3→1 from a single "1" and it converges to one infinite word — the Tribonacci word, the three-letter sibling of the Fibonacci word two plates over.

THE PLATE ▸RUN IT ▸VEX

PL. 98

Ammann–Beenker Tiling

LATTICES / TILING / CUT AND PROJECT

Robert Ammann, 1977 · F. P. M. Beenker, 1982, independently

V = { Σ nₖeₖ : n ∈ Z⁴, Σ nₖeₖ* ∈ Ω }
eₖ = (cos kπ/4, sin kπ/4),  eₖ* = (cos 3kπ/4, sin 3kπ/4)
Ω = π⊥([0,1]⁴), the regular octagon of inradius (1+√2)/2

The eight-fold quasicrystal: squares and 45° rhombs, in a pattern that never repeats.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 99

Wave Equation on a Lattice

LATTICES / PDE / DAMPED WAVE

Jean le Rond d’Alembert, 1747 (the string) · Leonhard Euler, 1761 (the membrane)

∂²u/∂t² + γ ∂u/∂t = c²∇²u + F(x, t)

uⁿ⁺¹ = [ 2uⁿ − (1−d)uⁿ⁻¹ + C²∇²ₕuⁿ ] / (1+d)
C = cΔt/h ≤ 1/√2,  d = γΔt/2

d’Alembert’s 1747 memoir on the stretched string is where the wave equation first appears in print, and he solved it in one space dimension: the answer is two arbitrary shapes…

THE PLATE ▸RUN IT ▸

PL. 100

Lenia

AUTOMATA / LATTICE / CONTINUOUS CA

Bert Wang-Chak Chan, 2019 · preprint 2018

U = K ∗ A,   K(n) = K_S(‖n‖₂ / R) / |K_S|
K_S(r; β) = β_⌊Br⌋ · K_C(Br mod 1),   K_C(r) = exp(4 − 4 / (4r(1−r)))
G(u; μ, σ) = 2·exp(−(u−μ)² / (2σ²)) − 1
A^(t+Δt) = [ A^t + Δt · G(U) ]₀¹,   Δt = 1/T

The Game of Life with every discrete thing in it taken to the limit.

THE PLATE ▸RUN IT ▸

PL. 101

Kleinian Group Limit Set

FRACTALS / LIMIT SET / MÖBIUS PAIR

Felix Klein & Henri Poincaré, 1883 · rendering recipe after David Mumford, Caroline Series & David Wright, 2002

A, B ∈ SL(2,ℂ):  tr(A) = 2 (parabolic)
tr(B) = μ,  tr(AB) = μ + 2i
(forces tr(ABA⁻¹B⁻¹) = −2, a parabolic commutator)

Two Möbius maps generate a free group acting on the sphere; its limit set is the closure of every accumulation point of every orbit under every word in the two maps and their…

THE PLATE ▸RUN IT ▸VEX

PL. 102

Gyroid Surface

FIELDS / SURFACE / TRIPLY PERIODIC

Alan H. Schoen, 1970 · nodal form: von Schnering & Nesper, 1991

g(x, y, z) = sin x·cos y + sin y·cos z + sin z·cos x
walls where |g| < δ, sliced on z = ω·t

Schoen found the gyroid at NASA looking for strong, light lattice structures: a triply periodic minimal surface with no straight lines, no planar symmetries and no…

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 103

Barkley Excitable Medium

AUTOMATA / PDE / EXCITABLE MEDIUM

Dwight Barkley, 1991

∂u/∂t = ε⁻¹·u(1−u)(u − (v+b)/a) + ∇²u
∂v/∂t = u − v

A medium where every point can fire once and then must rest: u is the excitation racing through, v the recovery chasing it, and the whole chemistry of an excitable reaction is…

THE PLATE ▸RUN IT ▸

PL. 104

Kuramoto Oscillator Lattice

LATTICES / LATTICE / COUPLED PHASES

Yoshiki Kuramoto, 1975

θ̇ᵢⱼ = ωᵢⱼ + (K/4)·Σ₍ᵤᵥ₎ sin(θᵤᵥ − θᵢⱼ)
ωᵢⱼ frozen from N(μ, σ);   r = |⟨e^{iθ}⟩|

Kuramoto asked when a crowd of oscillators, each with its own natural pace, falls into step — fireflies, pacemaker cells, applauding hands.

THE PLATE ▸RUN IT ▸

PL. 105

Halvorsen Attractor

ATTRACTORS / FLOW / CYCLIC SYMMETRY

Arne Dehli Halvorsen · documented by J. C. Sprott, 2003

ẋ = −a·x − 4y − 4z − y²
ẏ = −a·y − 4z − 4x − z²
ż = −a·z − 4x − 4y − x²

One equation written three times, each a cyclic shuffle of the last: x feeds y feeds z feeds x, with nothing to break the symmetry.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 106

Rabinovich–Fabrikant System

ATTRACTORS / FLOW / WAVE INTERACTION

Mikhail Rabinovich & Anatoly Fabrikant, 1979

ẋ = y(z − 1 + x²) + γ·x
ẏ = x(3z + 1 − x²) + γ·y
ż = −2z(α + xy)

Written to describe waves misbehaving in a nonequilibrium plasma, and notorious among the classic flows for how it misbehaves itself: the system is multistable, with limit…

THE PLATE ▸RUN IT ▸VEX · AE

PL. 107

Sierpiński Carpet

FRACTALS / FRACTAL / SELF-SIMILAR

Wacław Sierpiński, 1916

divide [0,1]² into 3×3, remove the centre, recurse
x ∈ carpet ⇔ no k has ⌊3ᵏx⌋ ≡ ⌊3ᵏy⌋ ≡ 1 (mod 3)
dim_H = log 8 / log 3 ≈ 1.8928

Sierpiński built it as a curve containing a continuous image of every curve — a universal object, published two years before anyone could draw more than three levels of it by hand.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 108

Catenoid–Helicoid Family

CURVES / SURFACE / ISOMETRIC BEND

Leonhard Euler, 1744 · Jean Baptiste Meusnier, 1776 · the family: Ossian Bonnet, 1853

x = cos θ·sinh u·sin v + sin θ·cosh u·cos v
y = −cos θ·sinh u·cos v + sin θ·cosh u·sin v
z = u·cos θ + v·sin θ

The catenoid is the soap film between two rings, the first minimal surface anyone found after the plane; the helicoid is the spiral ramp, found by Meusnier thirty years later.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 109

Collatz Hailstone Tree

CURVES / ARITHMETIC / OPEN CONJECTURE

Lothar Collatz, 1937 · surveyed by Jeffrey Lagarias, 1985 · rendering after Edmund Harriss

n → n/2 (n even),   n → 3n + 1 (n odd)
every orbit drawn backward from the root at 1
bend +Δθ per even step, −2Δθ per odd

Take any number: halve it if even, triple-and-add-one if odd, repeat.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 110

Langton Self-Reproducing Loop

AUTOMATA / AUTOMATON / SELF-REPRODUCING

Christopher G. Langton, 1984

8 states, von Neumann neighbourhood, 219 transitions CNESW → C′
rotation symmetric; replication period 151 generations

Von Neumann proved self-reproduction needs no magic with a machine of 29 states nobody could run; Codd cut it to 8; Langton cut the idea to its heart — a loop of sheathed wire…

THE PLATE ▸RUN IT ▸

PL. 111

Vicsek Fractal

FRACTALS / FRACTAL / DISTANCE ESTIMATE

Tamás Vicsek, 1989

divide [0,1]² into 3×3, keep the four corners and the centre, recurse
N(n) = 5ⁿ cells of side 3⁻ⁿ, area(n) = (5/9)ⁿ
dim_H = log 5 / log 3 ≈ 1.4650

Divide a square into a three-by-three grid.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 112

Lloyd Relaxation

LATTICES / RELAXATION / CENTROIDAL VORONOI

Stuart P. Lloyd, 1957 · published 1982

cell(sᵢ) = ⋂ⱼ≠ᵢ { x : (x − sᵢ)·(sⱼ − sᵢ) ≤ ‖sⱼ − sᵢ‖²/2 }
cᵢ = ∫cell x dx / ∫cell dx
sᵢ ← sᵢ + ω(cᵢ − sᵢ),  until mean‖cᵢ − sᵢ‖ < tol

Scatter points at random, give every point the territory nearer to it than to any other, then move each point to the middle of its own territory and cut the territories again.

THE PLATE ▸RUN IT ▸VEX

PL. 113

Pappus Chain

CURVES / ARBELOS / CIRCLE INVERSION

Pappus of Alexandria, c. 320

arbelos: three semicircles, pairwise tangent, on one line
chain circle Cₙ tangent to Cₙ₋₁ and to both bounding arcs
height of centre(Cₙ) above the line = 2n · radius(Cₙ)

Split a diameter at one point and raise three semicircles on the three spans it makes: the whole span, and its two pieces.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 114

Lissajous Knot

CURVES / PARAMETRIC / SPACE CURVE

M. G. V. Bogle, J. E. Hearst, V. F. R. Jones and L. Stoilov, 1994 · curve form after Nathaniel Bowditch, 1815 and Jules Lissajous, 1857

x(u) = cos(n₁u)
y(u) = cos(n₂u + φ₂)
z(u) = cos(n₃u + φ₃)
u ∈ [0, 2π);  n₁, n₂, n₃ pairwise coprime

Three perpendicular standing waves instead of two, one cosine per axis at its own integer frequency.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 115

Lamb–Oseen Vortices

FIELDS / ODE / POINT VORTICES

Hermann von Helmholtz, 1858 & Gustav Kirchhoff, 1876 · Carl Wilhelm Oseen, 1912 & Horace Lamb, 1932

u(x) = Σⱼ (Γⱼ/2π) · ẑ × (x − xⱼ)/|x − xⱼ|² · [1 − exp(−|x − xⱼ|²/a²)]
a²(t) = a₀² + 4νt        (the Lamb–Oseen core, spreading by diffusion)
ẋᵢ = u(xᵢ) with the i-th term omitted — a vortex does not move itself

Helmholtz showed in 1858 that a vortex in an ideal fluid is permanent: it travels with the flow and carries its circulation with it forever, so a handful of them becomes a…

THE PLATE ▸RUN IT ▸VEX

PL. 116

Oklab Colour Space

COLOUR / COLOUR SPACE / CARTESIAN LERP

Björn Ottosson, 2020

sRGB → linear: c ≤ 0.04045 ? c/12.92 : ((c+0.055)/1.055)^2.4
linear → Oklab (Ottosson 2020): (l,m,s) = M₁·(r,g,b); (l′,m′,s′) = (∛l,∛m,∛s); (L,a,b) = M₂·(l′,m′,s′)
CIELAB (D65): L* = 116 f(Y/Yn) − 16, a* = 500(f(X/Xn) − f(Y/Yn)), b* = 200(f(Y/Yn) − f(Z/Zn)), f(t) = ∛t for t > (6/29)³

Three rows of swatches walk between the same two colours, one row per interpolation space.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 117

AM Halftone Screen

COLOUR / SCREEN / AMPLITUDE MODULATION

W. H. Fox Talbot, 1852 · commercial screens by Frederic Ives and the Levy brothers, 1880s-90s

K = 1 − max(R,G,B)
(C,M,Y) = (1−R−K, 1−G−K, 1−B−K) / (1−K)
per screen (θ = 15°, 75°, 0°, 45°): r = ½·cell·√coverage

Talbot patented breaking a photographic tone into a screen of dots in 1852, using a piece of gauze held between the negative and the plate; Ives, and then Ives working…

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 118

Planckian Locus

COLOUR / RADIANCE / SPECTRAL LOCUS

Max Planck, 1900 · the colour matching fit: Wyman, Sloan & Shirley, 2013

B_λ(λ,T) = (2hc²/λ⁵) / (exp(hc/λk_BT) − 1)
X = ∫ B_λ x̄(λ) dλ,  Y = ∫ B_λ ȳ(λ) dλ,  Z = ∫ B_λ z̄(λ) dλ
RGB = M_sRGB · (X, Y, Z) / Y

Hot matter glows, and Planck found in 1900 exactly how much of each wavelength it sends out.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 119

Prism Dispersion

COLOUR / REFRACTION / SPECTRAL RAY FAN

Ibn Sahl, 984 · Willebrord Snellius, c. 1621 · Isaac Newton, 1704 · Wilhelm Sellmeier, 1871

n²(λ) = 1 + Σᵢ Bᵢλ² / (λ² − Cᵢ)      Sellmeier
sin θ₁ = n(λ) sin θ₂                  Snell, at both faces
δ(λ) = θ₁ + θ₄ − A                    deviation through apex A

White light meets a triangular prism and leaves it as a fan, because the refractive index of glass is not one number: it falls with wavelength, so violet is bent harder than…

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 120

Torus Knot

CURVES / PARAMETRIC / TORUS WINDING

classical knot theory · torus knots tabulated by P. G. Tait, 1876-1877 · genus formula: Herbert Seifert, 1935

x(φ) = (R + r·cos(qφ))·cos(pφ)
y(φ) = (R + r·cos(qφ))·sin(pφ)
z(φ) = r·sin(qφ)
φ ∈ [0, 2π);  gcd(p,q) = 1 ⇒ knot, else a link of gcd(p,q) components
genus = (p−1)(q−1)/2   (Seifert, 1935)

A curve traced on the surface of a torus, winding p times around the axis and q times around the tube, closing after phi runs once from 0 to 2 pi because both windings are whole numbers.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 121

Braid Group Word

CURVES / GROUP / STRAND DIAGRAM

Emil Artin, 1925 · closure after J. W. Alexander, 1923

Bₙ = ⟨σ₁ … σₙ₋₁ | σᵢσⱼ = σⱼσᵢ for |i − j| ≥ 2,  σᵢσᵢ₊₁σᵢ = σᵢ₊₁σᵢσᵢ₊₁⟩
w = a word in σᵢ and σᵢ⁻¹, one crossing per letter
closure ŵ: level k at the end of w rejoined to level k at its start

Take n strands hanging side by side and cross them one adjacent pair at a time.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 122

Hopf Fibration

CURVES / FIBRATION / STEREOGRAPHIC PROJECTION

Heinz Hopf, 1931 · the circles on the torus: Yvon Villarceau, 1848

fibre over (θ, φ):  z₁ = cos(θ/2)·exp(i(ψ + φ)),  z₂ = sin(θ/2)·exp(iψ),  ψ ∈ [0, 2π)
h(z₁, z₂) = (2 z₁ z̄₂, |z₁|² − |z₂|²) ∈ S²,  the Hopf map
stereographic from (0, 0, 0, 1):  P = (x₁, x₂, x₃)/(1 − x₄)

The three-sphere is the set of points one unit from the origin in four-dimensional space.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 123

Borromean Rings

CURVES / LINK / BRUNNIAN TRIPLE

Traditional — the three-ring motif is attested in Buddhist art from the second century, in Viking imagery by the ninth and in Japanese heraldry by the twelfth, all centuries before it became the crest of the Borromeo family of Milan in the fifteenth century, the name this plate uses · non-circularity proved by Michael Freedman and Richard Skora, 1987

A(t) = (cos t,  e·sin t,  0)
B(t) = (0,  cos t,  e·sin t)
C(t) = (e·sin t,  0,  cos t)
t ∈ [0, 2π),  0 < e < 1  (cyclic permutation x→y→z→x carries A→B→C)

Three loops, no two of which are linked with each other, that cannot be pulled apart once all three are present — cut any one and the other two fall away trivially, because…

THE PLATE ▸RUN IT ▸VEX · AE

PL. 124

Enneper Surface

CURVES / SURFACE / WEIERSTRASS-ENNEPER DATA

Alfred Enneper, 1864 · the representation: Karl Weierstrass, 1866

x = u − u³/3 + uv²
y = −(v − v³/3 + u²v)
z = u² − v²
Weierstrass–Enneper data (f, g) = (1, z);  mean curvature H ≡ 0

Feed almost any pair of holomorphic functions through the representation Weierstrass set out in 1866 and the surface that comes back has zero mean curvature everywhere — the…

THE PLATE ▸RUN IT ▸VEX · AE

PL. 125

Schwarz P Surface

FIELDS / SURFACE / TRIPLY PERIODIC

Hermann Amandus Schwarz, 1865 · nodal form: von Schnering & Nesper, 1991

g(x, y, z) = cos x + cos y + cos z
walls where |g| < δ, sliced on z = ω·t

H.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 126

Schwarz D Surface

FIELDS / SURFACE / TRIPLY PERIODIC

H. A. Schwarz, 1865 · nodal form: von Schnering & Nesper, 1991

d(x, y, z) = sin x·sin y·sin z + sin x·cos y·cos z + cos x·sin y·cos z + cos x·cos y·sin z
walls where |d| < δ, sliced on z = ω·t

Schwarz solved the Plateau problem for four consecutive edges of a regular tetrahedron in 1865, and the surface spanning that frame extends by repeated reflection across its…

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 127

Metameric Blacks

COLOUR / COLOUR MATCHING / NULL SPACE

Günter Wyszecki, 1953 · the colour matching fit: Wyman, Sloan & Shirley, 2013

A = [x̄(λ_k) ; ȳ(λ_k) ; z̄(λ_k)],  a 3 × N matrix
b ∈ null A,  dim null A = N − 3      the metameric blacks
s± = s ± α b   ⇒   A s+ = A s− ,  α at the bound s ± α b ≥ 0

Every other plate in this order draws a difference.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 128

Seifert Surface

CURVES / SPANNING SURFACE / SEIFERT ALGORITHM

Herbert Seifert, 1935

smooth every crossing with the orientation → disjoint Seifert circles
span each circle with a disc at its own height, join with a half-twisted band per crossing
χ = discs − bands,   genus = (2 − χ − boundary components) / 2
the (2,q) diagram: 2 discs, q bands, χ = 2 − q

Seifert proved in 1935 that every knot bounds a surface, and gave an algorithm that builds one.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 129

sRGB Gamut

COLOUR / CHROMATICITY / GAMUT BOUNDARY

the CIE 1931 system: T. Smith & J. Guild, 1931 · sRGB: M. Anderson, R. Motta, S. Chandrasekar & M. Stokes, 1996 · the colour matching fit: Wyman, Sloan & Shirley, 2013

x = X/(X+Y+Z),   y = Y/(X+Y+Z)
locus: (x(λ), y(λ)) from the analytic x̄ ȳ z̄ fit,  λ ∈ [440, 640] nm
gamut: the triangle on R (0.640, 0.330), G (0.300, 0.600), B (0.150, 0.060)
outside it: the nearest point of that triangle, in the xy plane

Two claims in one picture.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 130

Mach Bands

COLOUR / PSYCHOPHYSICS / DIFFERENCE OF GAUSSIANS

Ernst Mach, 1865 · Robert W. Rodieck, 1965

L(u) = j∕(N−1),  j = ⌊x(u)·N⌋,  x(u) triangular in u, period 1
DoG(d) = Gc(d) − Gs(d),  Gσ(d) = exp(−d²∕2σ²)∕(σ√2π)     Rodieck 1965
response(u) = (N−1)·(L * DoG)(u)
perceived(u) = L(u) + gain·response(u)

A staircase of flat grey bars, each one shade brighter than the last, does not look like a staircase of flat grey bars: every bar reads slightly darker near the edge where a…

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 131

Hilbert-Curve Dithering

COLOUR / DITHER / CURVE-ORDER DIFFUSION

Thiadmer Riemersma, 1998

visit the cells in Hilbert order, not in scan order
b = r^(1/(q−1)),  wᵢ = bⁱ ⁄ Σⱼ bʲ,  i = 0 … q−1
aₖ = sₖ + Σᵢ wᵢ·eₖ₋q₊ᵢ,  oₖ = nearest level to aₖ,  eₖ = aₖ − oₖ

Plate 52 pushes each rounding error onto the four neighbours a raster scan has not reached yet, and the scan is the flaw: a mistake made at the left of a row is still…

THE PLATE ▸RUN IT ▸VEX

PL. 132

Void-and-Cluster Method

COLOUR / DITHER / VOID-AND-CLUSTER

Robert A. Ulichney, 1993

F = P ⊛ Gσ   (toroidal)
cluster = argmax_{i: P(i)=1} F(i)
void   = argmin_{i: P(i)=0} F(i)
P(cluster)←0, P(void)←1; repeat until void = cluster

Every other dither plate in this order starts from a rule and applies it: Bayer consults a fixed matrix, Floyd and Steinberg carry a rounding error forward through a scan.

THE PLATE ▸RUN IT ▸

PL. 133

Site Percolation

LATTICES / LATTICE / SITE PERCOLATION

Simon Broadbent & John Hammersley, 1957 · cluster labelling: Joseph Hoshen & Raoul Kopelman, 1976

each site open with probability p, independently
clusters = connected components of open sites, 4-neighbour
labels merged by union-find; the larger label survives a merge
spanning ⇔ one cluster touches both the top and the bottom row
p_c = 0.59274621(13) for sites on the square lattice

Open each site of a square grid with probability p, independently, and ask whether the open sites connect the top edge to the bottom.

THE PLATE ▸RUN IT ▸

PL. 134

Lévy Flight

CURVES / RANDOM WALK / HEAVY-TAILED STEPS

Paul Lévy, 1937 · named by Benoit Mandelbrot, 1982 · sampled via Chambers, Mallows and Stuck, 1976

symmetric α-stable, Chambers-Mallows-Stuck 1976:
U ~ Unif(−π/2, π/2),  W ~ Exp(1)
X(α) = sin(αU) / cos(U)^(1/α) · [cos((1−α)U) / W]^((1−α)/α)
α = 1: X = tan(U) (Cauchy)      α = 2: X ~ N(0, 2) (Gaussian control)
both walks share one (direction, U, W) draw per step; α alone differs

Two walks start at the same point and take the same number of steps, even the same sequence of directions, drawn from one shared stream of random numbers.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 135

Brownian Bridge

CURVES / STOCHASTIC / MIDPOINT DISPLACEMENT

Paul Lévy, 1948

B(0) = B(1) = 0
B(mid) = ½(B(left)+B(right)) + Z·σ·Δ^H,  Z ~ N(0,1)
Δ = right − left,  H = ½ is the Lévy bridge (Lévy, 1948)
H ≠ ½ is the fractional generalisation

Fractional Brownian motion, elsewhere in this atlas, sums octaves of a two-dimensional noise lattice; this is the same idea run in one dimension, and by the older, more literal method.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 136

Pinwheel Tiling

LATTICES / TILING / SUBSTITUTION

John H. Conway · proved by Charles Radin, 1994

A=(0,0) B=(2,0) C=(0,1) — legs 2 and 1, hypotenuse √5
D=(1,0)  P=(1/5,2/5)  X=(2/5,4/5)  Q=(6/5,2/5)
σ(ABC) = XAC ∪ PDA ∪ QBD ∪ PDX ∪ QXD — five copies of ABC/√5
(first letter is the right angle)  turn per level = arctan(1/2)
= 26.5651…°, irrational in degrees, so σⁿ never repeats a direction

Penrose and Ammann–Beenker, the two aperiodic tilings already in this order, set every tile at a multiple of one fixed angle — 36 degrees for the first, 45 for the second — so…

THE PLATE ▸RUN IT ▸VEX · AE

PL. 137

Stereographic Projection

FIELDS / PROJECTION / SPHERE TO PLANE

Ptolemy, c. 150 (Hipparchus, 2nd c. BC, attributed) · conformality proved: Edmond Halley, 1695

inverse map, plane → sphere (pole at z = 1):
s = X² + Y²,  (x, y, z) = (2X, 2Y, s−1)/(s+1)
conformal everywhere: circle ↦ circle, angle ↦ same angle

Every point of the sphere but one has a partner on the plane: draw a line from the pole of the sphere through the point, and where that line meets the plane is the answer.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 138

Quaternion Julia Set

FRACTALS / ESCAPE TIME / QUATERNION SLICE

Alan Norton, 1982 · ray-traced by Hart, Sandin & Kauffman, 1989

qₙ₊₁ = qₙ² + c  in ℍ,   q₀ = x·u + y·v
(w,x,y,z)² = (w²−x²−y²−z², 2wx, 2wy, 2wz)
u, v orthonormal:  u = p·q̄,  v = p·i·q̄,  p, q unit quaternions

The quaternions extend the complex numbers with two more square roots of minus one, i, j and k, worked out by William Rowan Hamilton in 1843, and the same squaring-and-adding…

THE PLATE ▸RUN IT ▸GLSL TOP

PL. 139

Schlegel Diagram

LATTICES / PROJECTION / FOUR-POLYTOPE

Victor Schlegel, 1883 · the six figures: Ludwig Schläfli, 1850–1852

{3,3,3}  {4,3,3}  {3,3,4}  {3,4,3}  {3,3,5}  {5,3,3}
cell centre n̂,  h = n̂·x on that cell,  eye at v = (h + ε)n̂
x ↦ s·(x − (n̂·x)n̂),   s = ε/(h + ε − n̂·x)
one diagram while ε < h(sec γ − 1),  γ = angle between adjacent cell centres

Euclid closes the Elements by proving there are five regular solids and no more.

THE PLATE ▸RUN IT ▸VEX · AE

PL. 140

Curve-Shortening Flow

CURVES / GEOMETRIC FLOW / CURVE SHORTENING

Michael Gage, Richard Hamilton, 1986 · Matthew Grayson, 1987

∂γ/∂t = κ N = ∂²γ/∂s²
dL/dt = −∮ κ² ds ≤ 0
dA/dt = −∮ κ ds = −2π  (any simple closed curve)
4πA/L² → 1

Give every point of a closed loop a velocity equal to its own curvature, aimed at the centre of the circle that best fits the loop there.

THE PLATE ▸RUN IT ▸VEX

PL. 141

Differential Line Growth

LATTICES / GROWTH / DIFFERENTIAL LINE

Common practice in generative art; earliest documented account Anders Hoff, 2016

attract: kA(d-d0) toward each neighbour along the ring
repel: kR sum over nodes within r (spatial hash), (r-d)/r away
align: kG toward the neighbour midpoint
split a ring edge past d0*grow; merge one below 0.4*d0

A closed ring of nodes negotiates its own shape under three local rules: every node is pulled toward its two ring neighbours by a spring at rest length d0, pushed away from any…

THE PLATE ▸RUN IT ▸VEX

PL. 142

Self-Avoiding Walk

LATTICES / LATTICE / SELF-AVOIDING WALK

Moti Lal, 1969 · efficiency proof: Neal Madras & Alan D. Sokal, 1988

walk x0..xN on Z², self-avoiding, x0..xN initially a straight line
pivot: choose interior site k, choose g in the 7 nontrivial
  symmetries of the square lattice (rotations + reflections)
x′ᵢ = g·(xᵢ − xₖ) + xₖ   for i on the shorter arm at k
accept iff {x′ᵢ} shares no site with the fixed arm
  (an isometry cannot make an arm cross itself that could not before)
⟨Rₑ²⟩ ~ N^(2ν),  ν = 3/4 exactly in two dimensions (Nienhuis, 1982)

A self-avoiding walk of N steps on the square lattice is drawn here by folding, not by growing.

THE PLATE ▸RUN IT ▸VEX

PL. 143

Logistic Bifurcation Diagram

ATTRACTORS / MAP / PERIOD DOUBLING

Pierre François Verhulst, 1838 · Robert May, 1976 · Mitchell Feigenbaum, 1978

xₙ₊₁ = r·xₙ(1 − xₙ)
plotted against r, transient discarded
Feigenbaum δ = 4.6692016091… (ratio of successive doubling intervals)

Verhulst wrote this in 1838 to correct Malthus — unbounded growth cannot be right, so he multiplied it by a term that falls to zero as the population fills its room.

THE PLATE ▸RUN IT ▸VEX

PL. 144

Stam Stable Fluids

FIELDS / FLUID / SEMI-LAGRANGIAN PROJECTION

Jos Stam, 1999

∂u/∂t = −(u·∇)u + ν∇²u − ∇p + f,   ∇·u = 0

advect:  w(x) = u(x − Δt·u(x), t)
project: ∇²p = ∇·w,   u = w − ∇p

Before this paper a fluid solver had a speed limit: step too far and the simulation exploded, so the timestep was set by stability rather than by what anyone wanted to watch.

THE PLATE ▸RUN IT ▸

PL. 145

Rayleigh–Bénard Convection

FIELDS / FLUID / BOUSSINESQ CONVECTION

Henri Bénard, 1900 · Lord Rayleigh, 1916

∂u/∂t + (u·∇)u = −∇p + ν∇²u + gα(T−T₀)ẑ,   ∇·u = 0
∂T/∂t + (u·∇)T = κ∇²T

ω = ∇×u,  ∇²ψ = −ω:
∂ω/∂t + (u·∇)ω = ν∇²ω − B ∂T/∂x

Ra = B d³/νκ,   Ra(k) = (k²+π²)³/k²

Heat a layer of fluid from below and nothing happens.

THE PLATE ▸RUN IT ▸

PL. 146

Kármán Vortex Street

FIELDS / FLUID / LATTICE BOLTZMANN

Henri Bénard, 1908 & Theodore von Kármán, 1911 · Bhatnagar, Gross & Krook, 1954 · Qian, d’Humières & Lallemand, 1992

fᵢ(x + eᵢ, t+1) = fᵢ(x, t) − [fᵢ − fᵢ⁰] / τ

fᵢ⁰ = wᵢ ρ (1 + 3 eᵢ·u + 4.5 (eᵢ·u)² − 1.5 u·u)
ρ = Σ fᵢ,   ρu = Σ fᵢ eᵢ,   ν = (τ − ½)/3,   Re = U D / ν

Put a body in a moving fluid and, past a certain speed, the wake stops being a wake and becomes a rhythm: vortices peel off one side and then the other in strict alternation,…

THE PLATE ▸RUN IT ▸

PL. 147

Menger Sponge

FRACTALS / DISTANCE FIELD / TERNARY RULE

Karl Menger, 1926

divide [−½,½]³ into 3×3×3, remove a subcube when two or more of
its ternary digits read 1 at the same level, recurse
N(n) = 20ⁿ cells of side 3⁻ⁿ, volume(n) = (20/27)ⁿ, dim_H = log 20 / log 3 ≈ 2.7268
d(p) = max( sdBox(p), 3⁻⁽ᵏ⁺¹⁾·reach_k(p), p·â − s )
sphere trace: t → t + d(o + t·û);  n = ∇d / |∇d|

Karl Menger set down the whole family of these objects in 1926 with one recursive rule, and the sponge is a single case of it: divide a cube into twenty-seven equal parts on a…

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 148

Mandelbulb

FRACTALS / ESCAPE TIME / TRIPLEX POWER

Daniel White & Paul Nylander, 2007–2009 · after Rudy Rucker, 1988

vₖ₊₁ = vₖⁿ + c,   v₀ = 0,   c ∈ ℝ³
vⁿ = rⁿ(cos nθ·cos nφ,  sin nθ·cos nφ,  −sin nφ),   r = |v|
θ = atan2(y, x),   φ = atan(z / √(x²+y²)),   n = 8
dr → n·rⁿ⁻¹·dr + 1,   d = r·ln r / (2·dr)   — heuristic, not a bound
sphere trace: t → t + 0.75·d(o + t·û),   n̂ = ∇d / |∇d|

There is no three-dimensional number system to run the Mandelbrot recursion in.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 149

Mandelbox

FRACTALS / DISTANCE FIELD / SPATIAL FOLD

Tom Lowe, 2010

boxFold: per axis, v>1 → 2−v; v<−1 → −2−v
ballFold: m=|v|; m<r → v·f²/r²; m<f → v·f²/m²
v → s·ballFold(boxFold(v)) + c   (standard s=2, r=0.5, f=1)
d = |v| / |dv/dc|,   |dv/dc| → |s|·|dv/dc| + 1
sphere trace: t → t + d(o + t·û);  n = ∇d / |∇d|

Tom Lowe posted this construction to fractalforums.com on 31 January 2010, titled only Amazing fractal, and it was renamed Mandelbox by the community afterward.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 150

Tetrabrot

FRACTALS / ESCAPE TIME / BICOMPLEX SLICE

Dominic Rochon, 2000

ηₙ₊₁ = ηₙ² + c  in ℂ₂,   η₀ = 0
c = p + q·i₁ + y·i₂ = (p + (q−y)i₁)·γ + (p + (q+y)i₁)·γ̄
c ∈ T  ⟺  p + (q−y)i₁ ∈ M  and  p + (q+y)i₁ ∈ M
γ = (1+j₁)/2,  γ̄ = (1−j₁)/2,  j₁ = i₁i₂,  j₁² = +1

The bicomplex numbers are the complex numbers built a second time.

THE PLATE ▸RUN IT ▸GLSL TOP · BLINK

PL. 151

Sierpiński Tetrahedron

FRACTALS / DISTANCE FIELD / IFS FOLD

Sierpiński, 1915 · Hutchinson, 1981

A = ∪ₖ fₖ(A),  fₖ(p) = (p + vₖ)/2,  vₖ the 4 tetrahedron vertices
dim_H = log 4 / log 2 = 2 exactly
fold in x+y=0, x+z=0, y+z=0, then p → 2p − v₁, k times
d(p) = d_simplex(p_k) · 2⁻ᵏ  — every map a similarity, so 2ᵏ is exact
sphere trace: t → t + d(o + t·û);  n = ∇d / |∇d|

Four points, and one rule: from anywhere at all, jump half the way toward one of them, forever.

THE PLATE ▸RUN IT ▸VEX · GLSL TOP · BLINK

PL. 152

Soddy Sphere Packing

LATTICES / SPHERE PACKING / PLANE SECTION

Frederick Soddy, 1936 · Thorold Gosset, 1937

(b₁+b₂+b₃+b₄+b₅)² = 3(b₁²+b₂²+b₃²+b₄²+b₅²)
b₅′ = b₁+b₂+b₃+b₄ − b₅, and the same on (b·x, b·y, b·z)
section of a sphere at distance d: radius √(r² − d²)

Five spheres can all touch each other at once, and when they do their curvatures are locked together: the square of the sum of all five is three times the sum of their squares.

THE PLATE ▸RUN IT ▸VEX

PL. 153

Bowl of Integers

LATTICES / LATTICES

Frederick Soddy, 1937

(b₁+b₂+b₃+b₄+b₅)² = 3(b₁²+b₂²+b₃²+b₄²+b₅²)
b₅′ = b₁+b₂+b₃+b₄ − b₅, and the same on (b·x, b·y, b·z)
root (−1, 2, 2, 3, 3); every curvature is ≡ 0 or 2 (mod 3)
solid drawn: ⋃ { |x − cᵢ| ≤ rᵢ − ρ } over rᵢ > ρ, cut by x·â ≤ s
ray: |o + t·û − cᵢ| = rᵢ − ρ,  n̂ = (x − cᵢ)/(rᵢ − ρ)

Soddy gave this packing its name in Nature in January 1937, the year after the poem: the bowl of integers, a unit sphere filled with spheres whose curvatures are all whole…

THE PLATE ▸RUN IT ▸VEX