russell mcclellan

russell.mcclellan@gmail.com

Dancing Stick Figures

Last November, as part of Music Hack Day, co-worker Alex Powers and I created a music visualizer involving dancing stick figures. Alex has had the idea of creating an "algorithmic choreography generator" for some time, and music hack day seemed like the perfect time do it. Alex wrote a python program to take analysis from the echo nest API and generate a "choreography file", describing a dance routine in completely abstract terms. It was my job to take the choreography file and turn that into something people could look at. This separation of responsibilities worked well, and I think it played to both of our strengths. While Alex didn't have much choreography experience, he ended up writing code that produced fairly logical dances and worked for many different genres of music.

dancing stick figures

I learned a lot during the 24 hour hack - I had never touched a 3D modeling program before, so perhaps the hardest part was creating the animated dance moves with Blender. I also had my first exposure to 3D rendering in the browser - after trying to use raw webgl, I ended up using the significantly more fully-featured three.js, which felt quite similar to desktop renderers like opengl. The blender animation integration built into three.js was a total life-saver for our project.

Our demo was quite a crowd pleaser, and we ended up winning the echo nest prize for best use of the echo nest api. Another victory for whimsy! Code, as usual, is available on github under a permissive license. We used both CoffeeScript and Python.

All images and text are licensed under a Creative Commons Attribution 3.0 United States License, except as noted. Linked code, and embedded code examples are licensed separately.