Light Paint Buddy

Single frame

Playing around with a linear actuator and some LED´s, led to the development of a fully automated light painting rig, capable of drawing animations into time-lapse videos, including synchronized camera movement and exposure.

It all started with this little array of LED´s, mounted on top of an Arduino mega. I hard coded some arrays, to display the word “Hallo” into a cameras long exposure. The Arduino reads one line of the Array, flashes the LED´s, which have a HIGH value, and then moves the actuator, to display the second row of the picture.

The very first test:

First Test

The next step was, to write a simple controller in processing, in order to replace the necessity of writing the arrays by hand.

When we were asked in our University´s post-production course, to produce a little promotion clip for a local bottling plant, my team-mate Benny remembered this project I did, and thought about using this in our film. So we sat together and thought about how we could take this idea of automated lightpainting to the next step. At first we wanted to have more pixels to paint with (I increased the number of pixels from 12 to 40). Then I figured out, how many rows we were able to paint within the limitations of my actuator (I decided to go for 80 with some buffer space). After realizing, that the management of 40 LED´s by hand isn´t the most economical thing to do, I browsed the web for addressable LED´s. Adafruit´s (now very famous) “Neo Pixels” were just what I was looking for. The main Advantage, was that they were capable of displaying multiple colors, by using RGB chips.

The actuator is a second hand unit, that I shot on eBay (it originally was intended to work as a camera slider). A NEMA 17 sized stepper directly drives this thing. Due to the precision of the unit and the stepper, this combination achieves a high repeat accuracy. This is what the ready mounted unit looks like:


I put together a control Box, with an Arduino Mega as it´s heart, two stepper drivers (one for the light paint actuator and one for the camera slider (we wanted to have some camera movement, to make people recognize, that our animation is really floating in the air, so I built a low cost but quite good working stepper driven slider besides the other project)), an optocoupler for controlling the cameras exposure and a 12V industrial power supply.

We additionally added three single “Neo Pixels”, which I attached to the bottles caps, to make them light up according to our animation.

Benny took my processing controller, and wrote a much mightier one, being capable of converting image sequences into the .buddy format (which he invented to save animation projects in a directly send-able way), and many other useful features. I added a serial communication between this program and the Arduino, so we now were ready to put I all to the test.

After all, our animation had 720 Frames (each one took about 18 seconds to capture) so you can imagine, how long we had to sit around and watch our rig working, hoping that nothing would break apart (it was winter here in Germany and we had about -4 °C… not the best conditions for such experiments).

We are pretty proud of the result, even if we have a little jump in the middle of the clip (this happened, as our second camera, which should capture the whole rig working, ran out of power and set the exposure connection of the main camera to high, until we removed it (I had both connected to the same optocoupler…).