void setup(){ size(400,400,P3D); } void draw(){ background(255); noFill(); //mouse x and y before translation. everything is okay stroke(0); ellipse(mouseX,mouseY,50,50); //go back in space, mouse x and y is now lagging behind! translate(0,0,-200); stroke(255,0,0); ellipse(mouseX,mouseY,50,50); //need to do some math to mouse x and y so I have the true 3D position of mouse float absx = mouseX * tan(radians(60)) * 200 / width; float absy = mouseY * tan(radians(60)) * 200 / height; stroke(0,0,255); ellipse(absx,absy,50,50); }