PROCITY/web/assets/motion_manifest.json
m3ultra 8ad446a48a Lane E R41 (§41.1+§41.2): 46 clips and 110 fittings — and every handover number was the wrong unit
MOTION (§41.1). The clip library goes 8 -> 46: ten idles, eight browse, eight sit/lean,
eight social, six locomotion, six venue, in SIX grouped GLBs (one fetch each), 3.35 MB —
LESS than the 4.29 MB the old eight cost, via lossless dedup + int16 rotations (worst
error 0.0034 deg). All six verified skeleton-only (tris 0, meshes 0, nodes 66): ZERO DRAW,
which is what makes this round affordable. No retarget was run and none was wanted — the
bank and the peds are the same mixamorig skeleton, so retargeting would add error AND bake
the ped mesh into the clip, ending zero-draw. MIRPAMO 'make smoke' green to prove the tool,
then deliberately unused. Three seeds in the brief were duds and got substituted: the whole
*_Degree_Turn set is RIFLE-AIMING, and two 'examine' clips are 262 KB static poses, not
motion. R16 flat-body trap re-checked on all 46 (spine tilt 24 samples/clip, 0 frames >75
deg); turn_in_place auto-demoted from loopable on a 36.7 deg seam.

RULING 1 — the Bandai hazard, closed non-destructively and better than specified. 3,077 CC
BY-NC clips sat unzoned in a neutrally-named path. Renamed PER FILE (3,077/3,077) not just
the directory, because mirpamo names output <rig>@<clip>.glb — the _NC-research marker now
PROPAGATES into any retargeted GLB automatically. Nothing deleted; ultra's red/bandai
re-verified as canonical. Ledger corrected: the manifest claimed CC-BY-NC-ND, the bundled
licence text says CC BY-NC, no ND.

PROPS (§41.2). 110 assets from three libraries, published, sha1-verified, 0 validator errors
both modes. THE FINDING: every handover number was a TRIANGLE count, and triangles were
never the binding constraint — DRAW CALLS were. As handed over this cargo cost 14,140 draws
against a 162-draw margin; it ships at 117. '3dstore passes as-is' was true on tris/metres/
Draco/textures and FALSE on draws — 30 of 46 files carried up to 16 materials on one mesh
(one per record sleeve), so a 1,020-tri tub cost 16 draws; baked to COLOR_0, 288 -> 40, zero
tri drift, A/B identical. dj-gear's own manifest claimed median 6,288 tris / 18 under budget;
measured 51,528 and 12, with draws to 2,145. Pub props were NOT metre-correct (every source
unit-normalised to max dim 1.00 m) and 40x decimation was impossible as specified (loungeChair
is 94% non-manifold).

Ruling 5 vs the draw budget was a real conflict (one mixer = 4.6x a whole room); resolved by
joining SCENERY selectively while every control node keeps its object/name/pivot — verified
by parsing the SHIPPED GLB, not the tool that wrote it: PASS 4 / STATIC 10 / N/A 17 / FAIL 0.
deck_1200_rigged = 5 draws with Platter_SPIN, Arm_YAW, Fader_PITCH, Btn_STARTSTOP intact.

The R40 four-surface transmission gate FIRED ON LIVE CARGO: 5 genuinely transmissive
materials (cartridge dust-covers, a mixer meter window) that would each have doubled every
opaque draw in the room. 9 assets rejected on eyeball after decimation rather than shipping
mush. Two existing-tooling bugs fixed: normalize.py's yaw/up were silent no-ops (the jukebox
exported 0.40 m instead of 0.97 m), and footprints now measure the shipped GLB.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-07 18:10:12 +10:00

632 lines
16 KiB
JSON

