About inspect-glb
inspect-glb is a development skill for examining GLB model files before configuring transforms or animations. It reports bounds and scene metadata, while noting when measurements need runtime confirmation.
Key features
- 01Inspect dimensions, center, and ground offset
- 02Report bounds source and pose
- 03List nodes, clips, joints, and animation targets
- 04Flag cases requiring runtime checks
Use cases
- 01Choose model scale and pivot offsets
- 02Identify animation names and targets
- 03Place static models using inspected bounds
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ playcanvas/ skills --skill inspect-glbAfter installing, type/inspect-glbin Claude Code to confirm it loaded.
Bundled filesscripts/inspect.mjs
Details
From the project READMEInspect GLBs
Resolve scripts/inspect.mjs relative to this skill and run it before choosing transforms or
animation names. Shortlist files; do not dump a whole asset pack into context.
node <skill-directory>/scripts/inspect.mjs public/models/*.glb
Read the output
dims,center, andgroundOffsetgive the uniform scale input, the pivot offset, and the Y seat. Non-zerocenter.xorcenter.zmeans the model does not sit on its root.boundsSource: trust bounds for placement only when it isvertices.accessor-minmaxcan over-estimate rotated nodes by up to 41 percent;incompleteornullmeans do not calibrate.boundsNotesgives the cause.boundsPose:staticanddefault-morphare the authored pose;bindis the skinned rest pose.requiresRuntimeCheckflags morphs, skins, or partial decoding; confirm extents in the app.nodePaths,clips,joints, andanimationTargetsfeedconfigure-animation.
Bounds cannot prove facing. Confirm it in the running app and record the yaw with
calibrate-model. Runtime meshInstance.aabb expands conservatively for morphs, so place static
models from inspected bounds.
Compressed files
The inspector decodes plain, interleaved, quantized, and sparse buffers. For Draco, Meshopt, or
external buffers, inspect a lossless scratch copy; do not use optimize, which applies extra
transforms:
npx --yes @gltf-transform/[email protected] copy in.glb scratch.glb
The Engine cannot load EXT_meshopt_compression; see load-assets before shipping such files.