I won’t waste a lot of time going in to how much everyone, no matter which party you support, has just about had it with the elections. It’s gotten to the point that it’s unbearable.
I decided to have a little fun by offering up something to let people take out their frustrations in a fun way. I dusted off the old Internet-controlled paintball gun system and swapped it with a laser and put up a website where you could control it and have fun shooting targets!
Last year I worked with a German artist on a project called 11Days that allowed people to control a paintball gun in a rat enclosure. Needless to say it caused quite a stir (don’t worry, the rat was perfectly safe) and made its point. I used the same technology stack (again, with lots of modifications) and built an enclosure in my house.
The basic premise was this:
- Allow people to control the “gun” via their browser
- The laser would shoot targets and elicit soundbites from the candidate
- Their eyes would flash each time a target of theirs was hit.
- It kept high scores and had a leaderboard
- It had the ability to record someone’s session and play it back in real-time (auto-pilot for the gun)
- Videos of the user session could also be recorded and downloaded by the user
The basic setup is this:
- Local NodeJS server that controls the gun. It attaches to a remote NodeJS server that handles the user interaction, queuing system, etc.
- Local instance of FFMpeg that provides the camera stream. It connects to a remote NodeJS server that handles the distribution of the stream to multiple clients.
All-in-all, three (3) NodeJS servers were used. The website itself was built using Silex, which is a stripped-down version of the Symfony PHP framework. There was an Arduino Uno controlling the servos (pan and tilt) for the gun and camera setup, and an Arduino Mega used to control the photoresistors embedded into each target as well as the LEDs used for the candidates eyes. The soundbites were pulled from the interwebs and the music that played was a circus theme that I played with to make it sound all bent out of shape.
The video below was made and put on Facebook (via Youtube) and shows the setup in action.