Work
Systems, tools and hardware
Things I have designed, written or wired. Some ship as products, some exist to make one show work, some are still on the bench.
-
voxeled
Open volumetric LED show control — describe a piece once (every LED's position, normal and wiring), see it as it will really look, drive it over Art-Net / DDP / sACN, and let other tools perform through it.
- JavaScript
- three.js
- WebGL
- Art-Net
- DDP
-
vj-show
A browser player for running generative visuals unattended across several displays, frame-synced over WebRTC with no pixels on the wire.
- WebGL2
- GLSL
- WebRTC
- JavaScript
-
vlfo
Video LFO. ISF shaders driven from Pure Data over OSC, live in a window, rendered offline at any size, or published over NDI.
- Rust
- wgpu
- ISF
- GLSL
- OSC
-
fast-vj
A realtime VJ sampler for the Raspberry Pi 4. Fullscreen 1080p video with GLSL effects at 60fps, triggered over OSC and scripted in LuaJIT.
- C
- GLSL
- LuaJIT
- OSC
- Raspberry Pi
-
dan-mx
A lighting protocol for pixel-dense LED displays on IP networks. Variable-size frames, per-frame compression, and color encoding that follows what the eye can see.
- Python
- C++17
- ESP32
- UDP
-
2040-ArtNode
An open-hardware Art-Net LED controller. RP2354A and W5500 Ethernet driving four WS2812 outputs, with USB-C LiPo charging, laid out for JLCPCB assembly.
- RP2354A
- W5500
- KiCad
- Python
- Art-Net
-
Blender Art-Net bake
Blender as a lighting engine for an LED panel. Cycles bakes the light falling on a surface into the panel's pixel grid, and a script sends it out as Art-Net.
- Python
- Blender
- Cycles
- Art-Net
-
Art-Net visualizer
A window that stands in for a 64×64 LED matrix. It listens for Art-Net and draws what the panel would show, so you can work without the hardware.
- Python
- pygame
- numpy
- Art-Net
-
glfo
A live video performance framework for Pure Data and GEM, organised as sets, scenes and presets. The predecessor of vlfo.
- Pure Data
- GEM
- OpenGL