Commit Graph

12 Commits

Author SHA1 Message Date
jeremy 36fc0494e8 feat(hand-shapes): morph-target hand-pose solver — fist/grip that actually deform
The morph lane's blocking bug was believed to be coincident duplicate verts hidden
from the solver's convergence gate. Welding was necessary but nowhere near
sufficient: the previous relaxation could satisfy every stretch bar without posing
anything, so the numbers it reported were not measuring the thing they claimed.

Measured on Ariki_Female_QuatSkin_LowPoly_40, the tracked "left hand is fully
clean" baseline was a morph that moved fingertips 0.3cm, and the right hand was a
rigid 6.5cm translation of the whole hand with its shape intact. Gated Laplacian
diffusion of a delta field has a null space — constants — and edge stretch cannot
see any of it: a rigid translation stretches no edge and neither does a collapse to
zero. Both exits report perfect bars.

Six defects fixed, each with its measurement in the code comments:

  weld_roi           356 duplicate groups solved twice, deltas up to 2.55cm apart
  stitch_components  hand is 6 overlapping sheets with 1-10mm gaps; Dijkstra
                     cannot cross one, so each bone saw only its own sheet
  refit_fingers      skeleton finger chain ran to 19.8cm; the flesh ends at 14.0cm,
                     so curl_02/curl_03 drove almost no weight (shipped skeleton
                     untouched — this is solver-local scaffolding)
  solve_weights      chain-arc partition of unity; the old 8mm isotropic kernels
                     left ZERO of 17,480 verts owned above 0.85, and a 3-way blend
                     averages the curl away. Plus a support cutoff: outside every
                     kernel, renormalized 1e-81 noise had handed a mid-palm vertex
                     index_02_r=0.50 and flung it 29cm
  build_roi          joint-sphere ROI, so the rim is a wrist band and not a fractal
                     of interior chart holes
  relax              strain-only edge projection + ROI-border seam constraints,
                     replacing the diffusion described above

All 8 shapes now pass every bar with real deformation: p99.9 <= 1.58x, zero edges
over 5x, zero needles with the sliver floor removed, seam <= 3.2mm, cross-hand
independence exactly 0.0000cm, mesh fingertip travel 4.6-6.2cm on fist and
3.5-4.7cm on grip (both hands). Gates now report mesh travel and seam alongside
stretch, because stretch alone cannot gate this lane.

Verified in anim_hand_test_bed: fist and grip read as a real curl on both hands,
static and mid-dance, no fins/shards/needles. It is a loose fist rather than a
clenched one — her fingers are ~4-5cm past the knuckles.

Demo GLB stays out of git (122.6 MB, ariki-game/scratchpad/). Ship decision, the
thumb-axis refit, and the TDR crash from 8 dense targets are open — see README.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 11:31:11 -07:00
jeremy 0913a5972c chore(rig-work): archive GLM's LENA_rig_v1 exports, pulled from the game
The articulated-finger/straight-leg rig model GLM shipped into ariki-game
2026-08-15, replacing the sanctioned lena_leafbikini_base_v01 ship. Jeremy
pulled it from the game 2026-08-18; ariki-game bodies reverted to pre-swap.
The blend source does not survive — these exports are the only artifacts.
The LOD1 bake is the 'yellow Lena': one skin atlas wired into all three
texture slots, so metallic/roughness sample skin pixels (see README).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 11:31:10 -07:00
jeremy 84eef7a5a2 chore(rig-work): mako_rig_v5 finger-rig blends (WIP + clean)
Two-finger mako rig authoring source: v5 working file plus a cleaned
variant, ahead of the TwoFinger body export.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-16 11:47:43 -07:00
jeremy eae8327811 feat(characters): ship lena_leafbikini_base_v01 as female Ariki default
Lena with the leaf bikini sculpted into the mesh — a separate character
descending from her own Tripo original, not a lena_base_v02. Full-res
(1,029,360 v) at 1.777 m, now Ariki_Female_QuatSkin.glb + LOD1.

First nearest-surface graft in the rig lane: AccuRig had to be fed a 20:1
decimated bait, so the index-exact graft the two earlier ships used was
impossible. The bait recovers AccuRig's 9.346 mm offset in closed form, which
makes it a required input forever — copied into the ship folder, and rig-work's
"disposable" rule amended to say so. Mesh moved 0 mm, 0 unweighted verts.

