set(d,1);
asyncloop(caller.loaded,
screentosphere(mouse.x,mouse.y, h,v);
spheretospace(h,v,d, x,y,z);
calc(fh, caller.floorheight_cm - view.ty);
calc(x, x*fh/y);
calc(z, z*fh/y);
set(caller, tx=calc(view.tx + x), tz=calc(view.tz + z), ty=calc(view.ty + fh));
calc(caller.ry, atan2(x,z)*180/Math.PI * -1);
);