module torus2(r1, r2)
{
rotate_extrude() translate([r1,0,0]) circle(r2);
}

module oval_torus(inner_radius, thickness=[0, 0])
{
rotate_extrude() translate([inner_radius+thickness[0]/2,0,0]) ellipse(width=thickness[0], height=thickness[1]);
}

color ("green")
translate([0,0,-40]) {
    union() {
        difference() {
                translate([0,0,56]) sphere(54*.40, $fn = 7);
                rotate([0,0,45+180]) cylinder(h=56, r1=54 * 0.25, r2=54 * 0.48, center = false, $fn = 9);
        }
        difference(){
            rotate([0,0,45+180]) cylinder(h=56, r1=54 * 0.25, r2=54 * 0.48, center = false, $fn = 9);
            cube([100, 100, 80], center=true);
        }
        translate([0,0,76]) rotate([0, 0, 0]) torus2(1,1);
        translate([0,0,82]) rotate([90, 0, -45]) torus2(5,1);
    }

    
}