The Stage Is Part of the Argument: Camera, Text, and 3-D
In 3b1b ManimGL, a mathematically consistent object relationship can still become unreadable if the camera, coordinate system, notation, or depth arrangement works against it. This chapter examines the camera as active scene state, explains why preview and final output use different targets, and follows text and 3-D surfaces through the same visual model as ordinary shapes. The goal is practical judgment: compose the stage so that the relationship maintained by an animation or updater remains visible.
The camera is part of the evolving scene
It is tempting to think of a camera as a passive window. The scene contains the objects, the renderer draws them, and the camera merely looks at the result. ManimGL's implementation gives the camera more responsibility. It owns the frame, the output pixel shape, the background, a GPU and renderer, render targets, and the frame-level values that shaders read. The camera decides how scene state is mapped into the image that the viewer receives.
The frame is a mobject-like state in its own right. A scene stores the camera frame alongside its other mobjects, and camera operations can be animated or updated. Moving or scaling the frame changes the visible composition without changing the underlying graph, equation, or surface. Rotating the frame changes the implied viewpoint for a 3-D scene. This makes camera motion another way of explaining a relationship: zooming can reveal local structure, while a wider view can show how several objects fit together.
That mapping crosses several coordinate spaces. An object is described in scene coordinates. The camera frame supplies a view transform and a scale; the camera refreshes values such as the view matrix, frame scale, pixel size, camera position, and light position. The renderer then uses those values to turn the object's points into positions in a render target. The author usually thinks in units such as “move two units right,” but the final image is measured in pixels. The camera is the owner of the conversion between those descriptions.
The frame also determines what it means for an object to be fixed or moving with the scene. A graph, axis, and point can all move under the same camera frame, preserving their shared coordinate relationship. A caption or control panel can instead be fixed in the frame so that it remains readable while the 3-D scene rotates behind it. These are different visual promises. One says “this label belongs to the mathematical space”; the other says “this label belongs to the viewer's screen.” ManimGL keeps both possibilities in the object state rather than forcing every element through one coordinate behavior.
Aspect ratio adds another constraint. The camera adjusts the frame shape to match the pixel shape, and a change in resolution can alter the relationship between the frame's width and height. A composition designed only by nominal scene coordinates may therefore have different breathing room when its target shape changes. The point is not that every output size requires a new scene, but that a scene's visual margins and relative placement are mediated by the camera rather than guaranteed by the object coordinates alone.
This is why framing cannot be postponed until after the animation is complete.