← Work · Live-visual instrument

Lightbridge

A GPU-accelerated performance app that turns live audio into visuals — a modular instrument where performers route audio, MIDI, LFOs, and Ableton Link tempo onto any visual parameter, in real time.

Lightbridge interface: a generative source rendering live with a modulation patchbay and parameter panel
The performance surface — a live generative source with modulatable parameters and a routing patchbay.
Context
A live-visual instrument for VJs, musicians, and performers who want visuals that respond to sound with the immediacy of an instrument — not a timeline.
Role
Product direction, interaction & system design, and engineering across the desktop app.
Built with
Electron · React · Rust / WGPU · GLSL generative sources

The problem

Most visual tools make you choose: the deep, GPU-fast environments are intimidating and patch-heavy, while the approachable ones can't really perform — you pre-render a timeline and press play. Neither feels like an instrument you can pick up and react with.

Lightbridge starts from a performer's expectation: everything you see should be able to move, and anything that moves should be routable to anything that makes sound. The craft is making that power feel playable rather than overwhelming.

A Lightbridge generative source with its parameter controls
Generative sources expose glow, scale, hue, fold, and other live parameters.

Product & workflow

The core loop is source → modulation → output. A performer picks a generative source, exposes its parameters, and patches modulation onto whichever ones should breathe with the music.

What drives the visuals

  • Audio — split into frequency bands (sub-bass, kick, low-mid, mid, presence, brilliance) so different parts of a track can drive different parameters.
  • Tempo & beat — Ableton Link keeps visuals locked to the room's clock; beat and onset signals add punch on the hit.
  • LFOs & MIDI — shape motion by hand or map hardware controllers to parameters and pads.

Sources and effects stack into chains, so a simple visual can be layered into something rich without leaving the performance.

Interaction & system design

The signature interaction is the modulation patchbay: drag a source of movement onto a parameter and a live cable connects them, colored by the modulator. It makes an abstract idea — "this sound controls that look" — physical and legible at a glance.

Underneath, every parameter is a normalized value on a shared bus, so any signal can drive any target and multiple modulators can sum onto one parameter. That single abstraction is what keeps a deep system feeling coherent: one mental model, applied everywhere.

Lightbridge modulation routing and stacked source/effect chains
Modulation routing: audio, LFO, beat, and MIDI patched onto visual parameters.

Live exhibit · the signal path

Patch movement into light

Each route uses the same mental model: choose a signal, connect it to a visual parameter, and set the amount. Move through the three examples, then activate the real source below.

Audio → glow

Louder input raises luminance, so a visual breathes with the mix instead of merely playing beside it.

LFO → warp

A slow oscillator bends the source continuously; rate and depth make the movement calm or restless.

Beat → pulse

Onsets add a short, legible hit to radius and intensity without flattening the motion between beats.

Lightbridge source and modulation interface

Interface preview · activate when ready

Perform

Send a signal yourself

Open four synthesized pads. Every hit feeds the same audio envelope driving glow and pulse above.

Technical craft

Real-time visuals leave no room for jank. Lightbridge renders generative sources on the GPU through a Rust / WGPU pipeline, driven by a React interface inside an Electron shell so it can reach the OS for audio, MIDI, and pro output paths like projection mapping.

The hard part is the seam between a 60 fps render loop and a responsive UI: audio analysis, modulation math, and parameter updates have to reach the GPU every frame without stalling the interface. Keeping that boundary clean — data in one direction, control in the other — is what lets performers trust it on stage.

  • Electron
  • React
  • Rust
  • WGPU
  • GLSL
  • Web Audio / analysis
  • MIDI
  • Ableton Link
  • Projection mapping

Reflection

Lightbridge is where my two lives meet: the performer who needs an instrument to respond now, and the engineer who has to make a GPU do that reliably. The lesson I keep applying elsewhere is that one strong abstraction — here, "everything is a routable, normalized value" — can make a genuinely powerful tool feel simple to play.

Open for new projects

Got a creative idea?
Let’s give it a pulse.