A project I have been wanting to work on for a while now is a photo booth. The concept of people having their pictures taken by a robot is amusing, as I have found that it lowers an individual’s inhibitions allowing them to be all sorts of silly. Thinking about how popular applications like Snapchat and Snow, the photo has become a medium to have a conversation.
The requirements for the photo booth had been thoroughly thought out.
Dead simple user interface that is only used for capturing images.
Standalone wifi capabilities allows users to apply filters, download, caption, up-vote, request images be emailed, and social sharing.
Self-contained hardware that is able to be deployed via a single script.
Of course those those then got broken down into more reasonable chunks of work. When working on projects like this I usually break down user stories into simple task like, “As an engineer I need to be able to understand the HTML5 camera API.” This makes it where I can determine the scope of future work and become more intimate with the nuances of technology being explored. With the above PoCs created, the MVP of the photo booth was born, and right in time for Burning Man.
Some loyal friends in The community were able to help then external shell that houses the hardware come together. The shape we settled on was a hybrid between an obelisk and a skateboard ramp, with a base that would allow for rebar to be driven into the desert floor. The exterior was painted to match the theme and a set of instructions written on the face describing the process, including the retrieval via wifi method.
With everything working we set out into the desert to only to be let down by the reality of not fully testing the hardware fully deployed. As a user attempted to connect to the wireless access point it would timeout waiting for upstream DHCP to issue a new IP address. This lead to a lot of frustration, as trying to troubleshoot an issue that you are not intimately knowledgeable of without the internet is a fool’s errand.
With the wifi not allowing the propagation of images the photo booth was still a success. It captured a few hundred photos, with a good portion of them being random people. Upon reviewing the images another issue arose related to the image size; when rendering the input of the camera on the the canvas to get the image as a blob I only sized the canvas at 320 by 240. These smaller size images looked decent during testing due to the layout of the tiles.
Overall this project was a lot of fun! Future plans include cleaning things up a bit, resolving the issues mentioned above, and getting it deployed in a cloud and public capacity.