3D Printer

I picked up a 3D printer at the start of the new year. I had a chance to see all the cool new printers at CES, and after reading good things about the printrbot metal, and realizing they provide a nice upgrade path from the $350 printrbot, I couldn't resist.

The initial experience was in-line with my expectations. Although there's been a lot of great activity that's advanced 3D printing an incredible amount, printing is still pretty fiddly.

The printer, unassembled. 

Assembly took two of us most of a Friday night, but it was fun, and one of the reasons why I wanted to build from kit was so that I'd have a much better understanding of how everything worked.

The printer, assembled. 

I spent the first few weeks intensely banging my head against the wall trying to figure things out. I ran through most of the typical problems people have when they first get a printer, such as struggling to get the material to stick to the printer bed (the first few layers are tricky) and getting the right rate of filament extrusion. Finding good advice can be challenging but the forums are often helpful. Josh Marinacci also wrote this guide that I found useful.

The printrbots, at least in their current version, often have their extruder gear motor heat up, which softens the filament, which causes it to jam instead of flow through the hot end, which causes a big mess. I modified the exruder by adding a fan and that seemed to address the issue.

Most of my intitial focus was getting this design to print: an incredibly cool articulated robot with working joints that prints as one piece. I eventually got it working.


After that, I did more puttering around. I set up octoprint with a raspberry pi, printed some more stuff to improve my printer, and messed around with CAD software.

My child's classroom has a 'reading tent', a structure made of tubes and spokes. One of the support pieces broke and they couldn't find a replacement.

I made some measurements, and in less than 30 minutes had a replacement part running in the printer.

The original part and its evil twin. 

I made some small errors with the design that would have been easy to fix, but the part is functional, and the tent was restored. Cool. It was fun to have an opportunity to do the kind of stuff I imagined doing when I first ordered the thing.

Jazzercize to Fit

OK, admittedly not the best project name for my MHD2014 Boston hack.

I was inspired by the video that broke a few days previously - someone took Taylor Swift's "Shake it Off" and synchronized it to an 80s Aerobic video.

There have been multiple takedown-reposts of the video, so I'm not going to bother to try and link directly to it. The original poster did some nice editing of the video, and it worked really well.

I used the Echonest Remix tools to analyze the original audio from the video (~75bpm) and the Taylor Swift song (~160bpm). The audio replacement worked because the new song's tempo was an even multiple of the source audio.

That got me thinking about matching songs and videos that did not have matching tempos. By using ffmpeg to stretch or shrink the video, this is possible.

In this case, I matched Mika's "Origin of Love" with the original Aerobics video:

"Origin of Love" had a lower BPM than the original video soundtrack, so my script originally slowed down the video. I added a parameter that allowed me to run the BPM at a multiple -- this version matches the video to 2x the song's BPM.

This script works with any source video, not just aerobics programs from the 80s. My first try was to match a different song to the Taylor Swift video. I did pull the audio from the Aerobics track and try that, but it is more fun with Coldplay's "Sky Full of Stars":

I had a lot of fun on Sunday morning trying to find interesting combinations. The Echo Nest crew suggested I try matching something to a Fatboy Slim video. Here's The Five Stairsteps o-o-h Child matched up with the video for Fatboy Slim's Weapon of Choice:

Given that Iggy Azalea's Fancy was a pretty popular song in demos this year, it made sense to try that. I matched it with Starland Vocal Band's Afternoon Delight:

The tool can take any video as input, but I only expect it to work well with video that's strongly defined by a beat. Naturally, music videos work great, but exercise and athletic videos also work really well.

Take, for example synchronized swimming (the video is from the Russian synchronized swim team, a pre-Olympics event). I originally paired this with Beyoncé's "Single Ladies", but am showing it with Bob Dylan's "Tangled up in Blue" here:

I had a great weekend. It was a ton of fun hanging out with the other participants and seeing their awesome hacks on Sunday.

If you are interested, the code's available on github.