// From dTal include include module xp(n){ translate([50-n,0,0]) cube(100,center=true); } module IrregularPoly() { info = regular_polyhedron_info(name="dodecahedron",info="face normals"); intersection_for(v=info){ rot(from=[1,0,0],to=v) rot(rands(0,20,3)) xp(1); } echo(info); } render() { difference() { IrregularPoly(); translate([1.8,0,0]) IrregularPoly(); translate([-1.8,0,0]) IrregularPoly(); translate([0,0,1.8]) IrregularPoly(); translate([0,0,-1.8]) IrregularPoly(); } }