Skip to content

Draft: V0 Animation Correction — Loops 1–6 (do not merge) - #8

Draft
HSpector1 wants to merge 9 commits into
fix/v0-visual-baseline-correctionfrom
fix/v0-animation-led-visual-correction
Draft

Draft: V0 Animation Correction — Loops 1–6 (do not merge)#8
HSpector1 wants to merge 9 commits into
fix/v0-visual-baseline-correctionfrom
fix/v0-animation-led-visual-correction

Conversation

@HSpector1

@HSpector1 HSpector1 commented Jul 30, 2026

Copy link
Copy Markdown
Owner

Draft checkpoint — DO NOT MERGE. Animation-led visual correction of the V0 3D restaurant
readability sandbox. Hybrid characters = Quaternius Universal Animation Library (CC0, 65-bone rig,
43 clips) + custom identity skinned/bone-parented to the same armature. Raw UAL mesh git-ignored;
only customized derivative GLBs are committed.

Status

  • 6 of a minimum 10 loops complete. Target 12 loops — NOT complete.
  • Human testing is NOT authorized and has not been run.
  • Do not merge.
  • Backend integration and M1 are NOT authorized and not begun. No .cs/src/tests/M0 touched.

Loops

  • 1–3 superseded procedural foundation (retained as evidence).
  • 4 adopt hybrid; server/cook identity. Pass-with-notes.
  • 5 customer cast + interaction; targeted remediation → all gates pass (prop 4.3, action 4.2, style 4.4).
  • 6 — Host & Busser operational language (this commit, 9d2f07e): host + busser characters, animation
    language, physical table-state props, integrated healthy/overload host+table-turn scene with
    presentation/readability HUD layers.

Loop 6 verdict: Fail — targeted remediation (Loop 7 not authorized)

Foundation is sound: characters/clips build, no regression in Loop 5 work, pipeline reproducibility
4.5, Godot reliability 4.5, deformation 4.0, performance honest (10-char cast 166k tris / 590 draw calls;
LOD1 −24.8%). But the primary gate fails — the entrance/table-turn state does not read at the default
management overview without the HUD: the physical table carries no state that survives zoom-out or
greyscale, and host/busser reads are prop-dependent. Six categories fall below the critical-3 floor
(dirty-table 1.5, busser/host at overview 1.5/2.0, host-turnover-failure 2.0, busser-action 2.5,
table-turn 2.5). Scores from four independent reviews; not inflated.

Full evidence: reports/visual/v0-animation-correction/iteration-06/ (HYPOTHESIS, CRITIQUE with 4
independent reviews, SCORES, DECISION, lineups, reels, sequences, state lineup + greyscale, prop
closeups, 4 overview recordings, performance-counters.csv, validator.txt, regression-checklist,
loop5-vs-loop6). Recommended next: targeted remediation of table-state-at-overview + host/busser identity.

claude added 4 commits July 30, 2026 13:40
Loop 1 (of min 10; target 12 NOT complete). Deformation-ready base: build_rig.py generates a
continuous subsurf-smoothed humanoid, 19-bone skeleton, ARMATURE_AUTO skin weights, 3 body
profiles (slim/average/broad), Idle clip. Verified: CHAR_Base_Average.glb has skins=1 /19 joints
/JOINTS_0+WEIGHTS_0/anim Idle; Godot imports Skeleton3D(19)+AnimationPlayer, deforms on playback
-> resolves the PR #6 no-skeleton blocker. Honest ceiling archived (iteration-01/): shoulders
crease, elbows/knees segment-y, hands=spheres, ~11.8k tris/char; clean shoulders/hips/wrists need
manual weight painting (~8-14 h) next session. Deformation self-scored 3 (< the 4 bar).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Loop 2 (of min 10; target 12 NOT complete). Walk + WalkStop clips added to build_rig.py;
anim_demo.gd path-follows CHAR_Base_Average (facing via atan2, feet at y=0, Walk looped).
Verified: walks legibly at the management camera, faces direction, grounded (shadow), moves
along the path (recording frames A!=B). Honest defects archived (iteration-02/): mild-moderate
foot slide (speed not stride-matched), no Idle/Walk blend (no AnimationTree yet), segment-y
knee/hip deformation (Loop-1 ceiling). Appeal/deformation self-scored 3.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Loop 3 (of min 10; target 12 NOT complete). Carry/Cook/Sit/Wipe clips added; animated_service.gd
places rigged actors (role-tinted, role clips) in the restaurant from the Mock snapshot: cooks
working (cluster at congested grill), servers at pass + walking, customers seated, busser, host.
Healthy vs kitchen recorded. Verified: 35 skeletons+AnimationPlayers run at 475 draw calls /541k
prims /291MB VRAM. Honest gaps archived (iteration-03/): sit hip crease, props child-offset not
bone-attached, no clip blending, kitchen-vs-FOH-via-motion + at-overview storytelling deferred to
loops 7-10, 11.8k-tri chars need LOD. Perf: RenderingServer counters (GPU-measured-time returned
0 in offscreen context; flagged). Operational-storytelling & deformation self-scored 3 (< 4 bar).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Loops 1-3 checkpoint report (Incomplete checkpoint / Continue animation phase) + the 10 anim
standards/handoff docs. Honest: 3 of min 10 loops (target 12 NOT complete); rig pipeline PROVEN;
deformation ceiling documented (shoulders/hips/wrists need ~8-14 h manual weight paint); perf via
RenderingServer counters (GPU-measured-time unavailable offscreen, flagged); human test/merge/
backend/M1 NOT authorized.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@HSpector1

