Poker Final Table — High-Stakes Tournament Broadcast (3D)
9 players. $24M up top. Hole cards on screen. The Tell Detector is going off.
Built with:
HTMLJavaScriptthree.js
Prompt
An autonomous 3D poker final table broadcast. Octagonal felt poker table with sponsor strip, octahedral chip rack, dealer at center. 6 ESPN-style backdrops. 240-figure InstancedMesh audience on 5 risers. 3 colored spotlights with flicker. 9 unique low-poly humanoids with names, hats/glasses/hoods/beret distinguishing features, chairs, 3D chip towers, hole-card meshes. Real Texas Hold'em engine: 52-card deck, full 7-card best-5 evaluator, preflop strength heuristic + Monte Carlo equity, AI personalities (TIGHT/TAG/LAG/LOOSE), preflop → flop → turn → river → showdown, blind levels rising. Dramatic moments: flashAllIn, showElimination with prize ladder $1.2M→$24M, showHeadsUp, crownChampion + confetti, BAD BEAT detection, replay chyron after eliminations. HOLE CARDS visible to viewer as HTML overlays anchored to each seat in screen-space, face-down → face-up dynamically, fade on fold. Community board shows 5 cards in CSS. Pot odds + equity: live oPot/oCall/oOdd/oEq updating each decision with animated equity bar. 7 director cameras switching every 3.5-6.5s. PIP with TELL DETECTOR BPM overlay rising during all-ins. Commentators Norman Pebble (white play-by-play) + Lou Brick (gold color), chyron pops in/out. Broadcast UI: logo + LIVE pulse, title, remaining count, ticker (avg/leader/short/blinds/pot/prize-pool), animated chip leaderboard, pot odds box, WHO IS lower thirds. Match flow: 9 → busts → heads-up → champion compressed, then auto-restart with shuffled lineup, fresh stacks, blinds reset.
Paste this into Claude, Cursor, or Copilot. Change one thing that matters to you.
What I learned shipping it
- A Monte Carlo equity simulator running 200 random 5-card boards per decision is enough to drive AI personalities (TIGHT folds at <40% equity, LAG raises at >55%) without a million-line GTO solver — and it FEELS like real poker because the calls/folds match what you'd expect.
- Showing hole cards as HTML overlays positioned with `Vector3.project()` to screen space is the magic move — three.js cards behind the seats look great, but the broadcast staple is `Player A: A♠ K♠ vs Player B: T♥ T♥` in the corner. Hybrid 3D world + 2D HUD wins.
- A `TELL DETECTOR` BPM overlay that spikes during all-ins is pure broadcast theater — not real, but viewers love it. Tying the BPM to `bet/stackBefore` ratio + recent-aggression makes it feel like science.