The scene, and what the camera sees

A real WebGL scene beside the image a pinhole camera forms of it, with the camera's field of view derived from a focal length in pixels. The two views stay in sync, so moving the object moves the projection.

Try this

Push the ball away from the camera and watch its projected radius shrink by the same factor its distance grew.

Try it: the red-ball scene in 3-D
Scene drag to orbit · scroll to zoom
What the camera sees the render (640×480)

Where this lab comes from

Camera Models, End to End: K, the Extrinsics, Calibration & PnP, with OpenCV

How a 3-D point becomes a pixel and back again: the intrinsic matrix K, the extrinsics R|t that place the camera in the world, Zhang calibration to 0.35 px reprojection error, and solvePnP recovering a 68-px-off pose to ~0. The math, two interactive labs, and runnable OpenCV in Python and C++.

More in cameras and geometry