Introduction: How to Build Your Own Photo Booth
My wife and I set our wedding date for June 5, 2010 which gave me about 8 months of planning. I had decided that I wanted to add a unique touch to our wedding reception that encapsulated my hands on skills. We had discussed getting a photobooth however after researching it determined that $800 was too much :S. So I set out on a path to build my own. I figure there was enough free software out there that I could simply modify it and a camera make my own photo booth. I will provide you with a basic overview of how the photo booth came to be. I must say that I am missing some photos during the construction because well it was put together in less than a month. At the time I had much more on my mind than turning it into an instructable, I just wanted it to be done for the wedding. To be honest most of the time was spent coding and not actually making the booth itself. The booth was also made to be easily be disassembled and reassembled.
The booth itself took a series of four pictures at the push of a button. It would also throughout the night would project the pictures taken onto the ceiling of the tent which we rented for our reception.
Step 1: Materials
1 Windows Laptop or PC
1 Webcam, or digital camera or camcorder with video out capabilities
1 computer monitor
1 USB keyboard (will be hacked, any cheap store bought one will do)
1 momentary push button or switch (normally open)
1 fluorescent light fixture
1 small light bar
1 projector (optional)
several sheets of plywood or OSB
1 1/2" PVC pipe 3.5' long
2 1/2" PVC end caps
2 hitch pins
1 shower curtain w/ clips
picture frame w/ glass
screws and bolts
Step 2: The Booth
The Photobooth can really be made out of whatever you want. I needed to have a somewhat sturdy booth considering it was going to have many people in it and people of all ages. Just build one to suit your needs and your abilities.
The bench is homemade and solid enough for an elephant.
The pictures show the process of getting it together and also the plans that it was originally based off of.
I will explain most of the details of the different aspects of the booth later on.
I do plan to add in some holes and fans into the booth to allow for air flow. Right now the booth is well sealed and when it is outside in warmer weather, i.e. my wedding it overheated the laptop. I was aware of the issue but other than adding a cooler pad I didn't have time to account for this fact. Granted it is an older laptop and so it may not be necessary but with some much stuff going on inside it probably wouldn't be a bad idea anyway.
Step 3: The Software
So I used several programs in order to achieve my finals goals. The main program controlling the Photobooth itself was from the people at Little Filament, http://www.openphotobooth.com/ . It is open source and allows for creating different themes based on your event which is nice.
The other piece of software I used to project the photos onto the top of the tent was Visión by Iamkoa Labs, http://iamkoa.net/vision/.
Visión was slightly modified by me to randomly displayed the pictures that have been taken and also to update the pictures in the list.
I wrote some Python scripts to transfer and transform the pictures so that they would display better. I saved the raw photos in one folder and the edited ones in a folder that the Visión had access to.
Both Visión and OpenPhotobooth run in a web browser via a web servers. OpenPhotobooth runs on a web server that is internal, web.py. Visión however needs a web server running on the PC so that it can load and run properly. Use a bundled web server of your choice as long as it handles PHP.
I used Wamp, http://www.wampserver.com/en/
You could also use, Xampp, http://www.apachefriends.org/en/xampp.html.
Seems that the Little Filament and OpenPhotoBooth have gone offline. Don't know anything about this or if they will come back online. However the installers and also the source code is still available at the github.com website,
Step 4: OpenPhotobooth Theme Code
Here are the modified theme files that I used for my wedding. Very simple and straight forward edits. Makes for some nice added touches.
I modified the theme by changing lines 17 through 19 in the index.html file.
To run the OpenPhotobooth it required as I said using a web browser and the going to the following URL.
I use and the OpenPhotobooth folks also recommend using Google Chrome browser because it has a nice full screen feature, f11.
Step 5: Modified Vision Code
Just added some simple code to run through the pictures that have been made into sets of four which were also moved into the "img" folder in the wamp server's "www" folder.
The addition/modification of code was from line 31 to line 38.
Vision runs on the projector or a second monitor through Google Chrome full screen as well. As stated it runs on a web server such as wamp and is accessed via http://localhost. So you can access both the OpenPhotobooth software and the Vision software on their respective web servers and URLs.
To display the taken pictures on an external source I used the laptops s-video out and set up a projector as the second monitor since the CRT was using the VGA port.
Step 6: Python Code
This python code was used to move and modify the pictures taken into sets of four. This made for better viewing and a more photo booth like photo look.
There is quite a bit of code in the collageWindowFinal.py file because it originally came from another project.
The Node.py and LinkedList.py files are simply python classes that are necessary but loaded by the collageWindowFinal.py file.
The only other thing that is required for this to work is the PIL library.
Step 7: Keyboard Hack and Button
Here is a simple instuctable to help you figure out what you are going to need to do.
It is all based on what type of keyboard construction you have and what purpose you want to use it for.
I simply just needed the button to operate the letter "c" on the keyboard.
I tore apart a $10 keyboard from Walmart and it didn't use an integrated circuit chip but this circuit board. I had to trace the wiring pattern of the keyboard innards to find the right combination. When soldering it is important that no solder is connecting any of the other connections on the board or you will not get the right key press on the computer.
To attach the button to the photo booth I made a circular disk out of some tin sheathing and cut out the center and to the outer edge. This allowed me to slide the wires through the center of the tin disk which would hold the button in place. The back of the switch has threads and comes with a small nut to allow you to attach it to a surface. The circular disk was sandwiched between the wall of the photobooth and a wooden cover plate that was routed out of a small circular pieces of wood. The wooden cover is held in place by the the two screws which go through the circular metal disk as well. To install the switch you have to pass it through the wall first and then place the metal disk over the wires.
Step 8: Paint
What would a good photobooth be without a great paint job. It helps to have friends that are art majors...but I wasn't too bad myself.
Step 9: Lighting
I added two sets of lights. A small light bar that will allow a small amount of light to be present in the booth at all times. I also added a fluorescent light fixture that is controlled by an occupancy light switch, set to go off after 5-10 minutes of inactivity. The switch is mounted a foot or so above the ground to detect motion of feet. This allows everyone no matter what their height to be sensed within the booth. The booth is also energy efficient!! The florescent lights added a decent amount of light but it could have used more.
Step 10: Curtain
The curtain was held up by a 3-4' pvc pipe. The pipe was attached to the outer wall of the booth and then to the inside wall of the booth. The rod was prevented by moving using some small ball hitch safety pins and also a glued on pvc pip cap.
Step 11: Final Show
It turned out well!
Photobooth Success, 552 photos in 4.5 hours....
We have a be nice policy.
Please be positive and constructive.