Code:
function main(args) {
var w =30*MM; // scene size
var a = 5*MM; // period of wrap
var r = 1*MM;
var s1 = new Cylinder(new Vector3d(a/2, -a/2, 0), new Vector3d(a/2, 3*a/2, 0), r);
var s2 = new Cylinder(new Vector3d(-a/2, a/2, 0), new Vector3d(3*a/2, a/2, 0), r);
var pw = new PeriodicWrap(new Vector3d(a,0,0),new Vector3d(0,a,0));
var grid = new Union(s1, s2);
grid.setTransform(pw);
var croppedGrid = new Intersection(grid, new Sphere(0,0,0,w-r));
var shape = new Union(croppedGrid, new Torus(w-r, r));
return new Scene(shape,new Bounds(-w,w,-w,w,-w,w));
}