How-To MakerBot a Bobblehead

Tools needed

  1. MakerBot
  2. Knife
  3. Spring
  4. Hot Glue Gun

Step 1: Find a suitable head and body


There are tons of great head scans of famous (and infamous) people on Thingiverse that MakerBot has scanned using a Polhemus Fastscan laser scanner. Check out our Friends and MakerBot Staff that with a little work can all be bobble-ized. Maybe you'd like to have a Yoda bobblehead? Perhaps a rockin' Buddha? There's a whole universe of things just waiting to nod in a mildly amusing fashion… Or you could make one yourself!

As for a body, the simplest option is to use the *Sta. (* anyone can now be a nodding gangsta)

Step 2: Modify the head model

Because most heads that you'll want to use are best when printed right side up, it can be tricky to make a cone shaped hole underneath it with a small shaft hanging from inside to mount a spring due to the overhangs it would create and skeinforge support would be difficult to remove. So we've come up with a negative space object that can be used on models using a boolean subtract operation. This lets you carve out the cavity with built-in support that's easy to remove.

Download the "head cavity negative.stl" from the *Sta.

First thing you'll want to do is make sure the head is resized to be at least a 40mm cube (60-70mm is best). The negative space is a cone that is roughly 35mm wide and you'll need the head and the surface of the head to be larger than that so the cone remains inside the model and there is a thick enough perimeter to build up from.

Here are two methods to use the negative space object on your model using OpenSCAD or Blender.


OpenSCAD is the easiest way that allows you to make small tweaks to your head until you get it just right. It's also what was used to create the negative space object. The problem is, sometimes OpenSCAD has trouble importing existing STL files. If you get an error that complains about winding-order, then you can't use OpenSCAD. :( We've been unable to figure out how to fix this error. Sometimes passing it through NetFabb fixes it, but very rarely. In that case you'll have to try Blender.

To find out quickly if OpenSCAD can use your head. Open OpenSCAD and save a test script to the same directory as your .stl file. Then type this:


Then press F6. After a few seconds (or minutes depending on how big it is) if you get a message saying "ERROR: Illegal polygonal object - make sure all polygons are defined with the same winding order. Skipping affected object." Then you're out of luck. Otherwise, you're good to go.

First thing you'll want to do is start with a transparent cube (that's what the % at the beginning of the line does) that is roughly the size you want the final head to be. That makes it easier to figure out how much you need to resize and move the head around to be just right.

%translate([0, 0, 32.5]) cube([65, 65, 65], center=true);

Then lay down a big cube that you'll use to be-head it and later do a difference() to remove the shoulders and torso leaving just head from the neck up.

translate([0, 0, -100]) cube([300, 200, 200], center=true);

Press F5 whenever you change the code and want to see a quick rough preview of your design.


Then load in the stl file.

import_stl("tonybuser_low.stl", convexity=30);

Now your goal is to get just the head from the neck up mostly inside the transparent block and the rest of the body you want to get rid of be hidden by the large yellow box. You'll want to use 3 methods: translate(), rotate(), and scale().

Translate lets you move the object in the x, y, and z plane. Since you'll want to get rid of the chest and keep just the head, you'll want to move the whole thing down -35 mm in the z axis. Rotate does just what you think it will. Scale resizes the whole thing by a factor. So 1.4 makes 1.4 times larger.

translate([-1.5, 4, -35]) rotate([-2, 0, 0]) scale(1.4) import_stl("tonybuser_low.stl", convexity=30);

The great thing about OpenSCAD is you can move things around by changing those numbers a bit at a time at a precise measurement until you get it just right. It also lets you make small changes after you've tried printing it and find that it would be better if something was moved just a bit to the side. If you were using something like blender, you'd pretty much have to start over from scratch.


