Skip to content

Mythic Masters: animation and graphics hill climb to 9/10, rounds 17+ (from #4045) #4143

Open

Description

@QuinnsCode

Continues the animation and graphics hill climb toward 9/10 from #4045 (round 16, PR #4142), #3840 (rounds 14-15, PRs #3870 and #4043), #3455 (round 13, PR #3839), #3441 (round 12, PR #3452) and #2943 (rounds 6-11; 6-8 merged in #3409). Part of #2802.

Where it stands

3/10: 1.75 after the owner halved every climb (2026-11-05), then +0.25 in round 14, +0.5 in round 15 and +0.5 in round 16. Each round reports half the judge's gain. Agent judges called the same build 5, so they run about 2 points generous: read a judge for before vs after, never for the level. One build also drew 4, 4.5 and 5 from three judges, so use two judges a round (or two fight seeds) to tell a half-point gain from noise.

Round What changed Judge
6 melee strikes reach the other body (the sim lands them 0.5-1 m short; the puppet slides the gap) 4 -> 4.5 merged #3409
7 shadow hides read as dark smoke, not a violet outline; no vinyl gloss 4.5 -> 4.5 merged #3409
8 hit sparks from the chest, not the feet; a warm hit flash; ground marks fade at the rim 4.5 -> 5 merged #3409
9 fainter, quicker hit tint no gain dropped
10 horizon hills pushed into the fog no gain dropped
11 finer fur/scale grain plus a low-frequency mottle no gain: Rougarou and Shuck better, Jersey Devil speckled dropped
12 hide pass per surface: fur strands, clumps and mottle; skin and hide low contrast 4.5 -> 5 and 4 -> 4.5 (two judges) PR #3452
13 bursts cue on a hit landing (frames 0.1 s apart); fur strands along each bone tried and dropped: a per-vertex bone direction shears the noise into a zebra moire where bones meet no judge: tooling, and the fur was plainly worse PR #3839
14 the grey dome was a horizon hill coloured like the stands' concrete; the stadium gets the flat horizon 5 -> 5.5 merged #3870
15 flyers come down to the target's chest to strike (sim DIVE.reach, bot drops before it swings); sim-rs and sim.wasm match 5 -> 6 and 5 -> 6 (two judges; frames at different fight moments, part is timing) PR #4043
16 stands with depth: dark risers and light treads, seats coloured by section, aisles with stairs and handrails, a front rail, ad boards, a dark back wall and roof with floodlights, hanging banners; back rows shaded 5 -> 6 and 4.5 -> 5.5 (two judges) PR #4142

Goal: 9/10, a polished indie 3D game a player would call good-looking and alive.

Next rounds, in order

  1. Framing, in the camera players use. Fighters fill about 15% of the frame. Change the lock camera (lockCamera in src/main.ts), not only the side camera: the side camera exists only for the judge, so moving it alone would raise the score without the game looking any better.
  2. Fur along the limb, per bone segment. Round 13 showed an interpolated per-vertex bone direction can't be sheared into the strand noise: it turns to moire where bones meet (apps/mythic-masters/docs/shots-2026-11-06-anim-r13/fur-dropped-rougarou.jpg). Lay the pattern in each bone segment's own frame and blend across joints by skin weight (src/hide.ts, with the skinIndex and skinWeight attributes).
  3. Hits that land. Both round-16 judges named it next: the hit flash turns a whole body pale, sparks are thin streaks, no recoil or shake on contact (src/fx.ts, the director's hit stop).
  4. Floodlights that light. The roof lamps are bright dots; a fuller stadium (fewer empty seats) and light pools on the pitch would finish the stands.

How to run a round

  • bun scripts/burst-shots.ts <dir> <prefix> in apps/mythic-masters takes the bursts: three fights from the side camera, 4 frames 0.3 s apart, a hit scene cued on a hit landing (4 frames 0.1 s apart), plus three close-ups. Shoot the BEFORE build and the NOW build into one folder with different prefixes.
  • A change to src/sim.ts or src/bot.ts goes into sim-rs/ too, and src/sim.wasm is rebuilt: bun run builder run apps/mythic-masters bun scripts/sim-rust.ts checks 24 fights hash for hash (round 15 piped the built wasm back as base64). It also moves every bot fight, so BEFORE and NOW bursts land at different moments: tell the judges, and read their gain as partly timing.
  • Spawn a fresh judge agent each round with the folder and the two prefixes. Don't anchor it on your reasoning; keep a change only if the judges see a gain.
  • Every foot must still come out as a rig tip (bun run beasts). Imugi stays at budget 3200.
  • One growing PR from main saying "Part of #N", with shots in docs/shots-<date>/. End each round by hopping the climb forward: open a new issue ("rounds N+", this body with the table and list updated) and close this one with "Moved up to #M", so the climb stays at the top of the issues. Seed the new one with a comment starting Score: x/10 (target 9) and ending Next: <gap>. After three rounds with no gain, post Stalled: and stop. At 9, file a MANUAL RUN: for the owner's own score.

Activity

  1. self-assigned this
    on Nov 9, 2026
  2. QuinnsCode commented on Nov 9, 2026

    @QuinnsCode
    OwnerAuthor

    Score: 3/10 (target 9)

    Round 16, PR #4142: the stands now have depth: tiers, seats coloured by section, aisles with stairs and handrails, ad boards, a roof with floodlights, banners, and darker back rows. Two fresh judges scored 5 -> 6 and 4.5 -> 5.5. Halved: +0.5, 2.5 -> 3.

    Next: framing in the lock camera, then hits that land (both judges named the creatures and hit feel as the gap).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions