{ "name": "piupiu_sb_test", "source": "C:/Users/Jeremy/tinqs/animation/tools/tailor/lena_piupiu_v2_garment.fbx", "body": "C:/Users/Jeremy/tinqs/ariki-game/assets/quaternius/derived-bodies/Ariki_Female_QuatSkin_SkirtRig.glb", "weld_threshold": 0.0006, "shell_mm": 4, "align": { "top_bone": "spine_01", "scale_xy": 0.1, "scale_z": 0.1, "z_nudge": 0.037, "xy_nudge": [ 0.0, 0.0 ] }, "parts": { "Piupiu": { "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/piupiu.png" } }, "export": { "out_dir": "C:/Users/Jeremy/tinqs/animation/clothing/work/piupiu_sb_test/export", "gender": "Female", "set": "KapahakaSBTest", "note": "SCRATCH export target. Deliberately NOT the shipped kapahaka folder and NOT the real KapahakaSB set id - see _note." }, "catalog": { "id": "kapahaka_legs_sbtest_f", "displayName": "Piupiu (skirt bones, test)", "charisma": 0.1, "workSpeed": 0.02, "category": "ceremonial" }, "expect": { "islands": { "count": 1, "mapped": { "0": { "verts": [ 3400, 3800 ], "tris": [ 6800, 7400 ], "z": [ 5.0, 11.5 ], "x": [ -2.6, 2.9 ] } } }, "penetration": { "depth_mm": 1.0, "max_verts": 0, "clips": [ "Idle", "Walk" ], "frames_per_clip": 6 } }, "min_island_verts": 40, "_note": "TEST FIXTURE for the unified clothing pipeline (garment.py + gates). Geometry/align/parts are a byte-copy of configs/piupiu_sb.json; everything else differs on purpose.\n\nDEFUSED 2026-07-31 (integration): export.out_dir used to point at the LIVE ariki-game/assets/quaternius/outfits/kapahaka and export.set was the real 'KapahakaSB', so a --to export run would have OVERWRITTEN the shipped Female_KapahakaSB_Legs.gltf. out_dir is now this config's own work dir and the set id is 'KapahakaSBTest', which collides with nothing and is deliberately absent from OutfitCatalog.cs (so G8 warns 'not registered' - that is the correct answer for a test set, and the run is safe to do end to end).\n\nexpect.islands is the measured truth from work/piupiu_sb_test/census.json: 1 island, 3620 verts, 7104 tris, z 5.184..11.126, x -2.228..2.517, in PRE-SCALE census units (align.scale_* 0.1 is applied later in `prepare`) - bounds are widened for tolerance, not tightened.\n\nexpect.penetration carries the contract defaults and IS EXPECTED TO FAIL at the `skin` stage: this garment is the shipped thigh-through-the-piupiu bug, and reproducing it headlessly is the point of G5. At `fit` (G5 --rest, written as qc/g3.json) the same block FAILS on a genuine 1-vert / 8.0mm rest-pose nick in 20_fit.blend - a real finding, deliberately not tuned away; set max_verts_rest: 1 here if a 1-vert rest budget is ever ruled acceptable." }