Commit Graph

74 Commits

Author SHA1 Message Date
Can Narin ce5ac32531 Merge branch 'main' of https://tinqs.com/tinqs/animation 2026-08-18 22:47:07 +03:00
Can Narin 0fae2b514c tailor(voyager): strapless bandeau lane -- elastic-free zero-g recipe + 23-variant work log
Female voyager bandeau top from the fc-voyager-kilt-gpt refs. Winning
construction (md_final_v16/v23): seamless-loop doctrine -- NO edge elastic
(gathering is what notched the armpit junctions), body-snug cut, zero-g wrap
(SetSimulationGravity(0) BEFORE ResetClothArrangement -- one full-gravity
materialization tick drops the bistable tube into the low basin), stiff 40f
positioning then soft 110f conform, self-measuring retry loop.

Hard-won facts logged in the scripts: strapless garments never survive full
gravity (frictionless skin + stretchy elastic); arrangement x IS azimuth
(Body_Back_Center_1 native x=0, forcing 50/50 sews both panels into a front
pouch); SetArrangementOrientation flips panel facing but mirrors it L/R;
frozen cloth renders cyan; back panel textured face points at the skin --
fix is manual Flip Normal (no API).

Texture: positioned plait/rope/fringe tile spanning the 170mm panel once
(hem anchors at v=0.5 and wraps). manual_fit_backup.zprj preserves Can's
hand-fitted drape. Exports still pending final drape approval.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 22:46:31 +03:00
jeremy e2403d4b3e chore(mako): handfix keepers — clip-curl pose recipe, repair masks, fin_locate
pose_clipcurl_idle.json is the recipe for extracting a clip's pinned curl;
the .txt files are the crosshand-repair vertex masks. The 230 MB of A/B bake
GLBs and render dirs stay out as regenerable scratch (now gitignored);
review/ evidence PNGs were already in the ignored tier.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 12:08:41 -07:00
jeremy fb6cf9a2cb chore(rig-work): lena rigbait .fbm textures — companion dir of the rigbait FBX
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 12:08:40 -07:00
jeremy ab4d805f84 feat(lena): register crotchfill sculpt v02 — briefs leaves melted to smooth crotch
REGISTRY entry + the registered 46.7 MB GLB (add -f per the working-files rule:
registered v02 artifacts are tracked even though the v0N dirs are ignored).
sha256 verified against the registry line. Recipe 07_fill_crotch.py already
tracked; known consequences (hip shelf bulges, flat donor texel) documented in
the registry entry, not defects to chase.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 12:08:39 -07:00
jeremy 4d7c032d97 chore(gitignore): ignore .env + handfix/handmorph regenerable scratch
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 12:08:19 -07:00
jeremy cf336f3b5b feat(lena-hands): exp09 graded cross-digit finger weights + honest tear metrics
The exp05 verdict ("weights alone cannot clear the bar on this mesh") was
measured against a hard partition that was itself causing much of the tearing.
exp01-exp05 gave every vert to exactly ONE digit -- 08_finger_weights.py had an
explicit `elif lo in FING: continue  # other digit: hard wall` -- which
guarantees the fused inter-digit bridges tear by the full finger separation,
because a single edge ring absorbs the whole gap.

Replace that with graded blending (WEB_BLEND_R0): a vert's fraction toward its
nearest other digit ramps 0 -> 0.5 as r = d_own/(d_own+d_other) goes 0.35 -> 0.5,
so both sides of the equidistance valley reach 50/50 and the field is continuous
across the boundary. Applied after the smoother (whose hard wall would erode beta
exactly where it must survive) and evaluated in the neighbour digit's own
arc-length frame. WEB_BLEND_SKIP excludes the thumb: its transform is opposition,
not curl, so its frame does not correspond to a finger's.

Measured against an identical baseline (same input, blend the only variable),
real tears (>=1mm rest length) drop 23-60% with NO regression on flat, the pose
that ships: fist_r 1178 -> 530, grip_r 561 -> 222, fist_l 979 -> 633,
grip_l 420 -> 322; total >5x 2487 -> 1307; p99.9 better on every pose;
flat unchanged at 0/1. fin_bones confirms the mechanism rather than just the
count -- the middle<->ring and pinky<->ring families leave the top classes while
the thumb/palm ones are untouched to the edge (182 -> 182, 148 -> 148).

