feat: clothing lane, character sources, and DCC bridges

Bulk import of the working lanes that were living untracked on the PC.

Content:
- characters/  Lena/male body lanes, bakes, texture work, run logs
- clothing/    garment pipeline, configs, gates, contract docs
- garments/    MD-authored garment sources (.zprj/.zpac)
- UAL-Lib/     Universal Animation Library 2 source (.blend/.fbx/.glb)
- tools/       blender_bridge, iclone_bridge, md_bridge, tailor, glm_agent
- docs/, plans/, dev/, .agents/plans/

Repo hygiene:
- .gitattributes: LFS now covers .blend, .zprj, .zpac, .obj, .npy and the
  Reallusion .iAvatar/.ccAvatar/.ccRestore containers. Without this the
  ~3.8 GB in this commit would land as raw blobs. .png/.jpg are left out
  on purpose — ~250 are already tracked raw and converting them would
  rewrite every one without shrinking history.
- .gitignore: exclude /accurig/ (~1 GB AccuRig program files, redistributable
  from Reallusion, nothing authored here) and /dev/null/ (git-lfs hook copies
  dropped by a `>/dev/null` redirect on Windows).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-06 15:55:43 -07:00
parent 3363209cac
commit 3ba86b2ea8
558 changed files with 68622 additions and 8 deletions
@@ -0,0 +1,49 @@
{
"name": "pari",
"_note": "G5/G3 validation config (agent C). Mirrors configs/pari.json and adds an expect block. Ground truth: the neckline gapes off the sternum in walk/dance, so a correct G5 FAILS on the gape band here while --rest (G3) passes.",
"source": "C:/Users/Jeremy/tinqs/animation/tools/tailor/lena_pari_v3_garment.fbx",
"body": "C:/Users/Jeremy/tinqs/ariki-game/assets/quaternius/derived-bodies/Ariki_Female_QuatSkin.glb",
"weld_threshold": 0.0006,
"shell_mm": 4,
"align": { "top_bone": "neck_01", "scale_xy": 0.1, "scale_z": 0.1, "z_nudge": 0.0483, "xy_nudge": [0.0, 0.0] },
"parts": {
"Pari": {
"slot": "Body",
"islands": [0],
"tris": 4000,
"planar_deg": 5,
"fit": { "target": "BODY_SHELL", "mask": "full", "offset_mm": 3, "wrap_mode": "OUTSIDE" },
"weights": "dress",
"color": [0.5, 0.2, 0.15],
"texture": "../tools/tailor/textures/taniko.png"
}
},
"export": {
"out_dir": "C:/Users/Jeremy/tinqs/ariki-game/assets/quaternius/outfits/kapahaka",
"gender": "Female",
"set": "Kapahaka",
"note": "Taniko bodice (pari) - Body slot"
},
"min_island_verts": 40,
"expect": {
"penetration": {
"max_verts": 0,
"depth_mm": 1.0,
"clips": ["Idle", "Walk", "Dance"],
"frames_per_clip": 6,
"gape": {
"Pari": {
"_note": "Calibrated by scanning body exposure in 3 cm z-slices (agent C). The pari is a scoop-neck crop top: its hem sits at z~1.06 and the neckline scoop bottoms out at z~1.325, so z 1.15-1.30 is the strip the garment MUST cover. band_x clips the arms out of the band (they fall in the same z range and are never covered, which swamped a naive band). gap_mm 0 = score only rays that miss the fabric entirely.",
"band_z": [1.15, 1.30],
"band_x": [-0.11, 0.11],
"facing": [0.0, -1.0, 0.0],
"facing_min": 0.35,
"ray_mm": 50,
"gap_mm": 0,
"max_exposed_verts": 60,
"max_exposed_delta": 25
}
}
}
}
}