{ "name": "bottom_test1", "source": "C:/Users/Jeremy/tinqs/animation/tools/tailor/lena_piupiu_v3_garment.fbx", "body": "C:/Users/Jeremy/tinqs/ariki-game/assets/quaternius/derived-bodies/Ariki_Female_QuatSkin_SkirtRig_4seg.glb", "weld_threshold": 0.0006, "shell_mm": 4, "align": { "top_bone": "spine_01", "scale_xy": 0.1, "scale_z": 0.1, "z_nudge": 0.028, "xy_nudge": [ 0.0, 0.0 ] }, "parts": { "Bottom": { "slot": "Legs", "islands": [ 0 ], "tris": 8000, "planar_deg": 5, "fit": { "target": "BODY_SHELL", "mask": "full", "offset_mm": 3, "wrap_mode": "OUTSIDE", "hem_mm": 14 }, "weights": "skirt_bones", "color": [ 0.45, 0.35, 0.15 ], "texture": "../tools/tailor/textures/bottom_test1.png" } }, "export": { "out_dir": "C:/Users/Jeremy/tinqs/ariki-game/assets/quaternius/outfits/test1", "gender": "Female", "set": "Test1", "note": "piupiu v3 (32 discrete flax strands from a 60mm rigid waistband) as the neutral-named bottom_test1_f. Exported against the 4-SEGMENT SkirtRig body so the skin carries all 32 skirt joints." }, "catalog": { "id": "bottom_test1_f", "displayName": "Bottom Test 1", "charisma": 0.1, "workSpeed": 0.02, "category": "ceremonial" }, "expect": { "islands": { "count": 1, "mapped": { "0": { "verts": [ 2900, 3100 ], "tris": [ 3950, 4300 ], "z": [ 4.4, 11.2 ], "x": [ -2.6, 2.7 ] } } }, "penetration": { "depth_mm": 1.0, "max_verts": 0, "clips": [ "Idle", "Walk" ], "frames_per_clip": 6 } }, "min_island_verts": 40, "_note": "NAMING: no cultural names on test garments (Jeremy 2026-07-31) - see ariki-game/src/Character/OutfitCatalog.cs class doc. Item id snake_case + gender suffix (bottom_test1_f), set id PascalCase (Test1) because it composes {Gender}_{Set}_{Slot}.gltf, folder lowercase (outfits/test1/).\n\nexpect.islands is MEASURED from work/bottom_test1/census.json (2026-07-31), not carried over from v2: 1 island, 3002 verts, 4120 tris, z 4.685..10.893, x -2.338..2.391 in PRE-SCALE census units (align.scale_* 0.1 applied later in `prepare`), i.e. hem 0.469 m and band top 1.089 m, matching the MD-side measurement. Bounds widened for tolerance, not tightened. v3 renumbered the MD patterns to Pattern_18856 / Pattern_20333 (v2's were Pattern_31891 / Pattern_32004) - README calls a config mapping the wrong islands 'the silent killer', so G2 was run first and passed on 1 island.\n\nSKIRT WEIGHTS HAVE ONE OWNER. garment_pipeline.py:876 strand_weights is hardcoded to two segments; this garment needs four. Run animation/clothing/skirt_garment_weights.py AFTER export - it reads segment count off the rig - or the game gets a 2-segment blend that reads as a rig regression." }