CHR-WUKONG-20261005-01
Rig Wukong test model (body, antenna feathers, scarf, sashes), colour from owner turnaround, browser demo + clip
Evidence
From logs/evidence/CHR-WUKONG-20261005-01/. Click a thumbnail for the full image.
Images (7)







Clips (2)
Logs and data (3)
demo_test.json · 2 kB · open
{
"pass": true,
"checks": [
{
"name": "model loaded: 167 joints, 77 simulated spring bones in 16 chains",
"ok": true,
"detail": "{\"bones\":167,\"springBones\":77,\"chains\":16}"
},
{
"name": "clips idle/walk/run/spin_jump present",
"ok": true,
"detail": "idle,run,spin_jump,walk"
},
{
"name": "canvas shows the textured model (colour variety, red cloth and gold armour pixels)",
"ok": true,
"detail": "{\"colours\":239,\"red\":158,\"gold\":62}"
},
{
"name": "idle: spring chains stay near the sculpted pose (max tip deviation < 0.6 m)",
"ok": true,
"detail": "0.243 m"
},
{
"name": "running: cape/feathers/sashes trail the body (tip deviation > 1.0 m)",
"ok": true,
"detail": "1.327 m"
},
{
"name": "after stopping the chains swing on, then settle again",
"ok": true,
"detail": "0.5 s: 1.26 m, 5 s: 0.11 m"
},
{
"name": "all spring joints finite and in range",
"ok": true
},
{
"name": "spring physics off: every chain returns exactly to the rig pose",
"ok": true,
…glb_report.json · 1 kB · open
{
"file": "art/3d/wukong/demo/wukong.glb",
"sizeMB": 4.15,
"verts": 49006,
"tris": 53353,
"joints": 167,
"deformBonesWeighted": 129,
"springChains": 16,
"springBones": 77,
"maxInfluences": 4,
"texture": {
"w": 2048,
"h": 2048,
"format": "jpeg"
},
"heightM": 1.949,
"animations": [
{
"name": "idle",
"duration": 3,
"channels": 132
},
{
"name": "run",
"duration": 0.667,
"channels": 132
},
{
"name": "spin_jump",
"duration": 1.2,
"channels": 132
},
{
"name": "walk",
"duration": 1,
"channels": 132
}
],
"pass": true,
"fails": [],
…rig_validation.json · 4 kB · open
{
"pass_": true,
"checks": [
{
"name": "Zoen skeleton: prefix-free Mixamo names, root and sockets present",
"ok": true,
"detail": ""
},
{
"name": "Hips hangs under root",
"ok": true,
"detail": ""
},
{
"name": "16 spring chains, all bones exist, every chain ends in a non-deforming tip",
"ok": true,
"detail": ""
},
{
"name": "77 deforming spring bones (4 antenna x 8, cape 3 x 6, 9 sashes)",
"ok": true,
"detail": "77"
},
{
"name": "every vertex weighted, weights sum to 1",
"ok": true,
"detail": "unweighted 0, not normalised 0"
},
{
"name": "<= 4 influences per vertex (Zoen budget)",
"ok": true,
"detail": "0"
},
{
"name": "no weights on non-deforming bones (tips, sockets, root)",
"ok": true,
"detail": "0"
},
{
"name": "UVs inside 0..1",
…Tests
$ /Users/king/Applications/Blender.app/Contents/MacOS/Blender -b art/3d/wukong/build/04_animated.blend -P tools/blender/wukong/wukong_validate_rig.py -- logs/evidence/CHR-WUKONG-20261005-01/rig_validation.json$ node tools/blender/wukong/validate_glb.mjs art/3d/wukong/demo/wukong.glb logs/evidence/CHR-WUKONG-20261005-01/glb_report.json$ node tools/blender/wukong/demo_test.mjs logs/evidence/CHR-WUKONG-20261005-01/demo_test.json$ node tools/blender/wukong/demo_test.mjs logs/evidence/CHR-WUKONG-20261005-01/demo_test.jsonNotes
2026-10-05 01:40 UTC · Evidence in logs/evidence/CHR-WUKONG-20261005-01/: wukong_showcase.mp4 (28 s scripted run/turn/stop/spin-jump, clean), wukong_rig_view.mp4 (same with bones overlay), texture_vs_artwork.png, deformation_poses.jpg, clips_body_only.jpg, camera_fit_overlays.jpg, rig_validation.json (18/18), glb_report.json, demo_test.json (12/12). Browser demo: art/3d/wukong/demo (python3 -m http.server 4320 --directory art/3d/wukong/demo; ?hq = 4K, ?auto = showcase, ?bones = overlay).
2026-10-05 01:40 UTC · Decisions: kept Tripo's 65-bone Mixamo body rig and its weights (cleaned to 4 influences, armour plates made rigid on their dominant bone); re-weighted cloth/feather islands by geodesic distance onto 77 new spring bones; colour = projection of the owner's four views onto a smart-UV atlas (per-part camera fit because the Tripo feathers/cape are larger than drawn); spring solver in JS mirrors VRM spring bones, config in wukong.springs.json + glTF extras. Fixes during the task: bone scale applied twice (connected bones), one-frame feedback delay made antenna chains unstable, damping model changed to VRM drag convention.
2026-10-05 01:40 UTC · Honest status: hero asset, over the Zoen player budget (53,353 tris vs 22,000; 129 weighted bones vs 80). Not rigged: face/jaw/eyes/ears, head fur, neck scarf (skinned), armour skirt spikes. Clips are procedural stand-ins. Texture carries baked light from the pictures; about 40% of covered texels have no direct view (filled by diffusion). Vendored three.js r185 (MIT) from a local npm copy; licence rows added. Test servers only on localhost, nothing deployed, no purchases.