So once you have it just right, you can import the negative space object and wrap the whole thing into a difference() method to cut off the chest and carve out the hole inside. Here's the complete code to make a big Buser Bobble Head.

  difference() {
    translate([-1.5, 4, -35]) rotate([0, 0, 0]) scale(1.4) import_stl("tonybuser_low.stl", convexity=30);

    import_stl("head_cavity_negative.stl", convexity=30);

    translate([0, 0, -100]) cube([300, 200, 200], center=true);

    %translate([0, 0, 32.5]) cube([65, 65, 65], center=true);

This is what it should look like from the bottom. Notice that there is enough of the model left around the neck to provide a good base around the circumference of the hole thick enough to let the rest of the head print. Also rotate the head around to make sure the cone inside isn't breaking out and making holes in the sides of the head.


This cutaway image shows what the internal structure looks like. Notice the support structure. After you print it, you'll cut the 4 cross beams off where it meets the sides of the hole using a knife or wire cutters. Then you'll just twist it and the column in the center should snap off in the middle leaving a stalactite hanging half way down from the ceiling where you'll attach the spring.

Once it looks good, press F6 to compile it, then select Design -> Export as STL and print it!

In case you're interested or want to make changes, here's the code that was used to make the negative space object. Along with code to make a suggested base shaft to mount the other end of the spring.

spring_inner_diameter = 9;
spring_inner_radius = spring_inner_diameter/2;

// use to cut out a cavity in the bottom of the head with cutaway sections to attach a spring inside to a small nub with some glue
module head_cavity_negative() {
  difference() {
    // main cavity
    union() {
      cylinder(h=35/2, r=spring_inner_radius*4);
      translate([0, 0, 35/2]) cylinder(h=35/2, r1=spring_inner_radius*4, r2=spring_inner_radius*2);
    // cutaway/support sections that you remove
    cylinder(h=35, r=2);
    cylinder(h=10, r1=3, r2=2);
    translate([0, 0, 1]) cube([2, spring_inner_radius*4*2, 2], center=true);
    rotate([0, 0, 90]) translate([0, 0, 1]) cube([2, spring_inner_radius*4*2, 2], center=true);
    // spring mount shaft nub that remains inside after you cut away the supports
    translate([0, 0, 15]) cylinder(h=10, r1=2, r2=spring_inner_radius);
    translate([0, 0, 25]) cylinder(h=10, r=spring_inner_radius);

module spring_mount() {
  // neck
  cylinder(h=10, r=spring_inner_radius*1.25);

  // spring mount
  translate([0, 0, 10]) cylinder(h=10, r1=spring_inner_radius, r2=spring_inner_radius/1.3);


First you'll want to cut off the head just from the neck up. You could do this in blender, but it's a lot easier to use the free NetFabb Studio Basic.


In NetFabb, open your stl, then drag the slider for Z: under the Cuts menu on the right until the line is at the point where you want to get the model in half. Make sure the Triangulate cut checkbox is checked. Then click Execute Cut. Now you'll have two parts, select the part that highlights just the head in green, right click it and select Export Part -> as STL (binary).


Now open the stl in ReplicatorG and select Move -> Put On Platform and Center. Then Save.


Now, in Blender, File -> Import -> STL and import the head cavity negative object. Then import the Head. Now, you'll see that the head is too small because the negative object is sticking out of the side of the head. So we'll have to resize it.


Right click the head part, then hold down Alt while you click and drag to rotate around until you can see the bottom of the object. Then press s and then move the mouse to make the head bigger. Since you're looking at the bottom, you should see the negative object bleeding through to help you figure out how big to make the head.


Now in order to cut out the negative space, make sure just the head is selected by right clicking on it, then on the right side menu select Modifiers (the wrench icon), click Add Modifier -> Boolean. Then from the drop-down select Difference. On the object box select the head cavity negative object. Then click Apply.


Now on the top right menu, click the Eye icon to hide the head cavity negative object and you should now see the head with the support structure cut into it.

You're done! Now make sure the head with the cut in it is selected by right clicking on it, then goto File -> Export -> STL.

After you print it, you'll cut the 4 cross beams off where it meets the sides of the hole using a knife or wire cutters. Then you'll just twist it and the column in the center should snap off in the middle leaving a stalactite hanging half way down from the ceiling where you'll attach the spring.

Step 3: Mount it with a spring

You can get an assortment of springs pretty cheaply at Home Depot that should work. You might need to experiment with different springs of various stiffness and length to get the optimal bobble action. This spring from McMaster is pretty good (though you might need to cut it a little shorter and/or stretch it out to loosen it, ymmv).


First screw the spring onto the base shaft. You should be able to twist the spring onto it pretty securely and there's no need to glue the spring to the base if you have a spring of the right size. (it also makes it easier to swap heads later)

Then sit the head on top to see if it works before gluing it. Without glue it might tip over badly, but it should give you a sense of how well the spring performs. Press the head into the spring as best you can.


Once you have a spring you like, it's time to make it more permanent. Securely attaching the spring to the head shaft will significantly improve the bouncy bouncy action. Get a hot glue gun and put a thick layer around the circumference of the spring. Not too much. You don't want it to ooze all the way down onto the base shaft. Then press the head in as far as you can, make sure it's straight, and hold it there for a minute or two while it sets.

Step 4: …

Step 5: Bobble!

Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.