Tuesday, December 30, 2008

My Favorite Christmas Tree

Each year at work a Christmas Tree is dropped off around Thanksgiving time for our office. Each year my coworkers and I are faced with a similar conundrum: we don't have any Christmas ornaments or Christmas lights to decorate the tree. The first year this happened a couple of my coworkers brilliantly solved this problem by using CD's and PCI cards as ornaments and colored network wires as tinsel. The tree that year turned out really well and we have decorated our tree similarly ever since.

This year we've innovated our Christmas Tree decorating. My coworker John proposed the idea of placing mice in the tree and plugging them into a computer so that the lasers on the bottom of each mouse would light up. It didn't take long to collect all of our spare mice together and started decorating.

Pretty soon we were talking about how cool it would be if we could make them blink. A couple of hours of research and experimenting later, I had the prototype program written to cycle through and blink each of the mice. It took a couple of days to swap out and arrange the mice according to hardware ID's and polish the scripts to fine tune the timing. Now the tree looks great: all of the mice blink regularly and independently of each other.

The tree is served by two ultra small form factor Dell Optiplex 620 computers (you can see them in the lower right corner of the video below as it zooms in and out). Each computer has nine mice plugged into it and each is running three batch scripts that cycle through three mice each. We strategically arranged the mice so that the lasers are pointed toward the higher traffic areas: primarily the hallway and doorway; a laser that catches you in the eye really attracts your attention. Since the picture and video here were taken we replaced the star on the tree with a Linksys network switch (though the blinking lights on it are dissapointingly small and unnoticeable).



The latest idea was to place monitors around the base of the tree and have a train going across the monitors around the tree. The best way I could find to have it span multiple monitors was to create an animated gif. I recently finished creating the animation for it in Photoshop; unfortunately, both of the computers I tried using to save it as a gif run out of memory each time I try and save it (they've got 4 GB of RAM). I tried a lot of settings without any success. It is kind of understandable, since the project has over 500 frames each with a resolution of 2560 × 1024.

Some people that see our tree don't realize that the lights are in fact mice. Of those that do, I think that it doesn't occur to most of them that mice don't typically blink like that. There are, however, a select few who appreciate just how cool our Christmas Tree is. If you're on campus, it's worth a trip to the JFSB just to see the tree.

2 comments:

Andrew said...

William, I probably would be one of those that missed the technical wonder of your contrivance. After reading your blog, however, I am impressed beyond measure. I am truly glad to call you a friend and wish you the best, both with your blog, and the new year!

C. said...

This is my favorite Christmas tree also, although it did go up a bit too early for my liking. Well done William, you did us proud!

Post a Comment