Practice · Machine DNA · July 2026
Artwork pipeline
One codebase, many bodies. Sketch in Three.js and WebGL; ship in OpenFrameworks, Pure Data, and DSP. The same genome drives browser pages, LED panels, LCD surfaces, and room-scale installs — when interactivity belongs in the work at all.
/css/cathedral-shell.css — shared nav, typography tokens (--ink, --accent, --rule), Cormorant Garamond + DM Sans + DM Mono — aligned with the homepage and inner pages such as Practice and Bio / CV. Page-specific rules live in a scoped <style> block; acquire/work grids use /css/work-pages.css where needed.
Identity — title + seed
Each piece is named twice: a human title and a numeric seed. The organism is that seed. A major revision may earn a new seed; the prior seed stays in the archive as an earlier life.
| Field | Rule |
|---|---|
| Title | Human name — Holes in the Sky, Surrender Machines |
| Seed | Individual identity — e.g. 77823, 210021 |
| Catalog row | Title · seed — same species, distinct organism |
| Revision | New genome or major code change → new seed is honest |
Two modes — not every piece gets interactivity
Interactivity is not a default feature. It belongs only where surrender and agency are the subject.
| Mode | Example | Visitor role |
|---|---|---|
| Votive / witness | Listening to the Sky | Listen. Sky is the exhibition. Machine DNA + astronomical clock + atmosphere. No nudge, no co-author. The awe is the eclipse. |
| Surrender / mirror | Surrender Machines · room installs | Co-create. Externalize surrender and agency; machine yields; scars propagate; visitor sees reflection. |
Pipeline — sketch to ship
Sketch phase (Three.js / WebGL)
Final hosts (same genome, different bodies)
| Body | Host |
|---|---|
| Browser | HTML / Three.js — offline-capable on mark-walhimer.com |
| Mac brain | OpenFrameworks C++ — kernel port matches JS PRNG + serialize JSON |
| Sound | Pure Data / DSP — OSC or FUDI contract documented |
| LED panel | Teensy 4.1 receiver — dumb pixel surface; brain on Mac or Pi |
| LCD / console | OF or dedicated display — same snapshot → pixels |
| Projection | Raspberry Pi 5 / map slice — OSC spine; no frame streaming |
Distributed network as engine
Install-scale work is not always hub-and-spoke from one Mac mini. Multiple Raspberry Pis and Teensy 4.1 boards on a switch share expression — the network itself becomes part of the engine.
┌─ Teensy ─ LED panel
┌─ Pi ────┼─ Teensy ─ LED / fan / sensor
Switch ──┤ └─ projector / map slice
├─ Pi ────┬─ …
└─ Mac mini (one node, not god)
Holes in the Sky on eclipse day may stay simpler (OF + Pure Data + live feeds). The Pi/Teensy mesh is the pattern for room-scale surrender work, not a requirement on every species.
Species identity (Machine DNA)
Multi-person interaction (surrender mode only)
Skip this block for votive / witness works such as Holes in the Sky.
Physical installation stack
Publish on mark-walhimer.com
Decision gate — every new piece
- Species — new genome contract or existing?
- Seed — mint at birth; document as identity
- Lifeline — how it ages, breaks, dies
- Relation mode — votive witness, surrender mirror, or both in sequence?
- Bodies — browser only · LED · room mesh · which nodes?
- Interactivity — only if mode 4 says surrender; else omit Supabase / phone HUD
Per-piece mini-card
| Field | Holes in the Sky | Surrender Machines (77823) |
|---|---|---|
| Mode | Votive — awe, listening | Surrender — co-creation, scars |
| Interactivity | No | Yes |
| Network | OF + PD + live feeds | Pi + Teensy mesh + optional Supabase |
| Lifeline | Eclipse clock → reverse → unwind | Age, stress, senescence, seed/death |