Geometry

Pure math + spatial-acceleration data structures + vertex formats + OBJ loader. Layer 1, no dependencies on the rest of the engine. Used by physics, render, world, and navigation.

Scope

Shapes (AABB / OBB / triangle / sphere / disc), the vertex formats the GPU pipeline expects, transform decomposition, frustum extraction, and acceleration structures — BVH, octree, interval tree. Also the OBJ loader, since it deals with raw Geometry.

Acceleration structures

Transform

Transform{position, rotation, scale} + a dirty bit + cached local/world matrices. update_local and update_world rebuild lazily during the scene-graph traversal — nothing recomputes unless something upstream moved.

Vertex formats

Vertex (position, normal, color, uv, tangent) and SkinningData (joints + weights) are bit-for-bit what the GPU pipelines consume; the matching vk.VertexInputBindingDescription lives next to them so the two never drift.