Appearance
2026-07-27 — Table V3: the geometry-driven felt is the default
The poker felt's position source is now a geometry engine, not a hand-tuned percentage sheet. BratTableV3 measures the box it's given (ResizeObserver) and solves the table into it: a superellipse frame, seats placed by arc-length so the clear gaps between player cards are equal by construction (and re-solve when the card footprint or player count changes), a dealer with its own top slot on odd counts and none on even (parity — every gap still equal), bet chips a constant distance from each card's edge on the seat→pot ray (two-ray bets), and a crowding policy that shrinks cards to protect a minimum gap, floors at a legibility minimum, then overlaps with tilt + z-order. When it's your turn the actions render as a floating card in the felt's foot band — no bottom bar strip, the table stays fully visible while you decide.
The felt now fills any screen — phone portrait to ultrawide — instead of step-scaling a fixed 2.4:1 box. It holds one preferred wide oval at uniform scale across the normal container range (cross-player appearance consistency beats per-pixel fill), flattening only when the box gets really short and morphing to a centered circle only when really narrow — smooth, no breakpoints.
Retired with the flip: the CompactBratTable fork (?ui=compact, its fixed-slot geometry, and the .ct-* stylesheet block) and the classic percentage <PokerTable> (?ui=classic + its position hooks). ?ui=v2 keeps the previous brat felt as a supported escape. The frontpage live table and the agent-training sandbox render the same V3 component the game uses.
The constants shipping as defaults were tuned by hand in the in-app lab (/dev/table-lab — the real felt + every knob + a Copy config button) and committed verbatim; the public explainer with the interactive geometry lab lives at /notebook/table-geometry on the frontpage.
- Decision: Table V3 — Geometry-Driven Brat Felt
- Plan:
.indusk/planning/table-v3/(ADR + 19-row trajectory) - Registry:
packages/game-ui/FELT-REGISTRY.mdrows 66–70 (the V3 behaviors, each pinned)