Introduction: Geoweaver: a Walking 3D Printer Hexapod

Geoweaver is a student designed (team members Jia Wu, Mary Sek, and Jeff Maeshiro) robot created in the Creative Architecture Machines advanced options studio at the California College of the Arts (CCA) in San Francisco, California, taught by Jason Kelly Johnson of Future Cities Lab and Michael Shiloh. The design is based on a 12-servo hexapod with a glue gun extruder attached, is the culmination of about 60 days of research and prototyping, and, as far as we can Google, is the world's first walking 3D printer. Although the robot's official name is Geoweaver, it also goes by many aliases: Servo Killer, Eater of Shields, Melter of Wires, and Destroyer of Regulators, among many others. It is a very difficult and delicate machine, and is not a project to be tackled for the faint of heart.

But if you do take it upon yourself to accept it's challenges, it's rewards are great: it is a six-legged, walking 3D printer. The center mechanism uses two servos to control the pendulum-like extruder head, allowing it to cover a basic XY plane (though curved to the surface of a sphere, see video above), and one servo for the extrusion gear that forces the glue-sticks through the "print head." All of this can be controlled through the software Rhino 5, with the plug-ins Grasshopper and Firefly (developed by our professor Jason).

First, we must mention an Instructable that aided us at the start of our prototyping, the Hot Glue Gun Extruder for Your CNC Machine or 3D Printer project. It gave us a great starting point for our print head and we were grateful for the leg-up. Second, we utilized this tutorial to figure out how to do spirals in Grasshopper, though the spirals we made came out pretty intense.

Third, here is a video of the 62 day development process with different material tests and trial robot versions.

Lastly, this project was devilishly and deviously difficult and would not have been possible without our professor Jason Kelly Johnson's guidance (even writing a custom Arduino-to-Firefly firmata for us to be able to use the servo shield, see Step 8). And of course our other professor Michael Shiloh's sure-handed advice, most especially with the wheeled toes, a pretty nifty bit of mechanical innovation, if we are permitted to say so. Thanks also to Andrew Maxwell-Parish of CCA's Hybrid Lab (and Instructables Artist In Residence ElectricSlim), your help with our projects was matched only by your enthusiasm for all of them. We are grateful to all three of you for your invaluable help.

Anyway, let's get Instructablesing.

