Apotheneum: Live
Two live nights of light on the Apotheneum at Burning Man 2026, with Robot Heart and with FOSS. To make it possible I built two open-source tools, chromatik-mcp and mft-api, so I can express an idea and have it quickly implemented in collaboration with agents while I continue composing.

❯ I have a crazy idea. What if we could run the Robot Heart thing inside the cube? It would be just like a 3D rendering, spanning across. It's an orthographic projection looking from each side. … — Aug 24, 2:50 pm
❯ Squash and merge. It looks great. — 8:51 pm
The Apotheneum is a building-scale instrument: a 40×40×40-foot cube of LED net around a 30-foot cylinder, 26,560 light nodes, run by Chromatik. The heart is Robot Heart's sculpture, on top of their bus. The Twister is a Midi Fighter Twister, sixteen knobs.
Wednesday, September 2 — Robot Heart, at sunset




Parra for Cuva and Orbit, then Jo.Ke. I was on the cube and the cylinder; Jasmine Sabio was on the heart.
Thursday and Friday nights, September 3–5 — FOSS











Romain Collin, a few days later:
You were in it and you did it all the way until sunrise… you see the grass in the wind and the stuff — that blue is beautiful, the glacial blue against the orange, like cold and warm.
How it was built







❯ I have a midi twister fighter. Do you have access to the API repository that we have? I want to figure out how to turn the bottom right knob. When you press it, the trigger does a tap tempo. — Aug 16, 9:04 pm
❯ check the transcript of my call with FOSS, from wispr. particular on the visual feedback mentions. extract what you can about it, cause I want to encode that feedback and incorporate it into the set — Aug 18, 9:46 pm
❯ You just delete the old swatches, and maybe we don't need three colors. Maybe we just need two. Why do we need three colors? — Aug 19
Excerpts from what came out of it three days later, a standing design file in the show repo, design/color-system.md. The quoted words are from the call:
Avoid primary vertices, not hues. Pure red, green, blue, yellow, white — "just really not very good for LEDs." The rule is distance from the vertex, not which hue: his own favorite hue is blue, and pure blue is his named example of what to avoid, while deep blue + cyan is the single frame he called "beautiful."
Depth comes from brightness, not desaturation. On LEDs, dropping saturation mixes in white and reads as washed out rather than deep. Keep field colors at saturation ≥ 85.
No white. "Underwhelming and cold… feels like a sound effect more than the actual show."
Composition = one hue-family field + one contrasting accent, the accent on fixed geometry and at a lower presence than the field. Two bright fields side by side is the explicit "terrible" failure, even when neither color is individually wrong.
Green is not accent-only. A cold, glacial teal/mint reads as a valid full field color. Saturated, grass-primary green is what's actually rejected.
Four days later the rules became code: PR #126, a base class with a primary and a secondary color role, so the patterns written after it draw from one global palette.
Aug 25, midnight
❯ Can you think of how we could design a fireball? It's like a point that moves out, and there's kind of like a sun, like an aura, like flames or little things in mini. When you move it, they're like the trail of stuff behind it … — 11:33 pm
❯ Could you make a pattern simulating a bunch of tall grass or weeds swaying in the wind? Are there common algorithms? — 11:39 pm
❯ Spin off subagents to implement this in Codex. In Codex, specify for each of them what the algorithm is. Each Codex thing runs in its own tmux session. — 11:42 pm
❯ as the agents are working Have them occasionally send you back animated gifs that they make to show progress. — 11:53 pm
The GIFs the agents attached to their own PRs, Aug 21–27, and the same patterns on the cube on September 2.
















Also #126, the primary/secondary color base class the later patterns draw from.
Aug 29–30
❯ … Maybe just try a couple patterns tonight so you don't burn too many tokens. See how it goes. I'm going to see how you did in the morning. — Aug 29, 12:36 am
❯ I want to take a step back. You've been really struggling with the mapping. Instead of you mapping the patterns, I'm just going to do it myself … — Aug 29, 5:41 pm
❯ How stupid are you? I'm so frustrated. … — Aug 30, 6:59 pm
❯ Sorry for being mean to you earlier. I'm pushing you hard. You're doing a great job. I couldn't have done this without you. You opened up a lot of possibilities for me, and I appreciate everything you've done. — Aug 30, 9:22 pm
The tools
chromatik-mcp — an MCP server inside the Chromatik lighting engine, so an agent can read, compose into, and debug a running show. MIT.
mft-api — read and write a Midi Fighter Twister's configuration from a chat. MIT.