Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!

Parametric Yo-Yo

by MtDon, published

Parametric Yo-Yo by MtDon Dec 14, 2012
2 Share
Download All Files

Thing Apps Enabled

Order This Printed View All Apps



Liked By

View All

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag.

Print Thing Tag


Thing Statistics

11085Views 4863Downloads Found in Mechanical Toys


Print various shapes of yo-yos using the OpenSCAD script. Both "Imperial" and "Butterfly" shaped yo-yos may be made.

The shape of the yo-yo halves are based on an ellipsoid, formed by scaling a unit radius sphere, using different scale factors for the z-axis vs the x-axis and y-axis.

Faces are formed in the ellipsoid by differencing cubes, offset from the xy plane, from the ellipsoid.

A hole for the yo-yo axle is formed by differencing a cylinder from the modified ellipsoid.

All the parts and assemblies are translated so they all sit on the XY plane, and centered on x=0, y=0, except the x-sections.

There are also options for cutting a pattern into the outside faces, making large cutouts into the outside faces and cutting voids into the interior of the yo-yo halves. Both the cutouts and voids are meant to be used to vary the moment of inertia of the yo-yo.

Axles can be either printed or cut from wood dowels, metal rods, or plastic rods.

Yo-yos can also be rendered with both halves and the axle assembled. So there is the possibility of printing a complete yo-yo, other than the string, If you want to print a complete yo-yo, you need to set the parameters used to adjust the hole diameter and the axle length such that they do not cause the parts to be unconnected. The stl files of merged parts that I've uploaded have been made using parameter values which cause the merged parts to be connected into one solid 3D part. The merged x-sections show the unconnected parts that were modeled using the parameters used for printing separate parts, so there are small gaps between the axle and axle holes.

The yo-yos in the photos were printed on the MakerBot Replicator at TechShop Austin - Round Rock (Texas). Using black ABS plastic, 80 percent fill, and 3 shells.

This is a work in progress. Some of the things I want to add are: use of ball bearing axles, use of cylinders as the base shape, axles with a narrower diameter at their center than at their ends (to keep the string away from the sides), printing patterns on the inside faces of the halves to modify the friction of the inside faces. I also want to experiment with post-processing the parts to make them smoother. I also want to write a simplified OpenSCAD script where all the parameters are input as actual values rather than as ratios and factors, and with slightly fewer choices.

The file Star01.stl is a "centered and set on the XY plane" version of the star in http://www.thingiverse.com/thing:35495 .

Please play around with the different parameters and post photos of your yo-yos or yo-yo parts.


In order to give the yo-yo enough mass, I recommend printing all the parts at least 80 percent solid.

Typical yo-yo diameters range from 50 mm to 65 mm, with 55 mm and 60 mm common. For small children, smaller diameters may be good. Typical values for the gap between halves are 1 mm to 3 mm.

Yo-yo strings can be bought at some toy stores or online. I bought some at a local toy store for 50 cents (US) apiece.

General Description of the Process

This is an OpenScad script which produces 3D renderings of yo-yo parts which can be exported as stl files, which in turn can be printed using a 3D printer.

Either a printed plastic axle, a wooden dowel, a solid plastic rod, or a metal rod can be used for the axle of the yo-yo. Measure the diameter of the dowel or rod and use that measurement for the value of parameter "axdiam."

To determine the length of dowel or rod to use:
Choose a value for the parameters "axhole" (the depth of the hole in each half which holds the axle) and a value for the parameter "gap" (the gap between the halves when the yo-yo is fully assembled)
Theoretically, the length of the dowel or rod required is then "gap" + 2*"axhole", but I've found that a bit of trial and error is needed to get the right length.

I have included a the module "testholes()" which can be used to check the fit of the axle to the printed hole before printing the yo-yo parts.


Print parts and remove all blobs, wild strands, etc. Smooth all rough edges. Be especially careful with areas of the yo-yo that the string will rub against, and where the yo-yo'er's hands can catch the yo-yo; in other words - everywhere. You may want to rub it or soak it with/in acetone to get a very smooth finish.

Next, glue the axle into both halves of the yo-yo. Apply the adhesive to the sides of the holes in each half, then stick the axle into the hole in one half, then the hole in the other half and press the halves together. Be careful to keep the inside faces of each half parallel while the glue sets. Wait until the adhesive cures before stringing the yo-yo and playing with it. I've used "Super Glue - Brush-on," by Loctite which comes with a brush to apply the glue to the sides of the holes, and it works well. If you don't have a brush, use a toothpick, or something similar, to spread the adhesive onto the sides of the holes.

Stringing the yo-yo

String as you would any other yo-yo.

Some good websites with instructions for stringing yo-yos:



To download OpenScad go to: http://www.openscad.org/
OpenSCAD is Free Software under the terms of the GNU GENERAL PUBLIC LICENSE Version 2.

More from Mechanical Toys

view more

File Name



All Apps

3D Print your file with 3D Hubs, the world’s largest online marketplace for 3D printing services.

App Info Launch App

Auto-magically prepare your 3D models for 3D printing. A cloud based 3D models Preparing and Healing solution for 3D Printing, MakePrintable provides features for model repairing, wall thickness...

App Info Launch App

Kiri:Moto is an integrated cloud-based slicer and tool-path generator for 3D Printing, CAM / CNC and Laser cutting. *** 3D printing mode provides model slicing and GCode output using built-in...

App Info Launch App
KiriMoto Thing App

With 3D Slash, you can edit 3d models like a stonecutter. A unique interface: as fun as a building game! The perfect tool for non-designers and children to create in 3D.

App Info Launch App

Print through a distributed network of 3D printing enthusiasts from across the US, at a fraction of the cost of the competitors. We want to change the world for the better through technology, an...

App Info Launch App

Quickly Scale, Mirror or Cut your 3D Models

App Info Launch App

3D Print a wide range of designs with Treatstock. Easy to use tools to get the perfect result. The global 3D printing network that connects you with high-quality and fast working print services nea...

App Info Launch App

OpenSCAD is no doubt the best program for this, given the symmetry, but for trick yo-yo's you'll need one half to screw into the other so the ball bearing may sleeve over the axis. This can be tricky in OpenSCAD, so I recomment using Autodesk 123D Design. It's simple, clean, and dynamic in converting 2D shapes to 3D. This can help make the screw, unless you want to just solder the halves shut.

Anyway, great work, you're obviously a fantastic mathematician. A fan of calculus too, it would seem.