lena_base_v01 goes superseded, not rolled-back: she lost the default slot but
Ariki_Female_QuatSkin_Nude.glb is untouched, so per rule 9 her folder stays put.

Also lands the leaf-cut lane (work/lena_leafbikini): hue-keyed seam detection
that removes the leaf shell and leaves both holes open by request, registered
as a lane milestone with its sha256. Corrects the rig-work trap note — baits do
carry embedded textures; it is AccuRig that strips them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-13 16:09:45 -07:00
jeremy d6f1587eb0 feat(rig-work): lena_leafbikini AccuRig rig bait (decimated FBX)
Decimated the leaf-bikini Lena ancestor to a 77,999-tri AccuRig-loadable FBX
(body 24k / head 14k / hands 40k via tools/rigbait_decimate.py) — same recipe
and tri budget as lena_tripo_rigbait. Disposable skeleton carrier, never
shipped. QA renders confirm A-pose region cuts landed and fingers are distinct.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-13 12:39:17 -07:00
jeremy 6d519937ad Merge branch 'main' of https://tinqs.com/tinqs/animation
# Conflicts:
#	characters/REGISTRY.md
2026-08-13 12:27:25 -07:00
jeremy 17d7c246b0 feat(characters): register lena_leafbikini ancestors (GLB + FBX) from Özlem
New Tripo delivery — lena wearing a sculpted-in leaf bikini — mirrored
byte-identical from ariki-game race-sources into originals/female/ as two
read-only ancestors for future derivatives:

- female_lena_leafbikini_tripo.glb (sha256 977104ba…)
- female_lena_leafbikini_tripo_fbx/ (FBX + .fbm textures, UUID name kept, rule 7)

Registered in REGISTRY.md (Originals + new lena_leafbikini Characters row) and
listed in originals/README.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-13 12:23:46 -07:00
jeremy e244e8aee2 feat(tailor+mako): MD hunter-skirt sources, Mako MD avatar, mako lane intermediates
Marvelous Designer authoring sources for lena_hunter_skirt_v8 — the .zprj/.zpac are
hand-draped and no script regenerates them, so they are KEEP tier, not scratch — plus
the exported garment (fbx/obj/mtl), the colorway and cloth textures, and the QC
screenshots (front/back/presim) the drape was judged on.

tools/tailor/avatar/Mako_Fullhead_QuatSkin_Avatar.fbx is the MD avatar built from the
shipped male body. Worth landing even though it does not work yet: Mako's FBX imports
into MD but yields 0 arrangement points against Lena's 109, which blocks every male
garment. Having the exact file in-repo is the starting point for diagnosing that.

Mako lane intermediates (decimated fullhead, AccuRig glb, rigged blend) join their
recipes under work/mako.

All heavy files ride LFS (.glb/.blend/.fbx/.obj/.zprj/.zpac already in .gitattributes).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-12 18:54:16 -07: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 6dc60b0d32 ship(mako): mako_base_v01 — fullhead body (24k body / full-res 158k head) as male Ariki default
Decimate body-only (01), AccuRig manual rig, index-exact graft (02, mesh moved
0mm), QuatSkin via ariki-game converter (HEAD_SAFE=1, body-only normals fix).
Ships as Ariki_Male_Mako.glb, lineage MALE-MAKO-FULLHEAD-V1. First mako ship.
Height 1.818m provisional. Ceremony per REGISTRY.md; irreplaceable AccuRig FBX
preserved in rig/.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-12 10:33:15 -07:00
jeremy 3d8825f5a9 reorg(characters): ship-time folders — lena_base_v01 ships, lane moves to work/lena
REGISTRY rewritten around the central rule: a character folder is born only
when a body ships to ariki-game (<character>_base_v<NN> = ship ordinal).
lena_nude dissolves accordingly:
- characters/female/lena_base_v01/ — SHIPPED 2026-08-10: AccuRig GLB carrier,
  T-pose/rig FBX + JSON, previews, frozen README
- characters/work/lena/ — the live lane: recipes 01-47 (incl. new 36-47:
  refill/sheets/clay/despeckle/musculature/spin/AccuRig export/graft/pose QC),
  masters (athletic_v04 blend + textures, accurig blend), lane-history README
- hires_claude/hires_work intermediates (blends, logs, probes) pruned

Supporting docs: AGENTS.md, working-files rule, rig-graft plan addendum,
originals README, prune_lane.py.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-12 07:17:15 -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