Diabolo

This thing is it diabolo, or a Chinese yoyo. It was made in OpenSCAD with the following code:
difference() {
union() { cylinder(20,1,10); cylinder(20,10,1); }
rotate_extrude(convexity = 10)
translate([4, 10, 0])
circle(r = 2);
sphere(8);
translate([0,0,20])sphere(8);
}