What do you get when you put together the magic of the holidays and the creativity of a digital marketing and design agency? That’s right: a Web-enabled Christmas tree.
In late November we discovered the amazing robot named “Sid” created by sidigital in the UK (seriously, so much cool stuff starts in the UK). I’ve always been fascinated by robotics and electronics, and after attending WebVisions PDX this spring, I’ve been looking for ways to connect the virtual world to the physical. Sidigital accomplished this exceptionally well and inspired us to find a way to apply the techniques that they used in our own way.
We mapped out the project and determined that it would take a team effort to make it happen. From concept to implementation there would be a lot of steps in between which would utilize all of the disciplines represented here at Gravitate (plus a few new ones that we had to learn).
Peter and I hatched the idea and made an equipment list and a flowchart to present to the team to get them on board. Once we had the team in place we went to work. Ryan was our front-end designer and Corban and Brian did the development, Peter handled the multiple layers of programming from the streaming webcam server, arduino, socketIO on a nodejs server. I was in charge of wiring the system of switches attached to the outlets that controlled the lights, and obviously we needed a crew to setup and decorate the tree (Joe V., Mel, Lorena, Ryan). As you can see by the illustrations below, it took a village to make it happen. Props to Kyle for the great illustrations.
The Setup (get your nerd on!)
The tree has a total of 10 strands of lights attached to it (2 strands of 5 colors). That allows the user to control the colors and intensity of the lights. The UI is simple and straightforward. It allows you to control the brightness of each color and the rate at which they blink. The arduino connected to a 16-channel relay board that toggles the power to each strand of lights.
The arduino and webcam are attached to a laptop with the RTMP video streaming server and ruby and socket.io to facilitate communication between arduino and the web server running Node.js.
What’s the Point?
Once all of the pieces were talking to each other we knew that we wanted to find something to make it more meaningful. Sure, being able to control Christmas tree lights from a website is cool, but it’s not going to change anyone’s life.
Or is it? We decided that we wanted this project to be more than a fun challenge for us, so we have decided to donate $1 to Doernbecher Children’s Hospital every time someone gives 30 seconds of their time to play with our tree. As a bonus, you may see a random Gravitate employee jump in front of the camera and give you a holiday wave and a smile.
This might be the most fun and easy way for you to give this Christmas season, but don’t let it stop there. Let it be a reminder that a little fun, combined with hope and love, are the elements for making the #BestXmasEver.
We kept the tree up until New Years, but unfortunately the tree is down now. However, feel free to leave a comment below if you have any ideas on what we should do next!