Four real run cycles, rolled one-call-one-row through a new _runroll.py

The old run frames were generated one at a time and it showed: 91/110/92/98 px
of body-width drift, duplicated poses drawn differently, no racket. Each
character (player m/f 6 frames, opponent m/f 8) now comes from ONE 4K call
anchored on a composed identity reference of its settled frames — the broken
run art stayed out of the reference on purpose. Stride-gated, cut with _fine,
judged by eye per roll. drawChar probes run8/run6/run4/run2.

Side effect: the male opponent's old run art faced LEFT against the
art-faces-RIGHT convention — he had been moonwalking right since install.
Fixed by drawing the new rows to the convention.

Pipeline lessons recorded in PROJECT.md (the model negotiates the count; a
back view has no direction; the racket clause goes early and loud).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
wuwiandClaude Fable 5 committed 2026-08-13 18:17:16 +02:00
1 parent de77ccfea5
commit 99a87115b3
36 files changed
+242 -12

No files matched your search

+27
View File
@@ -1805,6 +1805,33 @@ The gates, and the numbers they were calibrated on:
**SUPERSEDED 2026-08-12 — see the next section.** Those 31 frames were not art: `--verify` found
27 of them dead. The brute is now live (`ZFAMS` has `'br'`, the KEEPER wears it) off ONE sheet.
## THE RUN CYCLES — one call, one row, one character (2026-08-13)
The p_run/o_run frames were generated ONE AT A TIME in the pre-pipeline era and it showed: the male
player's four frames measured 91/110/92/98 px wide, frames 1/3 and 2/4 were near-duplicates drawn
differently, and the racket was missing outright. Oliver: *"really awkward... I think we need more
frames to sell this as good running"* — the frame COUNT was never the fault, the drift was.
`assets/_runroll.py` re-rolled all four characters (player m/f, opponent m/f) on the family-pipeline
discipline: identity from a composed reference of SETTLED frames (`_pose_ref_run_<k>.png`, tracked,
no API — the broken run frames stay OUT of it), poses from skeleton language in the prompt, one 4K
21:9 call per character, `_fine.py` cut, stride gate, judged by eye per roll. What it added to the
pipeline's knowledge:
- **The model negotiates the COUNT.** Asked for 8 it returned 7, then 6, then 8 — and the row it
draws at its own count is the coherent one. The cutter accepts 6..8 and `drawChar` probes
run8/run6/run4/run2, so a good 6 beats a fought-for 8. State the count you can SEE with `--n`
when the figures touch (a low racket bridges every blob gap).
- **A run cycle is the one pose set whose generator cliché is RIGHT.** No pose reference needed —
pin only the frame count, the facing, the racket ("a figure with an empty hand is WRONG", early
and loud, after roll 1 dropped the racket from six figures of seven).
- **A back view has no direction.** Roll 1's "seen from behind, sprinting right" came back running
straight away up-court. The working language: back THREE-QUARTER view, body angled toward the
right, "NOT a straight-away back view: he moves ACROSS the frame".
- **The old male opponent art faced LEFT and had been MOONWALKING right since install** (char art
faces RIGHT by convention — the gameplay.js note at the swing aim). The new rows are all drawn
facing right, which quietly fixed it.
## THE ZOMBIE FAMILY PIPELINE — one sheet, one character, 31 sprites (2026-08-12)
**This replaces the nine-batch flow above for a whole opponent family.** `_regen.py` still exists and