Skip to content

Add AUC explainer film; size score decode buffer by duration - #1

Merged
calvin-archastro merged 2 commits into
mainfrom
auc-ml-explainer
Oct 2, 2026
Merged

calvin-archastro merged 2 commits into
mainfrom
auc-ml-explainer

Conversation

@calvin-archastro

Copy link
Copy Markdown
Contributor

What

  1. videos/auc-ml: an intuition-first narrated explainer, AUC in machine learning (11:48, 1080p30, 22 chapters).
    • It follows one six-payment example through thresholds, ROC, the pairs/ranking view, AP, and the PR conventions. It then surveys partial AUC, multiclass AUC, and other curves called "AUC".
  2. packages/cli/src/music-render.ts: one-line fix. The reverb decode buffer had a fixed 256 MB cap, so any score longer than about 11 minutes failed with Cannot decode <track> for room processing. It is now sized from the score duration.

How the film is built

  • Sentence-synced builds.
    • Each scene is one natural Kokoro take.
    • prepare-timing.mjs and sentence-bounds.mjs find the sentence onsets from the take's own pauses. Each boundary has a plausibility check.
    • Scenes animate on lineStarts(id)(k, offset, fraction), so each diagram step lands on the sentence that explains it.
  • Score. src/score.ts is a quiet 60 BPM bed (piano, viola, cello, harp).
    • It ducks under speech using automation derived from the same timing.
    • The piano figure changes per lesson part.
    • It ends on an A→D cadence onto the end card.
  • Bookends. A title card follows the cold-open hook, and an end card closes the film.
  • Fonts. Schibsted Grotesk, Fragment Mono and Instrument Serif, all with full Latin coverage.
    • Note: videos/showcase/src/fonts/fonts.css labels a Space Grotesk latin-ext file as "latin". That file has no A–Z, so films importing it silently fall back to a system font. This PR does not touch that shared file.

Verification

  • pnpm test passes: 51 tests.
  • CLI and film typecheck pass.
  • biome check is clean on the changed files.
  • python3 videos/auc-ml/verify_math.py passes. It checks every on-screen number with exact fractions (7/9, 29/36, 55/72, McClish ≈ 0.649, and the rest).
  • Four rounds of independent review on the rendered MP4 (visual, math/narrative, audio/music). The final round (r4):
    • Visual: SHIP.
    • Content: SHIP.
    • Mix: SHIP on measurements (−17.1 LUFS, −2.7 dBTP, no dead air except the final fade).
    • Music: SHIP on measurements.
  • Listening is not verified. No human audition or ASR was available. Pronunciation ("A U C", "R O C", "Coco", "twenty-nine over thirty-six") and the music taste still need an ear.
  • The rendered film and review kits are in the ignored out/ folder, so they are not part of this PR. To regenerate: pnpm --dir videos/auc-ml render.

🤖 Generated with Claude Code

calvin-archastro and others added 2 commits October 2, 2026 10:56
videos/auc-ml: an intuition-first narrated explainer of AUC (11:48).
- Title card after the cold-open hook; end card with the takeaway.
- Diagrams build on the sentence that explains them: one natural Kokoro
  take per scene, sentence onsets measured from the take's own pauses
  (prepare-timing.mjs, sentence-bounds.mjs), exposed as lineStarts().
- Original quiet score (src/score.ts) ducked under speech, varied per
  lesson part, resolving A -> D onto the end card.
- Fonts with full Latin coverage (Schibsted Grotesk, Fragment Mono,
  Instrument Serif); the shared showcase Space Grotesk subset lacks A-Z.
- verify_math.py checks every on-screen number with exact fractions.

packages/cli: the reverb decode buffer was capped at 256 MB, so any score
longer than about 11 minutes failed with "Cannot decode <track> for room
processing". Size it from the score duration.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
check:public requires every woff2 to have a license entry. The film reuses
Fragment Mono, Instrument Serif and Schibsted Grotesk files already
inventoried for intern-promo; add the copied paths with matching hashes.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@calvin-archastro
calvin-archastro merged commit 23ffa2d into main Oct 2, 2026
3 checks passed
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.

1 participant