Commit Graph

53 Commits

Author SHA1 Message Date
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
jeremy 7b44019c9a assets(exchange): add baraka1 incoming iClone FBX
Incoming baraka1 export (FBX, sidecar JSON, textures) for the next retarget batch.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-21 09:31:04 -07:00
jeremy 485c27a04c assets(exchange): canoe dismount incoming + water/prop FBX batch
Add canoedismount1 iClone export for retarget, swim/dive/talk staging clips, and boat_prop hull texture.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-20 18:13:47 -07:00
jeremy a4ad489229 assets(exchange): add dance2/haka2 incoming FBX and reference videos
Incoming iClone exports (dance2, haka2) plus mocap reference clips and Dance2.iProject for the next retarget batch.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-17 18:37:21 -07:00
jeremy 4d6a4f6006 feat(props): export game boat as iClone staging prop (boat_prop.fbx)
tools/export_boat_prop.py (GLM-implemented, 2 rounds): hull at game scale
(8.5 m, keel 0, no recenter) + placeholder mast/sail/steering oar + 5 seat
markers + waterline + 1.9 m ref figure; self-verify incl. right-side-up
gates added after round 1 shipped an upside-down hull with all checks
green. Registry: boat actions table (6 slots, direct names). README
carries CC BY 4.0 attribution + iClone import/filming notes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 10:40:37 -07:00
jeremy 17ff1f748e assets(reference): Māori haka reference video (Polynesian Cultural Center, Oahu)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 15:58:03 -07:00
jeremy df2629af16 feat(naming): adopt war_dance_01, fertility_dance_01, taming_dance_01
hakadance1->war_dance_01, aloha1->fertility_dance_01, dance1->taming_dance_01,
each with a _pp loop variant (all SMOOTH per loop_qc). Loop rule: every
adopted dance ships base + _pp pair. GLM trim+blend loop variants archived
(ping-pong is the loop standard).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 14:48:52 -07:00
jeremy 9b190e742e docs(naming): ceremony codes follow game item-id convention (snake_case DanceType)
13 ceremony slots tabled in the registry (12 DanceType + rain_dance),
provisional ids now nd_##; codes like war_dance_01 / WarDance01.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 14:36:03 -07:00
jeremy 6a1290b1d1 docs(naming): dance codes are ceremony-based (<ceremony><NN>)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 14:28:35 -07:00
jeremy b918d8670f feat(naming): dance registry + two-stage naming system; archive non-keepers
Keep aloha1(+pp), dance1(+pp), hakadance1. Archive hakadance2, alohaOG,
firedance1, hakaOG (all variants) to archive/. New dances get provisional
nd## ids at conversion; rename to a dance code (haka01 etc.) only on
adoption via tools/rename_clip.py. Registry: docs/dances/REGISTRY.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 14:06:56 -07:00
jeremy da0567b79d docs(dances): dance1 motion description from Blender kinematic analysis
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 13:48:10 -07:00
jeremy ac691dee90 feat(tools): pingpong_bake — palindrome loops; 7 *_pp GLBs (all SMOOTH)
Forward+reversed baked as one clip: end==start by construction, drift
self-cancels, full choreography kept; motion reverses at the turn point.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 13:48:10 -07:00
jeremy d8e2f2782c feat(tools): loop_fix (de-drift + trim + seam blend) + 7 looped GLBs
Implemented by GLM from plans/loop-fix-plan-2026-07-16.md; all seven clips
verified SMOOTH by loop_qc (0° pose gap, 0 cm drift, 60-89% duration kept).
Results: plans/loop-fix-results-2026-07-16.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 13:48:09 -07:00
jeremy d3206f6ce2 feat(qc): loop_qc tool + loop-qc agent — measure loop-seam smoothness
Pose gap / velocity gap / root drift at the LoopMode.Linear wrap; exit-code
gated. Skill updated: loop QC is workflow step 5, with the Blender-side
fixer playbook.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 13:48:09 -07:00
jeremy 95331a8c36 feat(exchange): converted alohaOG, firedance1, hakaOG (Quaternius rig)
Clips AlohaOG, FireDance1, HakaOG — all 1800f @60fps, real motion.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 00:21:39 -07:00
jeremy 76acb87c60 feat(exchange): add alohaOG, firedance1, hakaOG fbx+json+textures; Dance1 iProject
- incoming-fbx: alohaOG, firedance1, hakaOG (fbx + json + .fbm + textures)
- workingfiles-iclone: Dance1.iProject

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 00:08:47 -07:00
jeremy aabe8a523c docs(skills): add animation skill — pipeline preferences & lessons
Captures the Mac↔PC bridge workflow, retarget command, naming
conventions, the TempMotion/A-pose/sidecar gotchas, game-launch rules
(ask first, spawn-log tail buffering trap), and repo etiquette.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 23:05:33 -07:00
jeremy 0cf3eadad5 feat(exchange): converted aloha1.glb (Quaternius rig, clip Aloha1)
Re-exported from iClone with motion included — now 1800f @60fps
instead of the earlier 2-frame placeholder.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 22:46:01 -07:00
jeremy 834fc7533c chore(exchange): update aloha1 fbx+json (re-export, adjusted collision capsules)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 22:43:47 -07:00
jeremy a2750d22b3 feat(exchange): converted dance1.glb + hakadance2.glb (Quaternius rig, clips Dance1, HakaDance2)
aloha1.fbx skipped — 2-frame TempMotion placeholder, exported without
motion; needs re-export from iClone with motion included.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 22:32:22 -07:00
jeremy 8a19afef1b feat(exchange): add aloha1/dance1/hakadance2 fbx+json+textures, reference videos, iClone project
- incoming-fbx: aloha1, dance1, hakadance2 (fbx + json + .fbm + textures)
- reference-video: two hula/haka source clips for mocap reference
- workingfiles-iclone: "aloha + Haka 1" iProject

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 22:24:05 -07:00
jeremy 1696b26437 feat(exchange): converted hakadance1.glb (Quaternius rig, clip HakaDance1)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 10:38:58 -07:00