Fight Night Tonight — Boxing PPV Championship (3D Broadcast)
Stroud vs Vaz. 12 rounds. Knockdown count. Buck Mason and Doc Ramirez are LIVE.
Built with:
HTMLJavaScriptthree.js
Prompt
An autonomous 3D boxing pay-per-view broadcast. Square ring with 4 colored corner posts, 3-tier ropes, ringside apron, sponsor banners (procedural canvas-textured), arena truss, InstancedMesh crowd of 240 torsos swaying with excitement. 4 converging spotlights, ambient + directional, 4 colored stage lights pulsing with crowd excitement waveform. Low-poly humanoid fighters with stance, gloves, trunks, removable robe/hood. Animations: jab, hook, uppercut, slip, block, knockdown, getup. 4-fighter roster: Stroud (BK), Vaz (PHL), Volkov (RUS), Sato (JP) with different power/speed stats; pick 2 per match. 6 director cameras: HardCam, RedCorner, BlueCorner, OverheadCam, DollyCam orbital, FaceCam — switch every 4-8s based on excitement. Match flow: pre-show → red walkout → blue walkout → 12 rounds (15s real ≈ 3:00 fight clock) → decision or KO → 12s ceremony → next bout. Knockdowns: big center 10-count, ref count timer, get-up at 8 logic, instant slo-mo replay PIP. UI overlays: pulsing LIVE logo, ROUND/clock, scrolling ticker, 3-judge scorecards, CompuBox punch stats, crowd waveform. Lower-thirds rotating every ~16s: WHO IS, STATS UPDATE, PURSE BREAKDOWN, UPCOMING TONIGHT. PIP: replay slo-mo with scanlines, talking cornerman, crowd cam wide shot. Two announcers (Buck Mason white / Doc Ramirez gold) banter from templated library that adapts to action. Corner advice between rounds. Post-fight winner interview. Auto-restart with reshuffled roster forever.
Paste this into Claude, Cursor, or Copilot. Change one thing that matters to you.
What I learned shipping it
- Tying stage-light intensity and color pulse to a `crowdExcitement` scalar that itself responds to punch landings creates a feedback loop where big moments LOOK big — viewers feel the round shift before the announcer says it.
- 240 crowd InstancedMesh torsos swaying on a sin wave that's modulated by `crowdExcitement` is the cheapest 'arena energy' visual — go from polite golf-clap to roaring frenzy without ever rendering a face.
- A templated commentary library indexed by [phase, fighterAdvantage, scoringTrend, recentEvent] lets two announcers feel like they're calling THIS specific fight from a small dictionary — Buck calls action, Doc analyzes, both branch on a knockdown.