Copy link
Copy Markdown
Owner Author

🔬 Foundation Decision Spike — result (clearly-labeled spike evidence; not Loop 4)

Bounded procedural-vs-Quaternius-vs-hybrid comparison, on branch spike/v0-foundation-comparison (from this PR's head 07b633a). PR #8 not modified/merged. No Loop 4. No manual weight-painting performed.

Decision: Adopt HYBRID deformation foundation (Quaternius CC0 rig + custom restaurant identity)
Verdict:  Conditional-Pass
Action:   Authorize Loop 4 on the hybrid base — CANCEL the proposed 8–14 h procedural weight-paint

(Does not authorize the remaining loops, human testing, merging, backend, or M1.)

Decisive evidence — identical scene, same motions

Sit Walk
sit walk

A (procedural, white) creases at the hips (sit = stiff crouch) and walks segment-y. B (Quaternius, yellow) — a 65-joint pro rig with 43 CC0 clips (Idle/Walk/Sitting/PickUp_Table/Push) — sits and walks with clean natural deformation. A fails the advance rule (hip deformation 2/5, overall 3/5); B/C pass (overall deformation 5/5).

Why hybrid, not B-as-is

Recolor + apron/toque overlays work (), so restaurant identity is feasible — but currently crude, not yet credible (props are offset boxes; needs conformed clothing/hair + bone-attached props). That customization is Loop 4.

Labor finding (the point of the spike)

  • Procedural (A) → pass: 15–25 h manual repair, still segment-y.
  • Hybrid (C) → pass: ~10–18 h, clean deformation and custom identity.
    → The 8–14 h procedural weight-paint should not be funded; the CC0 foundation is cheaper and better.

License / hygiene

Quaternius UAL = CC0 (re-verified at source: commercial + modification + redistribution). Raw mesh kept git-ignored; only renders committed; the customized derivative gets committed in Loop 4.

Full analysis + scoring table + all renders: foundation-spike/FOUNDATION-DECISION.md on spike/v0-foundation-comparison.

Art PM decision requested: confirm Candidate C (hybrid) as the foundation and cancel the procedural manual pass; Loop 4 then builds the customized character on the UAL rig. Keep #8 open/unmerged; human test deferred.

claude added 3 commits July 30, 2026 19:11
Loop 4 (of min 10; target 12 NOT complete). Adopt Candidate C: Quaternius UAL CC0 rig (65 bones,
43 clips, clean pro deformation) + CUSTOM restaurant identity. build_hybrid.py imports UAL, recolors
to skin, adds tapered top/coat + sleeves + apron + per-leg trousers SKINNED to the armature (deform
with the rig) + hair/toque + eyes bone-parented to head; Server+Cook x body/skin variants. Verified:
4 hybrid GLBs skin=1/65 joints/43 clips/weighted clothing; sits/walks/reaches with clean deformation
(trousers bend at knees); distinct customized roles (NOT untouched Quaternius); runtime in the
restaurant plays. GATE MET (deformation 4.5, Godot 5, repro 4, style 4, license 5; no critical joint
<3) = PASS-WITH-NOTES. Style AT the bar: faces minimal, midriff/sleeve polish, ~15.5k tris need LOD.
Procedural base marked SUPERSEDED (retained for evidence). NOT auto-continuing to Loop 5.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…idence, perf)

Close the Loop-4 deliverables/evidence I had missed vs the authorization (honest gap-fill,
not back-dated): standardized prop sockets via BoneAttachment3D on hand_r (tray tracks the hand
-> carry reads; prop grip re-scored 3.5 APPROXIMATE, was unsubstantiated 4); Blender neutral +
skeleton-dots + weight-visualization renders (thigh_l weights show clean smooth UAL falloff);
carry comparison; REAL perf counters via windowed capture (4 rigs = 362 draw calls / 187k prims /
289 MB VRAM; the earlier headless probe returned 0). No gate score drops below threshold; Loop-4
deliverables + evidence now complete. Loops 5-12 remain (min 10 / target 12).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Loop 5 of the animation-led visual correction (min 10 / target 12).

