
Studio
A solo-built real-time VJ software for live visual performance with audio-reactive effects, clip playback and 3D perspective controls. All in one standalone desktop app.
- Role
- Sole author · Design · Eng
- Scale
- ~10,000+ lines
- Stack
- PyQt5 · OpenCV · MiDaS · MIDI
- Status
- Standalone desktop app
One AI generated video clip, with automatically synced visual effects applied based on parameters and audio triggers.
Overview
A professional PyQt5/Python desktop application for live visuals: audio, video, 3D geometry, and depth maps composited into audio-reactive, multi-layer output driven live from MIDI hardware.
I built this end to end: the rendering engine, the compositing model, the MIDI control layer, the capture pipeline, and the project system. It started as a simple single-cell effect toy and grew into a ~10,000-line engine designed to survive an actual VJ set.
What started out as a personal hobby project showed signs of commercial interest when strangers saw the output and asked if it was for sale.

The project arc
The biggest challenge was making everything run smoothly in real time. A live performance tool has to respond instantly and maintain a steady frame rate, even on less powerful computers.
Early versions worked, but they weren't efficient enough. As the project grew, I reworked the rendering engine, optimized the way graphics were drawn, and eliminated unnecessary calculations so the application could handle more complex visuals without slowing down.
The project was almost entirely driven by a commitment to the creation of dramatic visual effects. Countless iterations of this software, each with additions and tweaks of a large library of customizable visual effects that I created.
Alongside the desktop application, I also rebuilt several of the same visual concepts in TouchDesigner, including wireframe and depth-map effects. Building the same ideas in two different environments gave me a deeper understanding of the tradeoffs between custom code and node-based, GPU-accelerated workflows.
Depth-aware compositor driving a mandala scene - audio-reactive geometry, MIDI-mapped params.
What I built
A standalone software that allows the user to record and keyframe effects, as well as control effects, clips, and layers via midi controls.
Stack
Application / UI
PyQt5 for the standalone desktop app and control surface. Every parameter is per-cell; the main thread owns all widget state.
Rendering
OpenCV (cv2) and NumPy for compositing and geometry. Depth-bucketed polylines, precomputed crease edges, and short-circuiting effect gates.
Depth
MiDaS DPT_Large (cached in torch hub) for monocular depth estimation feeding the depth-aware compositor.
Audio / MIDI
PyAudio for live audio analysis. Full MIDI layer with learn, multi-to-one CC mapping, and background-persistent mapped effect enables.
Capture / Projects
Clock-anchored recording and composite-mirroring export. A v3 project format covering cells, params, fx and bypass state, scenes, and automation.
Parallel build
TouchDesigner 2025.32280 (GLSL TOP shaders, depth-map point cloud, wireframe geometry) as a deliberate GPU-node-graph counterpoint to the CPU engine.
Extended live capture - depth-aware compositing and multi-cell scenes.

Brendan Rogers · RareShiny LLC · 2026