08 / Theatre tech · Automation
Hue to QLab ArtNet Bridge
A Python bridge that lets QLab run Philips Hue bulbs as stage fixtures, built for a production.
Summary
For Threshold Theatre Collective's Jekyll & Hyde, the creative team wanted Philips Hue smart bulbs as practical set dressing, street lamps, desk lamps, and wall sconces, with full theatrical control from the show's QLab cue stack. Hue does not speak ArtNet or DMX, the protocols show control software uses to talk to lights. So I wrote the bridge that makes it.
Context
Practicals are the lights that live on the set: the lamp on the desk, the sconce by the door. Real stage practicals need dimmers, cable, and a console. Hue bulbs are cheap, wireless, and already have a candle flicker built in, but the only way to control them is a cloud-style API over the network. The show needed them to fade, snap, and hold on a GO like every other light on the rig.
What I built
- A Python bridge that listens for ArtNet packets from QLab on UDP port 6454 and translates them in real time to Hue V2 API calls over HTTPS
- QLab treats each Hue fixture as a standard DMX dimmer: patched, addressed, and fadeable like any other light. All 10 fixtures are mapped to their own DMX channel
- Hue's native candle flicker stays running underneath every brightness change, so the practicals never go flat
- Fast cues under two seconds use Hue's built-in transition timing to avoid flooding the bridge's rate limit; slow theatrical fades track intermediate DMX values for smooth dimming
- Pushlink authentication with the Hue Bridge, fixture and room discovery through the V2 REST API, QLab ArtNet broadcast configuration, and dynamic IP discovery through Philips' cloud endpoint so the rig moves between venues without reconfiguration
How it works
01
Cue fires
The operator hits GO in QLab. The cue carries DMX levels for the practicals alongside everything else in the stack.
02
ArtNet out
QLab broadcasts the universe as ArtNet packets on UDP 6454. The bridge listens on the show network.
03
Translate
The bridge maps each DMX channel to its Hue fixture and picks a strategy: native transition for fast cues, tracked steps for slow fades.
04
Hue responds
Brightness changes go to the Hue Bridge over HTTPS with the candle flicker still running underneath.
Detail
The rate limit is the whole design
The Hue Bridge accepts only so many commands a second, and a theatrical fade wants to send hundreds. Splitting cues by length, fast ones handed to Hue's own transition engine and slow ones stepped through intermediate DMX values, is what made the practicals feel like real dimmers instead of smart bulbs catching up.
Outcome
A fully integrated lighting system that blends smart home hardware with professional show control. Operators get smooth, cue-based control over ten practical fixtures with no extra hardware and no dedicated lighting console, and the rig travels between venues.
0
Hue fixtures on their own DMX channels
0
Extra hardware or consoles needed
0
The UDP port the bridge listens on
My role
Designed and wrote the bridge from scratch, configured QLab and the Hue system, and ran it on show nights.
Stack
- Python
- ArtNet
- DMX
- QLab
- Philips Hue V2 API
- HTTPS
- UDP