Draft: V0 Animation Correction — Loops 1–6 (do not merge) - #8
Conversation
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>
🔬 Foundation Decision Spike — result (clearly-labeled spike evidence; not Loop 4)Bounded procedural-vs-Quaternius-vs-hybrid comparison, on branch (Does not authorize the remaining loops, human testing, merging, backend, or M1.) Decisive evidence — identical scene, same motions
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-isRecolor + 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)
License / hygieneQuaternius 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: 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. |
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>
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>


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
.cs/src/tests/M0 touched.Loops
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 4independent 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.