model-pipeline · git:20260912.6a4e943 · 2026-09-12 · sha256 e6f6ca6b48391684

model-pipeline git:20260912.6a4e943A

Immutable. This exact content never changes and is served at /api/v1/blob/e6f6ca6b48391684.

---
name: model-pipeline
description: Generic 3D model contract for games — units, origin, collision vs render, export. Use before rigging or dropping a mesh in-engine.
---

# Model pipeline

1. 1 unit = 1 meter. Origin at the feet (characters) or bounds center (props).
2. Apply / freeze transforms before export. Do not fix scale in the game loop.
3. Render mesh ≠ collision mesh. Collision is hulls / capsules / simplified tris.
4. Joint loops at bend points if the mesh will deform.
5. Export glTF with extras you actually read. AI-generated meshes are retopo'd before bind.
6. Name sockets (hand_r, weapon, camera_pivot) in the file, not in tribal knowledge.
7. Layout data is shared by render and collision. Do not author two mismatched floors.
8. Do not static-batch a skinned or socketed node. Attach sockets survive optimize.
9. After texture compress, re-check pose and collision. A cheaper map that moves a foot is a failed export.

Accept: dropping the file into any adapter leaves the character standing on y=0 at human scale. A weapon still finds its socket.