Un modelo es una forma, un sitio y una superficie. useCubeGeometry construye la forma y la comparte; createMesh pone una en algún sitio, igual que createSprite hace con una imagen.
La luz se calcula en las esquinas y se reparte por cada cara, que es lo que hacían las consolas de esta época: ninguna iluminaba por píxel. Fíjate en cómo cambia el sombreado de las caras al girar, y en que no lleva ninguna textura.