Pixel Mapper

video to ACN

This originated from the idea: "wouldn't it be cool to use After Effects to control DMX light!" The idea of keyframing DMX is not new, but also not widely implemented at this time. My background in vfx made this a very attractive idea, so I went looking for a way to control lights using video. A number of commercial solutions existed, but after having a look at the sACN protocol I decided to make my own so I would have more control over how things like saturation and color spaces were calculated.

This setup was aimed at the Keller Kinder light rig. That whole rig was run via this video to DMX program.


The first step in this quest was to figure out how I wanted to move data around. There are a lot of different protocols available for both video and lighting data. A friend showed me a vvvv script that output art-net to some joshua 1 systems boards to drive LEDs, so I used this hardware as my starting point. I already knew I wanted to use LED strips in my lighting design so this was a simple choice.

I knew Mac would be my platform so I decided to do video sharing using Syphon. The boards that ran the LEDs would accept either art-net or sACN. I decided to use ACN as it was a better format and easier for me to code and use.

I chose processing to write the program in. This made it super fast and easy to write, however it's java, so runs pretty slow. If I were to do this again I'd probably just write it in C.

DMX testing

First LED test

Assembled Pole test


I selected the ECG-P12S controller board for this project. It has 12 SPI bus outputs for LED strips, and 2x DMX universes. Whole things runs on ANC and is setup via an internal web page. I was very impressed and happy with it. A psu from a dvd player was used to provide the 5v and the whole thing was wired to RJ-45 connector bank. This was then enclosed in an old server psu chassis

The LED strips were attached to some pine/mdf pole stands. Each had a 10A 5v psu at the bottom to provide the high current for the LEDs. This was a bit (way) overkill, next time I plan to use a single central power supply. Downside is this provides a single point a failure and the supply needs to be very very powerful.


Video was all custom content I made in after effects. This was based off a 100x100 pixel map that was programed into pixel mapper. I allocated zones of the video for each fixture and used a template to line up my layers in AE.

Video was served via Resolume. I used a custom midi controller to trigger clips and effects. Resolume has built in Syphon output which went right into pixel mapper

Pixel mapper then received the video and used a few different fixture classes to select pixels, translate colors, and assemble an ACN data packet with the DMX values in it. One of the key things pixel mapper made easy was the translation of an RGB video to the RGBW (white) values of the LED par cans I was using.

This DMX data was then sent out in the ACN format over UDP. The ECG-P12S controller board would then pick this up and use its internal patching to allocate DMX addresses to both the pixel strips and the two DMX jacks.

Full mapping test