code: function box(w, h, d){
      return function(cons, nil){
        function register(x, y, z){
          var nx = x === -w ? -1 : x === w ? 1 : 0;
          var ny = y === -h ? -1 : y === h ? 1 : 0;
          var nz = z === -d ? -1 : z === d ? 1 : 0;
          var nl = Math.sqrt(nx*nx+ny*ny+nz*nz);
          nil = cons(x, y, z, nx/nl, ny/nl, nz/nl);
        };
        for (var y=-h; y<=h; ++y)
          for (var x=-w; x<=w; ++x)
            register(x, y,  d),
            register(x, y, -d);
        for (var z=-d+1; z<d; ++z)
          for (var x=-w; x<=w; ++x)
            register(x,  h, z),
            register(x, -h, z);
        for (var z=-d+1; z<d; ++z)
          for (var y=-h+1; y<h; ++y)
            register( w, y, z),
            register(-w, y, z);
        return nil;
      };
    }
docs: Number, Number, Number -> AtomsCList Every grid position of the box with dimensions (w,h,d).