Commit Graph

9 Commits

Author SHA1 Message Date
ozan 171c52319f feat(skirt-weights): flap snap + center tie seam + ride fade + top-band gates
Wrap skirt run approval (pairs with ariki-game c03c270d1):
- SKIRT_PIN_SNAP: each front vert glued to its OWN thigh (cross-leg blends
  park cloth between the legs at full split — the two-day pop-through bug).
- SKIRT_PIN_SEAM: ramp from own-thigh to 50/50 at the centerline — ties the
  two front flap ends without a hard weight step (a flat band read as a cut).
- SKIRT_RIDE_AZ_FADE: hard weight-zone boundaries animate as sawtooth.
- SKIRT_PIN_T_LO / SKIRT_RIDE_T_LO: keep the new belly rope pure pelvis.
2026-08-23 00:32:00 +01:00
ozan f6d880b7b8 feat(skirt-weights): inner-front anchor + import cache-bust
SKIRT_ANCHOR_IFP: pins the front-inner band of a garment to its thigh at
W=1.0 (asymmetric sector: 100deg inner / 135deg outer so back cloth never
pins to the thigh front) — the stitch answer to colliders being unable to
move strand root joints (probe-measured 32mm penetration at full stride).

save() now stamps asset.extras.skirt_weights_rev every run: weight-only
rewrites left the .gltf byte-identical, Godot's source_md5 check skipped
the reimport, and engines ran STALE weights (cost 2026-08-20 afternoon).
2026-08-21 02:46:42 +01:00
ozan ca1af52574 feat(skirt-weights): SKIRT_FOLLOW_TUBE — directional front-quarter thigh follow
Ozan 2026-08-20: 'the leg is a tube pushing in and out, not just the line.'
Proximity follow keyed off distance to the thigh AXIS, so cloth beside the
stitch line followed the line while the leg's VOLUME swept through it. With
SKIRT_FOLLOW_TUBE=1 the contact term is modulated by the vertex's radial
direction around the leg (body forward measured off foot->ball): front sector
+/-TUBE_FRONT deg follows at full strength, fading to TUBE_BACK behind.
Default off — approved recipes regenerate bit-identical. point_seg_distance
now also returns the closest point for the radial direction.
2026-08-20 18:33:10 +01:00
ozan 70d4312f4a feat(clothing): skirt gait bake spike — Blender cloth sim baked to strand bones
bake_skirt_gait.py: headless Blender CLOTH sim of the long tifi against the
UAL1 Jog_Fwd_Loop run cycle, baked onto the skirt_* ring as a rotation-only
clip (out/SkirtJogFwd.glb, 0.933s loop, 120 tracks). NOTES.md: cloth→bone
centroid-fit mapping, runtime integration options (override/additive/hybrid),
Blender 5.1 slotted-action + export_force_sampling gotchas. Renders: sim vs
bake phase proofs. Game-side loader lives in the ariki-game clothing bed
(Run Baked).
2026-08-20 17:07:44 +01:00
ozan fc0afd7534 feat(skirt-weights): AZ_SPREAD cosine strand blend, PANTS solid-4 zone, edge mix, band ramp, PANTS_FROM — all env-gated
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BLpZsSvLufgVri2bhvmAS6
2026-08-19 08:03:46 +01:00
ozan be1ee94701 feat(skirt-weights): partial-coverage + pants-top modes for the ariki-game pugu lane
Two env-gated extensions, defaults unchanged (full skirts behave exactly as before):
- SKIRT_ALLOW_DEAD=1 — a pugu loincloth has OPEN sides by design; its bare side
  strands downgrade the dead-strand FATAL to a warning.
- SKIRT_PANTS_TOP=<frac> + SKIRT_PANTS_MIX (0.65) — the garment's top fraction
  is skinned like the pack's own Peasant pants (measured: crotch cloth = 49/49
  both thighs, pelvis ≈ 0 below the waistband), mixed with the strand weights
  so leg colliders keep authority; blends into pure strands below.