Required Items (tools):

  • Vertical band saw
  • Phillips/flathead screwdriver in multiple sizes
  • Power drill and drill bits
  • Wire cutters
  • Needle nose pliers
  • Measuring instruments, ruler or vastly preferably calipers
  • Laser cutter
  • 3D printer


  • 15 high torque servos (complete with the "+" shaped servo horns and servo center screws that should come with the kit
    Bolts and locknuts (about 48 of them), or whatever bolts fit through your servo flange holes (the side holes). At least 3/8'' long (enough for the 1/4'' plastic or Al and a locknut to fit on there)
  • 1/8” at 24” x 48” sheet of plywood (for legs/center mechanism)
  • 1/4” at 24” x 48” sheet of plywood (for body)
  • 2 bags of hot glue
  • 1/8” at 11” x 17” sheet of acrylic (for extruder)
  • 3 bags of 100ct mini zip ties
  • Small gauge wire
  • Dowels
  • 6 rubber sink washers

Required items (electronics):

  • Arduino Uno
  • Servo shield
  • Computer
  • Male headers
  • Jumper wires (or single core wire suitable for breadboards)
  • Servo extension cables

Required items (programs):

  • Rhino 5
  • Grasshopper plugin (for Rhino 5)
  • Firefly plugin (for Grasshoppper)
  • Arduino

Step 1: Laser Cut/3D Print Parts

Laser cut all of the parts out. There is one file, the thickess of material or type is up to you. We used 1/8" plywood, but 1/16" plywood or 1/16" acrylic is fine too.

*Keep your pieces organized and labeled, this makes it much easier to work. You will need a screwdriver, screws, drill, drill bits, zip ties, tape, sharpie, and nuts/bolts.
*Print or cut out a few extra pieces, they come in handy when one breaks or if you need a stand in piece

Next, 3D print the toes and tail. We used a Type A Next Generation Series 1, printing PLA with a 10% fill (to keep them light).

Step 2: Building the Hip Segment of the Leg

Next are the legs. We have attached our DXF template in step 1 if you want to use our design.

We found that the mechanics alongside the ratio of the pieces are imperative for the hexapod to walk smoothly (not to mention the code), but first you must stabilize the mechanics of the hexapod.

This includes figuring out the encasement's for the each of the motors and their connections to each other. You want the hexapod to be both stable and light.

Also, take into account using slotted or dovetail connections with adjacent slots for quick zip tie connections and use the same dimensions on other parts so you can mix and match if need be. It makes construction fast and secure. Also, take into account the position of the servo. You want to create an environment where there is least torque for the motor, which could mean flipping the servos around, and MAKE SURE that joints are centered with the body of the hexapod. Any offset awkward pieces can affect the code and how the hexapod walks.

If you are using our design and have printed out the parts, use:
L.a (2)
E.i (2)

and fasten together with zip ties. Make sure that you secure a nut underneath the servo to attach to the body.

*Attach all horns onto servos and label each hip and knee. Preferably, the hips will all be one color tape with annotations, and the knee would be the other color with annotations.
* DO NOT restrict the servo by screwing in the center to any piece until servo is zeroed or calibrated. This could strip the servo, causing it to no longer work.

Step 3: Building the Knee Segment of the Leg

After the hip segment is put together, the next step is to put together the connecting knee segment. For this part, you will need:
E.i (2)
L.g (2)

Fasten parts together with zip ties and then secure hip segment to the knee segment, do this for the six legs.


Step 4: Building the Body

The body has been designed as a circle and thus the legs are positioned radially around it. This forces the walk algorithms to take this into account. More accurate walk patterns can be had with a parallel leg system but we chose radial after many trials, finding that it's versatility was a great asset in different walk types.

Simply laser cut the pieces from the laser cut file. For this step, you will needs parts:
L.i (6)
L.j (6)

* Note that when using slotted or dovetail connections; make either the male or female end a bit smaller for a snug connection.

Once all the legs are put together, labeled, and zeroed, attached them to the body of the hexapod. You can also attach everything and leave the center servo detached prior to zeroing them. Attach all the pieces together minus the top, then attach the legs. Once the legs are all attached, place the top piece on and secure with zip ties.

Step 5: Building the Center Segment for the Extruder

At this point, the majority of Geoweaver should be put together, so the next step is to attach the center component for the extruder head to attach to. For this step, you will need:

E.c (2)
E.d (3)
E.i (4)
E.j (2)
E.n (2)

The final piece to this segment is the dowel. We used a dowel that was 3/8," but you can use whatever thickness you like.


Step 6: Extruder Head

The first step to building the extruder is to make sure your motor works, whether it is a stepper or a continuous high torque motor. Also, make sure everything is a tight fit, you will need gluesticks handy because you will be doing numerous testings throughout the process.

Required items (hardware):
  • 3/8" Plywood (~6.5" x 4.5")
  • 1 High torque servo (complete with the "+" shaped servo horns and servo center screws that should come with the kit)
  • Large plastic gear with teeth that fit your Servo Motor
  • 4 Metal Bearings (15mm outside and 6 mm inside)
  • 9 to 10 - #8 1.5" Bolts and/or #6 Bolts
  • #8/#6 Washers (we used about 20 in this design)
  • #8/#6 Lock Washers (I used 2)
  • #8/#6 Nuts (8 to 10 used)
  • #6 0.5" Screws (we used 4)
  • Metal L Bracket 1.5" x 1.5" with 2 holes in each side
  • Slotted Metal Bracket ~2" Long (slot needs to be able to fit #6 or #8 screws)
  • Mini Hot Glue Gun - Low Temperature
  • Mini Hot Glue Sticks - Low Temperature
  • Small Zip Ties
  • Small piece of ⅛” acryllic

First laser cut all parts in the attached DXF file. Arrange all pieces but do not screw them together yet.

Step 7: Attach Glue Gun Internals

After all the components are in place, the next step is to attach the hot glue gun internal. Take a low temperature glue gun and remove all the screws to extract the main heating components. Then attach glue gun head to the previously put-together extruder parts. You are now ready to screw everything into place.

*The screws cannot be too tight or the movement of the glue sticks.

Step 8: Firefly Control Panel

The most difficult part of the project is how to control Geoweaver while walking and printing. We spent a lot of time on the motion research, and so far Geoweaver can walk in a straight line, a curved line, rotate, dance, and print while walking. This hexapod has been designed to be controlled by an Arduino Uno taking commands directly from Firefly, a plug-in for the CAD software Rhinoceros 3D. Firefly was created by our professor, Jason Kelly Johnson. Rhino is $995, however you can download a trial version of it here. The Rhino plug-ins Grasshopper 3D and Firefly are free and run perfectly fine on the trial version so you can operate Geoweaver without purchasing the full Rhino. First and foremost is a custom-made Firefly firmata for Arduino written by Jason, which should be uploaded to the Arduino. This allows it to receive messages from Firefly.

Once in Grasshopper, the controls are color coded: purple is for Geoweaver's dimensions, white is for the walk commands, yellow is for the Arduino control components, and blue is for the print commands. Make sure that the Arudino port number is correct. The walk commands utilize Firefly's "Counter" component to feed numbers into the legs. One of the initially confusing parts may be that in order to "turn on" the walk algorithm you must set the "Run walk/rotate" boolean toggle to False, not True. Included in the file is an animated version of Geoweaver which allows you to simulate and test movement patterns before you attempt to start running servos with it.

Step 9: Tricks

Trick 1: Zip tie connections with the rabbet in plywood, pre-cut holes and use zip ties to connec. Making the plywood connection strong is imperative when you need the robot to walk.

Trick 2: Buy servo extension cables. Extensions can help you connect the cables to the servo easier and helps make things more organized which is very important for a project which uses 15 servos.

Trick 3: Each servo performs differently which will affect the robot's overall performance. You can use Grasshopper to remap when calibrating each servo.

Step 10: Printed Objects

Samples of printed objects from Geoweaver. We hope you give it a try and please let us know of any suggestions or improvements. Thank you.

Supercharged Contest

Third Prize in the
Supercharged Contest

Hardware Hacking

Participated in the
Hardware Hacking

Manly Crafts Contest

Participated in the
Manly Crafts Contest