MODEL-01B
Model inbox checker + wiki Model requests page
Evidence
From logs/evidence/MODEL-01B/. Click a thumbnail for the full image.
Images (2)
Logs and data (1)
inbox-check.txt · 594 B · open
Model inbox art/3d/inbox (folder does not exist yet: nothing delivered)
0 checked: 0 delivered, 0 rejected, 0 unmatched, 0 older versions skipped.
No change: model-delivered.json is up to date.
Parser cross-check on a real Tripo-derived GLB (art/3d/wukong/demo/wukong.glb, read only):
{"tris":53353,"size":[1.7719,1.949,1.2997],"skins":1,"jointParts":1,"animations":4,"uvMissing":0,"images":1,"maxTexture":2048}
Matches art/3d/wukong/build/wukong_glb_report.json (Blender: 53353 tris, height 1.949 m, 4 animations, 2048 texture); as an inbox file it would be rejected (skeleton + animations).
Tests
$ node --test packages/game-data/tests/model-inbox.test.mjs$ node --test packages/game-data/tests/model-inbox.test.mjs$ node tools/model-inbox.mjs --dry-run$ pnpm --filter @zoen/wiki exec playwright test --only-changedNotes
2026-10-07 22:09 UTC · Split (size rule, context ~180k): done here = parts 1 and 3; the wiki Model requests page + e2e + 1440x900/390x844 screenshots moved to MODEL-01C (added to roadmap.json M0 after MODEL-01B). tools/model-inbox.mjs: pure-Node GLB parse (no deps), highest .vN wins (plain = v1, explicit .v1 beats plain), checks id (unknown ids -> unmatched with a did-you-mean), tris per drawn instance from accessors (Draco/meshopt counted without decoding), world bounds, TEXCOORD_0 on every triangle part, embedded textures, no skin/JOINTS/WEIGHTS, no animations; writes model-delivered.json only on change and re-runs gen-model-requests.mjs; --dry-run --json --no-build --inbox --requests --manual --delivered; exit 2 only on tool errors. Proposed rule in model-requests.manual.json inbox: over budget = delivered + needs-retopo note, rejected above max(25 x budget, 250k tris); size outside sizeM = delivered + rescale note (height for monster/elite/boss/mount/clothing, longest side for armour/prop), outside rawAccept = rejected. Parser cross-check: art/3d/wukong/demo/wukong.glb -> 53353 tris, height 1.949, 4 animations, 2048 texture = Blender report. Test packages/game-data/tests/model-inbox.test.mjs 3/3 (in pnpm data:test). tools/model-views.py: scale bar stem found in the left 15% (was 6%: bars sat at 46-57 px so every side view kept them) and painted out with its caps/ticks/halo (coloured drawing kept, wolf tail and raider sword intact); split at empty gaps first, valleys need a peak on both sides (VALLEY 0.7) so a tapering tail is never a view: Ashroot Pangolin now side/front/top. Known residual for MODEL-01C: a thin sliver of the top view at the top-right of the pangolin front view. Evidence: logs/evidence/MODEL-01B/inbox-check.txt, views-fixed.png, views-all-monsters.jpg. verify --changed: data 152/152, docs lint, typecheck, build pass (first data run failed: CONTINUE_HERE.md over 8000 bytes, shortened).


