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.

Site CSS. This page uses /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.
Machine DNA · lifeline · seed-driven — and where interactivity exists, it is about surrender and suffering: machines externalize internal questions of agency until we can internalize again and see ourselves in the reflection — the votive.

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.

FieldRule
TitleHuman name — Holes in the Sky, Surrender Machines
SeedIndividual identity — e.g. 77823, 210021
Catalog rowTitle · seed — same species, distinct organism
RevisionNew 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.

ModeExampleVisitor 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)

BodyHost
BrowserHTML / Three.js — offline-capable on mark-walhimer.com
Mac brainOpenFrameworks C++ — kernel port matches JS PRNG + serialize JSON
SoundPure Data / DSP — OSC or FUDI contract documented
LED panelTeensy 4.1 receiver — dumb pixel surface; brain on Mac or Pi
LCD / consoleOF or dedicated display — same snapshot → pixels
ProjectionRaspberry 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

  1. Species — new genome contract or existing?
  2. Seed — mint at birth; document as identity
  3. Lifeline — how it ages, breaks, dies
  4. Relation mode — votive witness, surrender mirror, or both in sequence?
  5. Bodies — browser only · LED · room mesh · which nodes?
  6. Interactivity — only if mode 4 says surrender; else omit Supabase / phone HUD

Per-piece mini-card

FieldHoles in the SkySurrender Machines (77823)
ModeVotive — awe, listeningSurrender — co-creation, scars
InteractivityNoYes
NetworkOF + PD + live feedsPi + Teensy mesh + optional Supabase
LifelineEclipse clock → reverse → unwindAge, stress, senescence, seed/death

Working notes from studio conversation · July 2026 · ← Practice