"""Compare finger-bone REST rotations between GLB skeletons. First GLB is the reference; each other is reported as per-bone angle deviation (degrees). usage: rest_deviation.py canonical.glb other.glb [more.glb ...] """ import json, struct, sys, math from pathlib import Path FING = ("thumb", "index", "middle", "ring", "pinky") def read_gltf(path): d = Path(path).read_bytes() jlen = struct.unpack_from(" 1.0] print(f" shared {len(devs)} | deviating >1deg: {len(over)} | max {devs[0][0]:.1f}deg ({devs[0][1]})") for d, n in devs[:12]: print(f" {n:24s} {d:6.1f}deg")