This does NOT make fist/grip shippable: 222-633 real tears still reads as a
destroyed hand in clay renders, and the residual is now ~53% thumb-pad-fused-to
-palm, which is topology and needs mesh surgery or the v02 rebake. Flat and
relaxed are the shippable poses; fist/grip belong to the morph lane for now.

Also here:
- README: the solver's input is v02/..._exp03.glb, NOT exp01. exp01 is pre-hand
  -fit (converter steps 2b/2c); its finger groups sit on the wrist and overlap
  the real finger by 1.6cm, so a solve from it silently zeroes every _02/_03 bone
  -- rigid stick fingers and a torn flat -- while weight sums stay 1.0 and every
  assert passes. Cost three wasted bakes and one false "the solver regressed".
- Seed assert demanded >=100 seeds while the radius loop caps at
  SEED_AXIS_R_MAX, which left pinky (88 seeds at 16mm) can never satisfy; the two
  constants were mutually unsatisfiable. Now >=60, and it is documented as a
  sanity gate rather than a quality bar.
- Detwist poses tested at last: real but marginal (fist_r 38.7x -> 28.7x,
  grip_r 30.0x -> 17.3x, left hand flat). A knob, not a fix.
- edge_stretch_cmp.py / skin_bone_territory.py / handpose_trim_hand_obj.py:
  judge tears by rest length and absolute posed growth, not raw ratio; audit
  whether a bone owns any verts at all (thumb_01 owns ZERO in exp05); and trim
  an arm-sized skin dump to the hand before rendering.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 11:33:15 -07:00
jeremy 3f335ee2d7 docs(lena): land pending stage-07 crotch-fill recipe
`07_fill_crotch.py` and its README autopsy were written in an earlier session
and had been sitting uncommitted. Committing them unchanged, separately from
today's hand-weight work, so neither is misattributed to the other.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 11:31:55 -07:00
jeremy 4c3870336f docs(plans): archive the lena handmorph track handover (2026-08-18)
The plan this track executed against. Its weld diagnosis was real but turned
out to be 1 of 6 defects, and its stretch-only acceptance bars were satisfiable
by a no-op morph — see hand-shapes/README.md and b57b0f2 for what actually
happened.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 11:31:12 -07:00
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
Can Narin fea96bf582 tailor(mako): kilt v2 on Mako via Lena donor-swap -- MD rejects all Mako meshes
First male garment through the MD lane. MD's body analyzer rejects every
Tripo-Mako-derived mesh (0 arrangement points, 'avatar must be in T-pose or
A-pose' despite a verified 0.4-deg-perfect skeleton; same wall as ariki-game
e244e8a). Chimera test pins it on the MESH -- Lena's mesh on Mako's armature
gets 109 points. Ruled out: finger weights, decimation, head/hand chops, leg
spread, rename, OBJ import, export settings.

Workaround that ships: arrange+sew+elastic-lock the garment on a 1.07x-scaled
LENA donor, ImportFBX Mako with bAdd, DeleteAvatar(Lena), re-settle. A
seamless single-wrap slides off Mako's legs during the swap -- only SEWN
garments survive it, so the flat pattern's wrap reads are faked: overlap flap
seamed to a split front-waist segment, comb-teeth fringe (piupiu technique)
carved into the hem, rope belt as rigid Blender geometry (build_rope_belt.py).

Other findings baked into work/mako_kilt_v1/ scripts + config:
- fabric texture anchor: pattern y=0 maps to texture v=0.5 and WRAPS
  (striped-probe verified; make_kilt_cloth.py mm_from_row)
- waist elastic never reaches TotalLength at default strength; strength 60
  moved placement from 1.019 to 1.043
- SetAvatarActivation returns False (unusable); GetArrangementList dies on
  any scene avatar mutation

QC PASS (turntable render, alpha mask, height 1.818): top 1.063 vs 1.054
target (tol .03), fringe tips 0.666 vs 0.665 (tol .04).

