An audiovisual art installation inside a partially imploded bunker in Berlin. I built a proprietary show-control software, Moonwalk, to direct lights, video effects and mapped projections to precisely align with a 12-minute audio piece for live performances.
Event page ↗Concept
A planet has separated from its solar system to travel the universe alone. Snippets of the songs and stories it once shared with its siblings still catch up with it, in the dark.
The setting is a World War 2 ruin, inspired by The Zone in Tarkovsky’s Stalker – concrete blocks hang from threads, water flows upward, memories take shape. Visitors explored it on a guided tour of the Humboldthain flak tower, in English and German, as a narrative of sound and light.
It was shown as part of Berlin’s Long Night of Museums in August of 2025 and 2026, with Berliner Unterwelten, whose years of restoration work on the bunker made it possible to walk inside.
Moonwalk, the show-control software
Visitors were guided through the tower in small groups, down into its blasted interior, to listen to the composer’s twelve-minute audio piece. Moonwalk was the visual half of that: the lights and projection that answered the music.
The audio was composed and finished first, and everything Moonwalk does is timed to it. There is no control surface and no GUI. Cue points are marked on the audio waveform in Audacity, exported as a label file, and each label is wired to a function that fires GSAP tweens and OSC messages.
Node.js owns the timeline. TouchDesigner plays the audio and turns the lighting values into Art-Net for ten DMX fixtures. MadMapper plays one pre-rendered video and maps it onto the concrete. An operator button in TouchDesigner fades the whole rig up or cuts it to black without stopping the timeline.

112 cues in twelve minutes
Every cue is a label on the waveform, and every label name maps to a function. Swells, creeps, hits and strobes each get their own handler, so scoring a moment means placing a marker and writing a few lines.

LightFX
The show’s lighting cues are written in LightFX, a lighting library for the rig. It doesn’t run a timeline of its own. Every effect is scheduled onto Node’s master GSAP timeline, so lights, video and audio cues all share one clock.
It is built around space. The ten fixtures are handed to it in their physical left-to-right order, and every effect is described in terms of that line: start, end, center, edges or random. A swipe that crosses the tower is the same call whether there are six lights or sixty. The sample here is a whole cue: black out, then cut a swipe through the dark and clear it.
group() carves out a sub-line of fixtures that reuses the same timeline, so the left
and right halves can answer each other. Each effect also takes its own easing, spacing and
duration.
// SWIPE1: left → right, 1.3s
// Blackout first so the swipe cuts through dark.
SWIPE1({ timeline, time }) {
fx.set(time, { bright: 0 });
fx.swipe(time, { bright: 1, r: 1, g: 0.8, b: 1 },
{ from: "start", step: 0.09, duration: 0.49 });
fx.swipe(time + 1.3, { bright: 0 },
{ from: "end", step: 0.03, duration: 0.08 });
},
- swipe
- Takes the lights to a state one after another, from either end, the center, the edges or at random. They stay there.
- chase
- Sends a pulse down the line: each light rises to a peak and returns.
- ripple
- A chase that starts at the center and spreads outward.
- collapse
- A swipe from the outer edges inward.
- bounce
- A chase one way and then back again.
- alternate
- Two states on the even and odd fixtures.
- gradient
- A color blend across the line, left to right.
- sparkle
- Sparse random hits across the lights.
- strobe
- Rapid flashes whose peak decays, so the strobe fades out as it runs.
TouchDesigner
Node decides what the lights should do. TouchDesigner is what makes them do it. Its components were built to take Node’s color and brightness values as they arrive and relay them, in real time, as DMX over Art-Net to the fixtures.
The network is arranged to match the space: the ten fixtures sit in the order they stand in the tower, so what the show file calls left and right lines up with the rig on site. The same network plays the audio and carries the operator’s grand-master button back to Node.
The bunker
The Humboldthain flak tower was built between October 1941 and April 1942, in about six months, by forced labor. It is one of three such gun towers raised in Berlin after the first British bombing raids of 1940.
The gun tower is about 230 feet (70 m) square and 138 feet (42 m) high, with walls up to 8 feet (2.5 m) thick. Heavy anti-aircraft guns stood on its roof, and the floors below were an air-raid shelter for thousands of people from the surrounding streets. Schoolboys drafted as Luftwaffe helpers, some not yet sixteen, were quartered in it to serve the guns.
After the war the Allies ordered such structures demolished, and Humboldthain lay in the French sector. Through 1947 and 1948 French engineers blasted the gun tower again and again. The two southern corner towers came down and the inside was wrecked, but the northern half stood beside the main rail line, and blasting there risked damaging it. The attempt was given up.
What was left was buried. From 1948 to 1951, rubble from Berlin’s bombed buildings was brought in by rail and truck and heaped over the ruin. In 1952 the park reopened around the new hill, the Humboldthöhe, now the highest point in the Wedding district.
For decades the inside stayed a half-collapsed void. Since the early 2000s Berliner Unterwelten e.V. has cleared rubble from the interior and run guided tours of the surviving floors. In winter the bunker belongs to its bats, one of the largest winter roosts in Berlin.
Roadside Picnic and Berliner Unterwelten took their audience into that wreck. The broken concrete, the exposed rebar and the rubble underfoot became The Zone, a place where, in the work, concrete hangs from threads and water runs upward.
- 1940
- First British raids on Berlin; flak towers ordered for the city.
- 1941-42
- The Humboldthain flak tower is built.
- 1943-45
- Gun platform and shelter, until the surrender.
- 1947-48
- French engineers blast the towers. The southern half falls; the northern half stays.
- 1948-51
- The ruin is buried under rubble from across Berlin.
- 1952
- The park reopens around the Humboldthöhe.
- 1990
- Secured and reopened to the public.
- 2000s
- Berliner Unterwelten clears the interior and begins tours.
- 2025-26
- Roadside Picnic.
Gallery
Notes
Roadside Picnic was presented by Seafoam Palace in collaboration with Berliner Unterwelten e.V.








