// Dimensions du cube et des cavités
cube_size=50;
sphere_radius=15;
offset=20;

difference(){
    //Cube externe
    cube([cube_size,cube_size,cube_size],center=true);
    
    //Cavité 1: sphère du centre du haut
    translate([0,0,offset])
    sphere(r=sphere_radius);
    
    //Cavité 2:sphère du centre bas
    translate([0,0,-offset])
    sphere(r=sphere_radius);
    
    //Cavité 3: Cavité à droite
    translate([offset,0,0])
    sphere(r=sphere_radius);
    
    //Cavité 4: cavité à gauche
    translate ([-offset,0,0])
    sphere(r=sphere_radius);
    
    //Cavité 5: cavité dans la sphère supérieure
    translate ([0,0,offset])
    sphere(r=sphere_radius/2);
}

// Canal horizontal
translate([0,offset/2,0])
rotate([0,90,0])
cylinder(h=offset,r=cannel_radius/2, center=true);
module torus(r1,r2){
    rotate_extrude(){
        translate([r1,0,0]) circle(r=r2);
    };
}

rotate([90,90,0]) translate([0,0,0]) torus(r1=15,r2=2);