credits & sources

wake is new work, written from scratch, but it stands on other people's work. This page lists everything it took inspiration, ideas or tools from.

uji by Noah Doersing is the direct inspiration. wake shares no code, presets, glyphs or layout with it; a token-level copy check against uji's original source found no shared code. The idea of a drawing as a line redrawn and nudged every step, with every step left on the page, came from playing with uji and reading its source.

Inspiration

uji — Noah Doersing, 2021
A minimalist generative art tool in the browser (live). The case study's early contact sheets and the 20-circle series were made with a modified fork of uji, which keeps its license. License: MIT, with a clause forbidding NFTs ("MIT except NFTs" v1.1).
Dōgen, Uji (“Being-Time”), 1240
A fascicle of the Shōbōgenzō, and the source of uji's name. Its idea that each moment is complete in itself shaped wake's per-point clocks and the series statement.

Lineage: drawing machines and plotter art

Vera Molnár, (Des)Ordres, 1974
Plotter drawings of ordered squares disturbed by controlled randomness. In wake this lineage shows up as jitter and gaps.
Desmond Paul Henry, drawing machines, from 1961
Machines built from analogue bombsight computers that left mechanical traces on paper. In wake, the drawing is the trace of motion.
Harmonograph — attributed to Hugh Blackburn, c. 1844
Pendulums summing periodic motions into a figure. These are wake's wave signals over time.
Spirograph — Denys Fisher, 1965
Rolling circles that produce epicycles: rotation about a moving origin.
Lissajous figures — Jules Antoine Lissajous, 1857
One of wake's seed shapes.
Ensō
The Zen circle drawn in one movement and often left open, which is what the plotter-tested series turned into.

Species

Craig Reynolds, “Flocks, herds, and schools: a distributed behavioral model”, SIGGRAPH 1987
The flock species: separation, alignment and cohesion, the three Boids rules.
Bridget Riley, wave paintings (for example Cataract 3, 1967)
The waves species: stacked lines rippling in phase, with amplitude swelling toward the middle rows.
Agnes Martin, ruled grid paintings (1960s onward)
The grid species: quiet ruled lines on pale grounds that barely tremble.
Johannes Kepler, third law of planetary motion (1619)
The orbit species: inner bodies circle faster (angular speed ∝ r−1.5).
OpenAI CLIP (Radford et al., 2021) via OpenCLIP
A measuring tool, not part of the art: image embeddings used to score how alike 300 designs look, before and after the species.

Science

Edward N. Lorenz, “Deterministic Nonperiodic Flow”, Journal of the Atmospheric Sciences 20 (1963)
The Lorenz attractor.
G. Benettin, L. Galgani, A. Giorgilli & J.-M. Strelcyn, “Lyapunov characteristic exponents for smooth dynamical systems…”, Meccanica 15 (1980)
The method used to test the Lyapunov exponent.
J. L. Kaplan & J. A. Yorke, “Preturbulence: a regime observed in a fluid flow model of Lorenz”, Commun. Math. Phys. 67 (1979)
Transient chaos below ρ ≈ 24.74, which the ρ control reports.
T. Shinbrot, C. Grebogi, J. Wisdom & J. A. Yorke, “Chaos in a double pendulum”, American Journal of Physics 60 (1992)
The double pendulum.
Cristopher Moore, “Braids in classical dynamics”, Physical Review Letters 70 (1993)
First found the figure-eight orbit, numerically.
Alain Chenciner & Richard Montgomery, “A remarkable periodic solution of the three-body problem in the case of equal masses”, Annals of Mathematics 152 (2000)
Proved it exists; with Carles Simó's initial conditions and period, which wake uses.
Loup Verlet, “Computer ‘experiments’ on classical fluids”, Physical Review 159 (1967)
The Verlet integrator for the three-body orbits.
Yoshiki Kuramoto (1975), and Steven H. Strogatz, “From Kuramoto to Crawford”, Physica D 143 (2000)
The fireflies: coupled oscillators, the critical coupling and r = √(1 − K꜀/K).
Ernst F. F. Chladni, Entdeckungen über die Theorie des Klanges (1787), and Walther Ritz, Annalen der Physik 28 (1909)
Chladni figures, and the exact modes of a free square plate that wake approximates.
Alan M. Turing, “The Chemical Basis of Morphogenesis”, Phil. Trans. R. Soc. B 237 (1952)
Patterns from reaction and diffusion.
P. Gray & S. K. Scott (1984), and John E. Pearson, “Complex Patterns in a Simple System”, Science 261 (1993)
The Gray–Scott model and Pearson's map of its patterns.
Karl Sims, Reaction-Diffusion Tutorial
The normalisation (Dᵤ = 1, Dᵥ = 0.5, 3×3 Laplacian) and the parameter points used.
KaTeX
Typesets the equations on the ⓘ cards.MIT

Mathematics

Affine transforms and iterated maps
Each block is a small map applied every step; a wake is the orbit of a polyline under the stack.
Baker–Campbell–Hausdorff formula — Campbell 1897, Baker 1905, Hausdorff 1906
It explains a finding from the tests: for small steps, two transforms applied in either order differ only by a second-order term. That's why reordering wake's blocks changes little unless they're nonlinear.
Cosine palettes — Inigo Quilez
Every colour design's gradient is a + b·cos(2π(c·t + d)), from his article on procedural colour palettes. The twelve named palettes in wake are tuned from that formula.
Curl noise — Robert Bridson, Jim Hourihan & Marcus Nordenstam, “Curl-noise for procedural fluid flow”, SIGGRAPH 2007
The flow block: line-heads follow the curl of a drifting noise field, which has no sources or sinks, so they swirl instead of bunching up.
Gradient noise — Ken Perlin, “An image synthesizer” (1985) and “Improving noise” (2002)
The noise under the curl, with the quintic fade curve from the 2002 paper.
“Flow Fields” — Tyler Hobbs, 2020
The essay that frames how marks move through a field of directions; wake's live view is a flow field whose forces come from the block stack.
mulberry32 — Tommy Ettinger
The seeded random number generator behind every random choice in wake, so the same link always gives the same drawing, and each of the 100,000 numbered designs is the same on every device. Public domain.

Tools

Vite and TypeScript
Build and language. Rendering uses the browser's WebGL2 directly, with no graphics library.MIT · Apache-2.0
Playwright — Microsoft
Visual regression, determinism and hostile-link tests, phone-emulated frame rates, and the case study's GIFs.Apache-2.0
vpype — Antoine Beyeler
Plotter path optimisation and the statistics behind the plot-time and ink-density checks.MIT
AxiDraw — Evil Mad Scientist Laboratories
The pen plotter whose speeds the plot budget assumes.
jscpd — Andrey Kucherenko
The copy-detection check against uji's source.MIT
gifenc — Matt DesLauriers · pngjs
Encoding the case-study GIFs.MIT · MIT
Vercel and Vercel Web Analytics
Hosting, and anonymous frame-time reporting: once per visit, wake reports the device class (phone, tablet or desktop), the GPU class (hardware or software), how many line-heads the device settled on, and its frame time. No cookies and no personal data.

Type

Instrument Serif — Rodrigo Fuenzalida & Jordan Egstad (Instrument)
SIL Open Font License 1.1, served by Google Fonts.
IBM Plex Mono — IBM, designed by Mike Abbink with Bold Monday
SIL Open Font License 1.1, served by Google Fonts.

Making of

Concept, direction and curation — Preet Panchal
Built with Claude Code (Anthropic)
An AI coding assistant wrote and tested much of the code and the case study, under the author's direction. Source: github.com/preet-portfolio/wake.