calibrate-modellisted
Install: claude install-skill playcanvas/skills
# Model calibration
Use the `inspect-glb` skill to measure every unique GLB before mass placement. Rely on `dims` and
`groundOffset` for contact-accurate placement only when it reports `boundsSource: vertices`. Store
one tuning record per asset:
```ts
const ASSET_TUNING = {
model: {
boundsSource: 'vertices',
aabb: { min: [-4, -1, -9], max: [4, 6, 9] },
dims: [8, 7, 18],
center: [0, 2.5, 0],
groundOffset: 1,
intended: { dimension: 'length', size: 18 },
scale: 0.9,
y: 0.9,
yaw: 180
}
} as const;
```
## Calculate the record
1. Pick and record the intended dimension and size: character height, building footprint, or
vehicle length. Base it on world units or an already calibrated reference model.
2. Calculate `scale = intendedSize / measuredDimension`.
3. For a floor-resting model, calculate `y = groundOffset * scale`. Record a deliberate offset for
waterlines, embedded objects, or airborne models.
4. Confirm directional facing once in the running app, as the `apply-conventions` skill describes.
PlayCanvas entities face -Z while glTF convention is +Z, but asset packs vary.
5. Retain `boundsSource`, `aabb`, `dims`, `center`, `groundOffset`, and the intended size with
`{ scale, y, yaw }`. Use the scaled footprint and centre for initial spacing; do not re-derive or
add per-instance nudges.
Keep gameplay position and heading on an outer semantic root, and seat the model on one predictab