Consumed by ariki-game tools/build_pugu_tifi.py garments (pugu/tapa skirts).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BLpZsSvLufgVri2bhvmAS6
2026-08-19 03:49:25 +01:00
jeremy c12c4f156c feat(lena): v02 lane recipes + the archival full-res master
The v02 chain, which exists because bisecting the shard-eye defect proved it lives in
the hires MASTER rather than in any v02 step: the early heal chain ran whole-mesh welds
and reset custom split normals, and the eye/lash shells only read as an eye through
Tripo's authored normals. Every descendant inherits it, including the shipped body.

  48_decimate_headsafe  body/hands only, head bit-identical (feathered ramp)
  49_seams_v02          24_seams with a density-aware hip landmark — the v01 rule fired
                        at u=0.610, mid-belly, on the head-protected vert count
  50_seams_headuv       body-only unwrap; the head KEEPS its original Tripo charts.
                        SLIM collapsed the undecimated lash/brow slivers to points and
                        ANGLE_BASED packed at half v01's texel density; the face was
                        the best-mapped region of the source atlas, so it is reused
  51_reatlas_v02        31_reatlas + centroid splats for sub-texel triangles — the
                        skipped set IS the lashes, which rendered as grey glass
  52_head_transplant    the PRISTINE ORIGINAL head onto the decimated nude body
  53_rig_transfer       54_crotch_refill

55_fullres_v02.blend is pinned in .lanekeep as THE archival master: full-res nude body
+ pristine original head, crotch refill and texture despeckle applied, 883,404 v /
1,761,640 f. It supersedes 34_v04 as the lane root (34_v04's head has the shard eyes).

Also: tools/graft_hands.py, the Marvelous Designer hunter-skirt configs v1-v8, the
hunter cloth texture generator, and Mako's measurement card.

Per .agents/rules/working-files.md the per-attempt .blend files under work/lena/v02
are SCRATCH ("never committed") — the .py recipes here are the history and regenerate
any of them from the pinned master. See the ignore rule landing next.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-12 18:53:17 -07:00
jeremy 3ba86b2ea8 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>
2026-08-06 15:55:43 -07:00
jeremy d1030def4e docs+tools: working-file policy, lane pruner, and a human MD explainer
Two pieces of work.

1. Keep milestones, not steps. Staged NN_*.py lanes were saving a full
   ~80 MB .blend per attempt, so Lena's lane reached 3.0 GB of which 2.2 GB
   was 30 .blend files -- five snapshots to land one crotch fix, five more
   for the bra. The .py recipes are the real history; the blends are cache.

   - .agents/rules/working-files.md: four-tier policy (KEEP / MASTER /
     SCRATCH / UNKNOWN) + how to work a lane.
   - tools/prune_lane.py: classifies a lane and prunes the scratch tier.
     Dry-run by default. Reads a per-lane .lanekeep manifest, flags
     binaries byte-identical to a registered original (canonical name
     always survives a duplicate pair), and never auto-deletes a .blend
     with no step script beside it -- those cannot be rebuilt.
   - .gitignore: scratch patterns can never be committed.

   Dry run on characters/female/lena_nude reports 2.3 GB reclaimable.
   Not applied -- that lane had a live Blender session at the time.

2. .humans/marvelous-designer.html: how we author garments in Marvelous
   Designer, written for people rather than agents -- the six-step process,
   what has been made, the traps that cost hours, and what is still
   unsolved. Matches the .humans/ HTML convention in ariki-game.

Also committing the docs the AGENTS.md knowledge map and the new page
reference, so they are not dangling: the clothing-lane architecture page,
the marvelous-designer skill, and the two screenshots the page embeds.

characters/ is deliberately untracked and stays that way -- it holds GBs of
blends and GLBs, and .gitattributes does not LFS-track .blend.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 12:05:46 -07:00