Fluxtime Photobooth
Jan 19, 2014
Last year, Reid and I set up a photobooth at the Flux Factory 2013 Benefit using our Rainbow Machine technology. This year, Jason, Reid, and I made a photobooth for the 2014 edition of the event that built on the idea we started playing with last month. Flux Factory is such a great organization, it was an honor participate yet again.
The animated GIFs were made using three Rebel T3i cameras hooked up to Raspberry Pis to simultaneously take photos and process them. The GIFs were ready in less than 10 seconds from the photo being taken. Below I’ve outlined how that was done below, but first here are some of my favorite images from the night!
The Setup and Code
Each camera was tethered to a Raspberry Pi running a simple Flask web server. I exposed two routes in the web server: preview
, which simply returns the digital view finder image of the camera; and snap
, which invokes the shutter and returns the image from the camera.
To control the cameras this way, I used libgphoto2 bindings exposed in python by piggyphoto. It is remarkably simple to control the Canon T3i’s that Reid provided.
I made the Raspberry Pis run the Flask webserver on boot using crontab, which made it easy to reset the software if ever there was an issue.
Each Raspberry Pi was connected to a wifi router so they were on the same LAN. The master computer that the photographer used to take the photo was wirelessly connected to the same LAN.
Setup photos courtesy of Nick Normal, #smudgefilter
To take a photo, a simple bash script was run to curl each camera (more-or-less simultaneously, room for improvement possible – but not sure if it’s worth it), convert the images to GIFs, and make an animated GIF using gifsicle. I ran this script on an Apple laptop running OS X 10.9.
The animated GIF result was sent over to a viewing computer using scp
that ran a PHP gallery script Jason hacked together, so that within 10 seconds the animated GIF photo result was viewable. This quick turnaround time is crucial for keeping your customers happy!
That’s it! Sounds easy, but there was a lot of moving parts in play to make this work. Each Raspberry Pi has three cables coming out of it (Ethernet, power, and USB) and we used two power strips worth of plugs to keep everything running. At one point a Raspberry Pi stopped booting, but I was lucky enough to have an extra SD card with a freshly flashed version of Raspbian on it, phew!
The lighting, backdrop, and focal point of the shots were well-considered. The balloons were a great addition from Jason to have something fun for the participants to do while having their photo taken. During operation, the batteries in cameras needed to be swapped and camera settings needed to be tuned to get great results.
Having a good team to work with was probably the most key feature of making this photobooth succesful!
Below are some more of my favourite photos from the evening. The entire set can be found here.