Avatars: _fingers = full finger weights restored via UV-space transfer from
rig-work/mako_fullhead_rigged.fbx (build_mako_avatar_fingers.py); shipped-body
avatar landed for future diagnosis. v1 (pre-flap/teeth) kept as provenance.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-18 16:21:16 +03:00
jeremy 9ac741302e feat(hand-poses): canonical hand-pose library, pre-ship staging for ariki-game
Four Kevin-harvested poses (flat/relaxed/fist/grip) as glTF node-local quats
on the canonical Quaternius skeleton. pose_flat shipped to the runtime
HandPoseLayer 2026-08-17 and verified in the dance bed; fist/grip staged,
blocked on the Lena finger-weight repair.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-17 14:53:20 -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 c4607e27b9 chore(gitignore): per-stage lane output dirs (characters/work/*/v0N/)
characters/work/lena/v02/ is 1,019 MB — 15 .blend snapshots of the same ~883k-vertex
mesh plus their .glb exports. working-files.md puts per-attempt .blend in the SCRATCH
tier, 'never committed': the NN_*.py recipes are the history and regenerate any of
them from masters/55_fullres_v02.blend, which is pinned and tracked. The lane already
reached 3.0 GB once, 2.2 GB of it .blend files, which is why the rule exists.

git add -f any artifact that gets registered in characters/REGISTRY.md. None is yet —
the v03 body is HELD with known defects.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-12 18:54:42 -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 23fc4b378e docs(characters): brows went back to painted on 2026-08-12
Merging origin/main in ariki-game surfaced a product decision newer than this doc:
Ozan removed the mesh brows, lash cards and browless-face swap from the product path.
Brows are painted on the body texture again and keep their baked colour, so "brows
follow the hair swatch" and the generated-surface lane are both parked.

The tooling and the brow wiki page still describe the 3D lane, so the note now says to
read the code before the docs there.

Two consequences outlive the revert and are kept: painted brows are still atlas-bound,
so the v02 re-atlas has to carry the pigment (an albedo-fidelity job now, not three
artifacts to regenerate); and character_brow.gdshader is still the only mechanism that
could recolour a brow on a scanned face, since raised scan geometry cannot be erased
with a texture.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-12 17:47:00 -07:00
jeremy 760cf12788 feat(characters): hair-fit measurement + head-features contract
Ozan's hair system rebinds Quaternius styles (100% rigid to one Head bone) onto
whichever body loads, corrected by three hand-tuned constants in
CharacterBuildData.HeadFit. Those constants are only valid against the skull they
were tuned on, and nothing re-checks them when a body is rebaked. Both ship bodies
are currently wrong, in opposite directions.

tools/measure_head_shell.py:
  --fit     solve HeadScale/HairOffset from two cranium landmarks. A scale-about-
            pivot plus a translate has exactly two degrees of freedom per axis, so
            the crown + widest-cranium slice determine both outright -- no bed pass.
  --sweep   score every style against the clearance it was AUTHORED with on its own
            stock rig (a mohawk stands proud, a beard hangs at the chin -- absolute
            crown height is not the test).
  default   full Head-weighted shell AND the cranium band. The full shell is what
            MakoHeadFit quotes; it is inflated several cm by jaw/ear/neck weight
            bleed and is not the surface a cap sits on.

Measured against the shipped GLBs:
  Lena  cranium needs Y 0.960, carries 1.431 (+49%) -- every style floats 4.4-7.3cm
  Mako  cranium needs Y 1.186, carries 1.346 (+13%) -- every style sinks, buzz cut
        2.2cm into his skull, moustache 8.0cm low
Solved constants take Mako to 0.00cm worst error over 10 styles, Lena to 0.29cm mean.

docs/characters/head-features-contract.md records the system, the measurements, and
what a 3-constant fit still cannot reach: Lena needs 1.613 in X but 1.311 in Z, a
23% anisotropy that stretches an authored cap sideways and drags ear cutouts along a
diagonal. That is Ozan's logged residual and wants a per-body geometry bake. Mako's
anisotropy is only 3%, so constants alone should suffice for him.

Also noted: the whole hair set shares just two base textures, so "authored per-colour
hair textures" -- the fix the wiki writes off in favour of the /0.55 swatch hack --
is 16 PNGs.

Crown placement is rest-pose arithmetic; X/Z and the in-bed look are unverified.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-12 16:07:34 -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 a4e16315ae Merge branch 'main' of https://tinqs.com/tinqs/animation 2026-08-12 07:18:24 -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 a2fe8f334d Merge branch 'main' of https://tinqs.com/tinqs/animation 2026-08-11 16:16:49 -07:00
jeremy e08ad2f3e9 docs(animations): naming conventions, wiring audit, unwired catalogue + claude-desktop context brief
NAMING.md/AUDIT.md/UNWIRED.md are the conventions-doc pivot after the
mass-rename was killed; committing so the bridge repo tree is clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-11 16:07:41 -07:00
jeremy 4bbd1a1732 docs(humans): ship the MD explainer as a PDF with the images baked in
The HTML references screenshots relatively, so it only renders inside a
checkout -- mailing the file on its own gives broken images. The PDF is one
self-contained file, which is what actually gets sent to Ozlem.

- tools/humans_to_pdf.py: renders .humans/*.html via headless Chrome (or
  Edge), so the output is what the browser shows. HTML stays the source.
- @media print block on the page: the wide tables and the pipeline diagram
  scroll on screen but would be cut off at the paper edge; this reflows
  them and keeps figures, callouts and table rows off page breaks.
  Verified at A4 content width -- 6 pages, both screenshots embedded.
- *.pdf -> LFS. Each regeneration is a whole new ~2 MB blob, and unlike
  png/jpg there are no PDFs tracked raw yet, so there is no history to
  rewrite by adding it now.

Also corrects working-files.md: it claimed .gitattributes does not LFS-track
.blend, which was true when written and is no longer -- .blend/.zprj/.obj/
.npy/.npz have since been added. The note now covers what is actually still
excluded (png/jpg, deliberately) and why that makes QA renders scratch.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 09:31:37 -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
Can Narin 3363209cac inbox(lena): female Lena nude base turnaround refs for Jeremy — front/side/back T-pose
Smooth mannequin base body renders for clothing work.
Source: docs/conceptart/generated-images/female-lena-base/

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-06 23:13:09 +03: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
jeremy 854dbb5ce4 chore(agents): migrate to agents.md protocol — .agents/ wiki/plans/rules/skills
Root AGENTS.md is now a thin entry point + knowledge map; the batch-workflow
detail it duplicated already lived in .claude/skills/animation/SKILL.md.
Folded docs/ (dances registry + iclone-bridge stub), root plans/, and
devops-reports/ into .agents/wiki/ and .agents/plans/ per the per-repo .agents/
convention. Added .agents/SOUL.md, .agents/AGENTS.md, wiki/ARCHITECTURE.md,
wiki/architecture/, and wiki/master-plan.md (derived from the closed plans +
the dance registry's live ceremony-slot table). Fixed doc-path references in
exchange/GUIDE.md, the animation skill, and the iclone-bridge stub. All moves
via mv (git detected as renames) — no content deleted.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-24 15:02:47 -07:00
jeremy 28fdf940f7 revert(inbox): restore Ozan's shipped QuatSkin — v8 rig experiment backed out
The v8 body pushed here (078b0b7) broke Lena's hands + eyebrow fit and its
rest-mismatch premise was unconfirmed (ariki-game 174a0429e). Back to baseline.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 14:33:01 -07:00
jeremy 06d950649b docs: add AGENTS.md — agent orientation guide for the animation bridge
Fast-orientation guide synthesized from README.md and the animation skill:
batch workflow, canonical retarget command, nd_## naming, loop QC, gotchas,
and repo etiquette. Points to the skills and docs/dances/REGISTRY.md as
authoritative sources.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 13:20:27 -07:00
jeremy 078b0b7a07 feat(inbox): Ariki_Female_QuatSkin v8 — rig fixed onto the UAL clip rest
Supersedes the previous QuatSkin drop: skeleton now matches UAL1.glb exactly
(0.0001° all 65 joints; ariki-game e67df53e6). Plays the stock clip libraries
without crumpling. Gate: ariki-game tools/rig_pose_gate.py.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 13:08:42 -07:00
jeremy 1219954fdc chore(pm): move devops-reports/ to repo root (Jeremy)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 11:36:02 -07:00
jeremy 82266c97bb docs(pm): devops report — animation-standard convergence 2026-07-23/24
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-24 10:58:43 -07:00
jeremy b4d962167f fix(audit): converge on the 2026-07-23 animation standard — tool sync, QuatSkin INBOX, registry corrections
From the conformance audit (ariki-game .agents/audits/animation-standard-assessment-2026-07-23.md):
- tools/: cc_retarget + mixamo_retarget re-synced from ariki-game (were stale forks
  missing --despike/--fingers/--map ual); kevin_retarget path now repo-relative;
  mirror rule documented in exchange/GUIDE.md
- INBOX/lena: add canonical Ariki_Female_QuatSkin.glb; README marks MixamoSkin superseded
- REGISTRY: tide_dance_01 flagged (no DanceType enum entry); rain_dance note corrected
  (RainDance IS in the enum); boat table notes live canoedismount1/run_to_dive; QC split
  (loop_qc pre-commit vs anim_qc post-ingest) documented
- docs/iclone-bridge.md: stub created (GUIDE referenced it but it never existed)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 15:37:55 -07:00
jeremy 998e306804 feat(inbox): Lena character drop — game GLB, Mixamo-rigged FBX, textures
For PC import: standard-rig Lena (Ariki_Female_MixamoSkin.glb) as used
in-game, plus the rigged/unrigged T-pose FBX sources and toned textures.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 13:03:22 -07:00
jeremy 228f26e7dc Merge branch 'main' of https://tinqs.com/tinqs/animation 2026-07-23 13:02:10 -07:00
jeremy cd2e598354 docs(exchange): add folder guide with tracks, archive triggers, and changeable path map
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 15:23:41 -07:00
jeremy 7f4300eae6 assets(exchange): add lena_tpose_legs5_input.fbx to INBOX from ariki-game
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 13:29:30 -07:00
jeremy 9f3f5ac891 @
feat(exchange): native Kevin Iglesias pickaxe mining FBX for iClone editing

Two-hand Mining set (Begin/Loop Ground/Loop Wall/Stop) on the native B-* rig,
pulled from ariki-assets animations/kevin-iglesias. Native rig (not the
Quaternius-retargeted game GLB) so iClone can characterize the skeleton to HIK.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
2026-07-21 13:29:18 -07:00
jeremy 528bf1a905 feat(exchange): add INBOX drop folder for incoming files
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 13:25:59 -07:00
jeremy b68fa7b920 exchange: Lena (Mixamo-rigged) + two-handed axe for iClone scene work
- lena/lena_tpose_legs5_mixamo_rigged.fbx — 65-bone mixamorig skeleton,
  mesh intact, T-pose; iClone characterizes Mixamo rigs natively.
  Textures alongside (Body_Toned, Head_Toned, Head_Detail) for relinking.
- axe_two_handed.fbx — the game's Polynesian axe (assets/models/glbs/axe.glb
  via build_axe.py, 1.30 m), converted GLB→FBX with textures embedded;
  import as a prop.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 12:21:06 -07:00
jeremy c79d23549a feat(dances): convert baraka1 → nd_01 (+ nd_01_pp loop)
Retarget baraka1.fbx (iClone, 1800f@60) to nd_01.glb (clip ND01) and bake
the ping-pong loop variant nd_01_pp.glb (clip ND01PP). _pp passes loop_qc.py
(0.00 seam pose/velocity gap). Provisional id per registry; awaiting ceremony
assignment.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 10:28:07 -07:00
jeremy 19181157cc Merge branch 'main' of https://tinqs.com/jeremy/animation 2026-07-21 10:19:34 -07:00
jeremy 3b132ebe9e assets(exchange): re-export baraka1 with full motion
Replace the short baraka1 FBX with a larger motion-inclusive export and updated sidecar JSON.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 10:19:07 -07:00
jeremy f468d148bc feat(profiling): add dance motion profiler + beat-energy profiles for adopted dances
tools/dance_profile.py samples world-space bone positions per frame in
Blender headless and emits a per-beat motion-energy timeline (accents,
phrases, totals) at a given BPM. Profiles generated for war_dance_01,
fertility_dance_01, taming_dance_01.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 09:52:06 -07:00