- customer role in build_hybrid.py: casual silhouette (jacket/collar, full-leg
  trousers, face with nose/mouth/brows, hair/cap), deterministic V1-V6 population
  (body x skin x hair x palette x face x trouser), animated LOD1 (8,655 tris)
- authored clips via sample-base-pose -> hold-all-bones -> overlay-deltas
  (Blender-5 slotted-action safe): ServeCarry (cupped tray), CookHold (fist grips
  tool handle), seated Eat / Impatient / SeekAttention on the clean UAL sit base
- mini_service scripted healthy-service scene (enter->sit->eat->seek->leave, no
  AI/nav); mini_perf windowed real-geometry perf; prop_socket tray/tool; review
  pop/twoup modes
- full iteration-05 archive: hypothesis, 2 rounds independent critique, honest
  scores, decision, completion, validator, 18 evidence PNGs, perf-lod.csv

Verdict: Conditional-Pass. Sitting/LOD/deformation/pipeline/variation pass >=4;
prop-interaction 3.5, action-readability 3.5, style-compat 3.5 below bar (reported
honestly, not inflated). Raw Quaternius mesh stays git-ignored; only derivatives
committed. No PR merged; backend/M0/M1 untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@HSpector1 HSpector1 changed the title Draft: V0 Animation Correction — Loops 1–3 Checkpoint (do not merge) Draft: V0 Animation Correction — Loops 1–5 (do not merge) Jul 30, 2026
claude added 2 commits July 31, 2026 12:43
Targeted remediation of the three sub-bar Loop-5 gates (follow-up to 89aed1f).

- Garment (style): replace the flat floating chest panel with a body-hugging
  t-shirt -> tapered torso extended to the trouser waist, rounded shoulder caps +
  short SKINNED sleeves, collar. Applied to server/cook/all customers.
- Server tray (prop): lower the serve forearm to a natural carry height; tray now
  rests LEVEL on the supporting hand (prop_socket rx=-20) instead of clipping the
  wrist. Cook keeps the closed-fist grip wrapped around a tool handle.
- Continuous carry (prop): new WalkCarry clip (legs walk, right arm pinned in the
  carry pose) so the tray stays gripped through a walk cycle; carry_rec recorder.
- Eating (action readability): socket a fork + visible food morsel to the eating
  hand, raised to the mouth -> eating reads unambiguously.

Independent adversarial re-review: prop interaction 3.5->4.3, action readability
3.5->4.2, style compatibility 3.5->4.4 -- ALL THREE now >= bar. No regression in
sitting (feet flat, grounded), deformation (clean weights), LOD (LOD1 matches
LOD0, 27.6% scene tri reduction), Godot reliability, or reproducibility.

Evidence: reports/visual/v0-animation-correction/iteration-05/remediation/
(REMEDIATION.md, before/after prop+garment, tray-carry.mp4 + filmstrip, eating
with prop, regression sit/LOD/weights). No PR merged; backend/M0/M1 untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Loop 6 of the animation-led visual correction (6 of min 10 / target 12).

Adds host + busser roles on the accepted hybrid foundation, their animation
language, physical table-state props, and an integrated scripted host/table-turn
scene with healthy vs overload scenarios + presentation/readability HUD layers.

- host: white shirt + navy vest + tie + clipboard; clips CheckList/Greet/
  GestureDining/Apologetic. busser: green shirt + charcoal utility apron + rolled
  cuffs + two-handed bus tub; clips TubHold/TubCarry/Wipe (author_pinned_walk bake).
- props: clipboard, bus tub (loaded), cleaning cloth, table dish/setting sets.
- scenes: host_turnover (CorrectedRestaurant + table states + host/busser/queue/
  calm-kitchen, --scenario/--hud/--cam), table_states (5-state lineup + greyscale);
  review reel/family/bodyline modes; mini_perf loop6 cast.
- full iteration-06 archive: hypothesis, 4 independent reviews, scores, decision,
  lineups, reels, sequences, state lineup + greyscale, prop closeups, 4 overview
  recordings, perf counters, validator, regression checklist, loop5-vs-loop6.

Verdict: FAIL. Foundation is sound (characters/clips build; NO regression in Loop 5
work; pipeline 4.5, Godot 4.5, deformation 4.0; perf honest). But the primary gate
— entrance/table-turn state reading at the default overview WITHOUT the HUD — is not
met: the table carries no state that survives zoom-out or greyscale, host/busser are
prop-dependent, and 6 categories fall below the critical-3 floor. Scores not inflated.
Action: targeted remediation. Loop 7 NOT begun. No PR merged; backend/M0/M1 untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@HSpector1 HSpector1 changed the title Draft: V0 Animation Correction — Loops 1–5 (do not merge) Draft: V0 Animation Correction — Loops 1–6 (do not merge) Jul 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants