PokerML
Updated Mar 2026
- Python
- FastAPI
- phevaluator
- CFR+
code wiki ยท 5 features ยท 85 cited claims
33 commits, Oct 2024 โ Mar 2026 ยท solo
Python ยท JavaScript
this is a heads-up no-limit hold'em solver built on CFR+ and external sampling monte carlo. it trains over a card and bet-size abstraction, then serves the converged strategy through a fastapi web app where you can play against the bot and see its 13x13 range grid in real time.
what i built
- CFR+ trainer with external sampling MCCFR, immutable game states, and per-iteration bucket caching for speed
- card abstraction: heads-up, all 169 preflop hands keep a bucket of their own; flop and turn hands are clustered by earth mover's distance over where their strength can go, and river hands by OCHS, strength against clusters of opponent hands
- action abstraction with 75%, 100% and 175% pot preflop, up to five geometric sizes postflop from a small blocking bet to an overbet, fold/check/call, all-in, and a 4-raise-per-street cap
- fastapi server with session management, bot inference, and a 13x13 range grid API for the frontend
what's next
- expand action abstraction with more bet sizings and raise depths