{
"_schema": "PROCITY motion manifest v1 (R41 41.1). groups{<file>} -> one GLB under web/models/clips/, holding N named animations. clips{<clipId>} -> {group,category,duration,loopable,source,mixamo,pair?}. Load a group ONCE (gltf.animations[] are named by clipId); index by clips[id].group.",
"_licence": "Mixamo (Adobe) via ultra ~/Documents/MOTIONLIB/green/mixamo_full/. GREEN: free to use inside games/projects, NO attribution required. Never redistribute as a clip pack. R41 ships this licence regime only (ruling 2).",
"_tracks": "rotation-only",
"_encoding": "rotation outputs are int16 NORMALIZED (glTF-legal, three.js r175 de-normalises in GLTFLoader._getArrayFromAccessor); all 65 joints animated incl. fingers",
"_note": "Skeleton-only, 0 tris, 66 nodes (65 mixamorig joints + Armature) \u2014 the same byte-shape as web/models/peds/idle.glb. rigs.js `_canon` folds the mixamorigN: prefix, `_rotOnly` keeps quaternions and drops Hips.quaternion.",
"fps": 30,
"groups": {
"idles.glb": {
"category": "idle",
"desc": "the clone-army killer: 10 distinct standing idles",
"clips": [
"idle_breathing",
"idle_standing",
"idle_look_around",
"idle_weight_shift",
"idle_cocky_lean",
"idle_yawn",
"idle_happy_1",
"idle_happy_2",
"idle_old_man",
"idle_smoking"
],
"bytes": 1029496,
"nodes": 66,
"durationSum": 78.267
},
"browse.glb": {
"category": "browse",
"desc": "shop-floor: hold / examine / open / carry / pick up",
"clips": [
"browse_hold_idle",
"browse_hold_walk",
"browse_hold_turn_l",
"browse_hold_turn_r",
"browse_open_cabinet",
"browse_close_cabinet",
"browse_carry_box",
"browse_pick_up"
],
"bytes": 476056,
"nodes": 66,
"durationSum": 30.833
},
"sitlean.glb": {
"category": "sitlean",
"desc": "benches and shopfronts: 4 seated + 4 leaning",
"clips": [
"sit_bench_swing",
"sit_hands_thighs",
"sit_impatient",
"sit_fidget_feet",
"lean_wall_postures",
"lean_wall_leg_up",
"lean_wall_shoulders",
"lean_wall_walkman"
],
"bytes": 358112,
"nodes": 66,
"durationSum": 27.533
},
"social.glb": {
"category": "social",
"desc": "two-person street/shop talk; the handshake pair stays paired",
"clips": [
"social_conversation",
"social_chat_water",
"social_greeting",
"social_shake_1",
"social_shake_2",
"social_nod_yes",
"social_shake_no",
"social_wave"
],
"bytes": 895648,
"nodes": 66,
"durationSum": 73.867
},
"locomotion.glb": {
"category": "locomotion",
"desc": "civilian walk + turn set (the named Degree_Turn set is rifle-aiming \u2014 substituted, see AUDIT)",
"clips": [
"walk_shopping_bag",
"turn_left_90",
"turn_right_90",
"turn_walk_180",
"turn_in_place",
"walk_to_stand"
],
"bytes": 212776,
"nodes": 66,
"durationSum": 12.133
},
"venue.glb": {
"category": "venue",
"desc": "pub / gig / record shop",
"clips": [
"venue_clap_stand",
"venue_clap_seated",
"venue_cheer",
"venue_northern_soul",
"venue_bartending",
"venue_headphones"
],
"bytes": 526036,
"nodes": 66,
"durationSum": 39.533
}
},
"clips": {
"idle_breathing": {
"group": "idles.glb",
"category": "idle",
"duration": 9.9667,
"loopable": true,
"loopSeamDeg": 0.04,
"source": "Breathing_Idle__c9c6d0d5.fbx",
"mixamo": "Breathing Idle",
"channels": 65,
"rotBones": 65
},
"idle_standing": {
"group": "idles.glb",
"category": "idle",
"duration": 6.0333,
"loopable": true,
"loopSeamDeg": 0.04,
"source": "Standing_Idle__c9c831cf.fbx",
"mixamo": "Standing Idle",
"channels": 65,
"rotBones": 65
},
"idle_look_around": {
"group": "idles.glb",
"category": "idle",
"duration": 6.3667,
"loopable": true,
"loopSeamDeg": 0.04,
"source": "Idle_Stand_Looking_Around__c9c6cdf7.fbx",
"mixamo": "Looking Around",
"channels": 65,
"rotBones": 65
},
"idle_weight_shift": {
"group": "idles.glb",
"category": "idle",
"duration": 9.4667,
"loopable": true,
"loopSeamDeg": 0.04,
"source": "Shifting_Weight_From_Side_To_Side__c9c908f7.fbx",
"mixamo": "Weight Shift",
"channels": 65,
"rotBones": 65
},
"idle_cocky_lean": {
"group": "idles.glb",
"category": "idle",
"duration": 2.9333,
"loopable": false,
"loopSeamDeg": 0.04,
"source": "Cocky_Lean_Back__c9c90e3c.fbx",
"mixamo": "Being Cocky",
"channels": 65,
"rotBones": 65
},
"idle_yawn": {
"group": "idles.glb",
"category": "idle",
"duration": 8.3667,
"loopable": false,
"loopSeamDeg": 0.04,
"source": "Big_Yawn_While_Standing__c9c98361.fbx",
"mixamo": "Yawn",
"channels": 65,
"rotBones": 65
},
"idle_happy_1": {
"group": "idles.glb",
"category": "idle",
"duration": 2.0333,
"loopable": true,
"loopSeamDeg": 0.28,
"source": "Happy_Idle_Variation_1__c9ccf37e.fbx",
"mixamo": "Happy Idle",
"channels": 65,
"rotBones": 65
},
"idle_happy_2": {
"group": "idles.glb",
"category": "idle",
"duration": 2.9667,
"loopable": true,
"loopSeamDeg": 0.04,
"source": "Happy_Idle_Variation_2__c9ccf445.fbx",
"mixamo": "Happy Idle",
"channels": 65,
"rotBones": 65
},
"idle_old_man": {
"group": "idles.glb",
"category": "idle",
"duration": 12.2,
"loopable": true,
"loopSeamDeg": 0.04,
"source": "Old_Man_Standing_Idle__c9c6c004.fbx",
"mixamo": "Old Man Idle",
"channels": 65,
"rotBones": 65
},
"idle_smoking": {
"group": "idles.glb",
"category": "idle",
"duration": 17.9333,
"loopable": true,
"loopSeamDeg": 0.37,
"source": "Idle_Smoking__c9c603fd.fbx",
"mixamo": "Smoking",
"channels": 65,
"rotBones": 65
},
"browse_hold_idle": {
"group": "browse.glb",
"category": "browse",
"duration": 6.0333,
"loopable": true,
"loopSeamDeg": 0.06,
"source": "Holding_An_Object_Idle__c9cda11a.fbx",
"mixamo": "Holding Idle",
"channels": 65,
"rotBones": 65
},
"browse_hold_walk": {
"group": "browse.glb",
"category": "browse",
"duration": 1.4,
"loopable": true,
"loopSeamDeg": 6.35,
"source": "Holding_An_Object_While_Walking__c9cda1e7.fbx",
"mixamo": "Holding Walk",
"channels": 65,
"rotBones": 65
},
"browse_hold_turn_l": {
"group": "browse.glb",
"category": "browse",
"duration": 1.2333,
"loopable": false,
"loopSeamDeg": 172.54,
"source": "Holding_An_Object_While_Turning_Left__c9cda2af.fbx",
"mixamo": "Holding Turn Left",
"channels": 65,
"rotBones": 65,
"pair": "browse_hold_turn_r"
},
"browse_hold_turn_r": {
"group": "browse.glb",
"category": "browse",
"duration": 1.3333,
"loopable": false,
"loopSeamDeg": 147.31,
"source": "Holding_An_Object_While_Turning_Right__c9cda378.fbx",
"mixamo": "Holding Turn Right",
"channels": 65,
"rotBones": 65,
"pair": "browse_hold_turn_l"
},
"browse_open_cabinet": {
"group": "browse.glb",
"category": "browse",
"duration": 4.8333,
"loopable": false,
"loopSeamDeg": 0.04,
"source": "Opening_Cabinet_Door__c9c6d49e.fbx",
"mixamo": "Opening",
"channels": 65,
"rotBones": 65,
"pair": "browse_close_cabinet"
},
"browse_close_cabinet": {
"group": "browse.glb",
"category": "browse",
"duration": 6.2,
"loopable": false,
"loopSeamDeg": 0.04,
"source": "Closing_Cabinet_Door__c9c6d55d.fbx",
"mixamo": "Closing",
"channels": 65,
"rotBones": 65,
"pair": "browse_open_cabinet"
},
"browse_carry_box": {
"group": "browse.glb",
"category": "browse",
"duration": 6.3333,
"loopable": true,
"loopSeamDeg": 0.03,
"source": "Carrying_A_Box__c9cd8d90.fbx",
"mixamo": "Box Idle",
"channels": 65,
"rotBones": 65
},
"browse_pick_up": {
"group": "browse.glb",
"category": "browse",
"duration": 3.4667,
"loopable": false,
"loopSeamDeg": 92.15,
"source": "Picking_Up_An_Object_With_One_Hand__c9c6c5eb.fbx",
"mixamo": "Picking Up Object",
"channels": 65,
"rotBones": 65
},
"sit_bench_swing": {
"group": "sitlean.glb",
"category": "sitlean",
"duration": 2.1333,
"loopable": true,
"loopSeamDeg": 0.04,
"source": "Little_Girl_Sitting_On_A_Bench_Swinging_Her_Legs__c9c89165.fbx",
"mixamo": "Sitting",
"channels": 65,
"rotBones": 65
},
"sit_hands_thighs": {
"group": "sitlean.glb",
"category": "sitlean",
"duration": 6.4333,
"loopable": true,
"loopSeamDeg": 0.05,
"source": "Sitting_In_Chair_Hands_Resting_On_Thighs__c9cb9783.fbx",
"mixamo": "Sitting Idle",
"channels": 65,
"rotBones": 65
},
"sit_impatient": {
"group": "sitlean.glb",
"category": "sitlean",
"duration": 7.0333,
"loopable": true,
"loopSeamDeg": 0.04,
"source": "Sitting_And_Impatiently_Waiting__c9ccad56.fbx",
"mixamo": "Sitting",
"channels": 65,
"rotBones": 65
},
"sit_fidget_feet": {
"group": "sitlean.glb",
"category": "sitlean",
"duration": 1.2,
"loopable": true,
"loopSeamDeg": 0.19,
"source": "Sit_With_Fidgeting_Feet__c9c699a5.fbx",
"mixamo": "Sitting",
"channels": 65,
"rotBones": 65
},
"lean_wall_postures": {
"group": "sitlean.glb",
"category": "sitlean",
"duration": 2.0333,
"loopable": true,
"loopSeamDeg": 0.04,
"source": "Leaning_Against_A_Wall_With_Various_Postures__c9c695f0.fbx",
"mixamo": "One Shoulder Lean",
"channels": 65,
"rotBones": 65
},
"lean_wall_leg_up": {
"group": "sitlean.glb",
"category": "sitlean",
"duration": 3.3667,
"loopable": true,
"loopSeamDeg": 0.04,
"source": "Leaning_Square_Against_A_Wall_With_One_Leg_Up__c9c696b0.fbx",
"mixamo": "Leaning",
"channels": 65,
"rotBones": 65
},
"lean_wall_shoulders": {
"group": "sitlean.glb",
"category": "sitlean",
"duration": 3.3667,
"loopable": true,
"loopSeamDeg": 0.04,
"source": "Leaning_Square_With_Shoulders_Against_A_Wall__c9c69770.fbx",
"mixamo": "Leaning",
"channels": 65,
"rotBones": 65
},
"lean_wall_walkman": {
"group": "sitlean.glb",
"category": "sitlean",
"duration": 1.9667,
"loopable": true,
"loopSeamDeg": 0.04,
"source": "Little_Girl_Leaning_On_A_Wall_Listening_To_Music__c9c8bace.fbx",
"mixamo": "Leaning On A Wall",
"channels": 65,
"rotBones": 65
},
"social_conversation": {
"group": "social.glb",
"category": "social",
"duration": 10.3,
"loopable": true,
"loopSeamDeg": 0.29,
"source": "General_Conversation__c9c88301.fbx",
"mixamo": "Talking",
"channels": 65,
"rotBones": 65
},
"social_chat_water": {
"group": "social.glb",
"category": "social",
"duration": 44.6,
"loopable": true,
"loopSeamDeg": 0.78,
"source": "Having_A_Chat_At_The_Watercooler__c9c9f1c9.fbx",
"mixamo": "Talking At Watercooler",
"channels": 65,
"rotBones": 65
},
"social_greeting": {
"group": "social.glb",
"category": "social",
"duration": 5.1333,
"loopable": false,
"loopSeamDeg": 0.04,
"source": "Greeting_While_Standing__c9c7996a.fbx",
"mixamo": "Standing Greeting",
"channels": 65,
"rotBones": 65
},
"social_shake_1": {
"group": "social.glb",
"category": "social",
"duration": 4.4,
"loopable": false,
"loopSeamDeg": 0.03,
"source": "2_People_Shaking_Hands_Part_1_-_Female__c9c9f343.fbx",
"mixamo": "Shaking Hands 1",
"channels": 65,
"rotBones": 65,
"pair": "social_shake_2"
},
"social_shake_2": {
"group": "social.glb",
"category": "social",
"duration": 4.4,
"loopable": false,
"loopSeamDeg": 0.13,
"source": "2_People_Shaking_Hands_Part_2_-_Male__c9c9f403.fbx",
"mixamo": "Shaking Hands 2",
"channels": 65,
"rotBones": 65,
"pair": "social_shake_1"
},
"social_nod_yes": {
"group": "social.glb",
"category": "social",
"duration": 2.6333,
"loopable": false,
"loopSeamDeg": 0.04,
"source": "Nodding_Head_Yes__c9c90d7b.fbx",
"mixamo": "Head Nod Yes",
"channels": 65,
"rotBones": 65
},
"social_shake_no": {
"group": "social.glb",
"category": "social",
"duration": 1.8333,
"loopable": false,
"loopSeamDeg": 0.04,
"source": "Shaking_Head_No_Dismissively__c9c90b3c.fbx",
"mixamo": "Shaking Head No",
"channels": 65,
"rotBones": 65
},
"social_wave": {
"group": "social.glb",
"category": "social",
"duration": 0.5667,
"loopable": false,
"loopSeamDeg": 0.04,
"source": "Waving__c9c5ed32.fbx",
"mixamo": "Waving",
"channels": 65,
"rotBones": 65
},
"walk_shopping_bag": {
"group": "locomotion.glb",
"category": "locomotion",
"duration": 1.3,
"loopable": true,
"loopSeamDeg": 0.03,
"source": "Male_Walking_With_Shopping_Bag__c9c64027.fbx",
"mixamo": "Walking With Shopping Bag",
"channels": 65,
"rotBones": 65
},
"turn_left_90": {
"group": "locomotion.glb",
"category": "locomotion",
"duration": 1.5333,
"loopable": false,
"loopSeamDeg": 84.6,
"source": "Turning_90_Degrees_Left__c9ceef5f.fbx",
"mixamo": "Unarmed Turn Left 90",
"channels": 65,
"rotBones": 65,
"pair": "turn_right_90"
},
"turn_right_90": {
"group": "locomotion.glb",
"category": "locomotion",
"duration": 1.5333,
"loopable": false,
"loopSeamDeg": 83.16,
"source": "Turning_90_Degrees_Right__c9cef01d.fbx",
"mixamo": "Unarmed Turn Right 90",
"channels": 65,
"rotBones": 65,
"pair": "turn_left_90"
},
"turn_walk_180": {
"group": "locomotion.glb",
"category": "locomotion",
"duration": 1.0333,
"loopable": false,
"loopSeamDeg": 180.0,
"source": "Turning_180_Degrees_While_Walking__c9c9c73f.fbx",
"mixamo": "Walking Turn 180",
"channels": 65,
"rotBones": 65
},
"turn_in_place": {
"group": "locomotion.glb",
"category": "locomotion",
"duration": 3.7,
"loopable": false,
"loopSeamDeg": 36.68,
"source": "Turning_In_Place__c9c70ef0.fbx",
"mixamo": "Turning",
"channels": 65,
"rotBones": 65,
"loopDemoted": "curated loopable but loop seam 36.7 deg > 25.0"
},
"walk_to_stand": {
"group": "locomotion.glb",
"category": "locomotion",
"duration": 3.0333,
"loopable": false,
"loopSeamDeg": 55.33,
"source": "Walking_To_Standing_Idle__c9c8d966.fbx",
"mixamo": "Stop Walking",
"channels": 65,
"rotBones": 65
},
"venue_clap_stand": {
"group": "venue.glb",
"category": "venue",
"duration": 1.2,
"loopable": true,
"loopSeamDeg": 0.07,
"source": "Clap_While_Standing__c9c60ef2.fbx",
"mixamo": "Clapping",
"channels": 65,
"rotBones": 65
},
"venue_clap_seated": {
"group": "venue.glb",
"category": "venue",
"duration": 1.2,
"loopable": true,
"loopSeamDeg": 0.07,
"source": "Clap_While_Seated__c9c60fce.fbx",
"mixamo": "Clapping",
"channels": 65,
"rotBones": 65
},
"venue_cheer": {
"group": "venue.glb",
"category": "venue",
"duration": 2.9333,
"loopable": true,
"loopSeamDeg": 0.04,
"source": "Male_Cheering_With_Two_Fists_Pump__c9c66dfd.fbx",
"mixamo": "Cheering",
"channels": 65,
"rotBones": 65
},
"venue_northern_soul": {
"group": "venue.glb",
"category": "venue",
"duration": 16.1,
"loopable": true,
"loopSeamDeg": 0.41,
"source": "Basic_Northern_Soul_Step__c9cbe56d.fbx",
"mixamo": "Northern Soul Dance",
"channels": 65,
"rotBones": 65
},
"venue_bartending": {
"group": "venue.glb",
"category": "venue",
"duration": 13.6,
"loopable": true,
"loopSeamDeg": 0.03,
"source": "Pouring_And_Serving_Drinks__c9c78799.fbx",
"mixamo": "Bartending",
"channels": 65,
"rotBones": 65
},
"venue_headphones": {
"group": "venue.glb",
"category": "venue",
"duration": 4.5,
"loopable": true,
"loopSeamDeg": 0.03,
"source": "Male_With_Headphones_Listening_To_Music__c9c63329.fbx",
"mixamo": "Listening To Music",
"channels": 65,
"rotBones": 65
}
},
"totalBytes": 3498124,
"clipCount": 46,
"groupCount": 6,
"dedupSavedBytes": 1341724
}