PokerAlpha — one-page overview
An end-to-end research platform for decision-making under hidden information, built independently by Cody Chen: a custom Hold’em engine, game-theoretic solvers, a 74.2× C++ training backend, an exact-game validation suite, a calibrated uncertainty layer, and a local analysis product.
What was built (all implemented in this project)
- Game engine — full HU/6-max Hold’em rules: side pots, min-raise reopening, all-in semantics; property-fuzzed and exhaustively checked on reduced variants.
- Solvers — CFR, CFR+, external-sampling MCCFR on a generic extensive-form Game interface (also runs Kuhn, Leduc, and a non-poker auction game).
- Native backend — the complete training hot path in C++17/pybind11; bit-exact against Python on a shared random tape.
- Validation system — nine-rung ladder from exact Kuhn equilibria to an honest restricted-LBR exploitability floor.
- Confidence system — per-state accept/low/reject gate calibrated on 8,880 exact EV-regret targets; the product refuses rather than guess.
- Analysis engine — weighted ranges, Monte-Carlo rollouts with paired uncertainty, session review with strict regret semantics, counterfactual and sensitivity analysis, reproducibility receipts.
- Product — local FastAPI engine, Next.js web app, standalone Electron desktop app with the engine bundled inside (unsigned local build).
Hardest problems
- Keeping a 74×-faster C++ training backend provably the same algorithm — down to disabling FMA contraction after the parity suite caught a last-ulp divergence.
- Discovering that policy movement does NOT predict strategy error, and rebuilding the confidence gate around signals that do (visits, cross-seed disagreement).
- Honest regret semantics: rollout EVs share common random numbers, so uncertainty must be the paired-difference SE; off-menu bet sizes are re-evaluated exactly rather than nearest-matched.
Headline numbers (traceable on /evidence)
Architecture in one line
state → validation → modelled ranges → abstraction lookup → confidence gate → solver | rollout | refuse → decision report (+ receipt)
Research contribution
The project’s central result is a calibrated abstention layer for solver output: confidence signals scored against exact EV-regret ground truth from solvable games, including the negative finding that checkpoint movement is not a trust signal. Supporting studies: measured abstraction error via exact subgames, multi-seed policy-vs-value disagreement analysis, adversarial failure search, and an opponent-adaptation study showing stationary Bayesian models fail under regime change.
Stack
Implemented here: engine, solvers, abstraction, ranges, gate, rollouts, replay, receipts, dataset tooling, benchmark harnesses. Foundational tools: Python, NumPy, C++17, pybind11, CMake, FastAPI, Next.js/React, Electron, Streamlit, pytest, GitHub Actions.
90-second tour Research Lab Source
PokerAlpha is an independent research and engineering project by Cody Chen. The Hold’em strategy is experimental — an abstract MCCFR strategy, measurably exploitable, never claimed to be GTO.