So far every vertex has been written in clip space, which ties shapes to the canvas. Real scenes describe each object in its own coordinates and let three 4x4 matrices carry every vertex through a chain of spaces:

The vertex shader applies the three matrices; the GPU does the rest. Each is built here by hand as a column-major Float32Array for uniformMatrix4fv(), ending with BookNest's covers on a shelf in perspective.