Welcome to the PokerML wiki
The feature-by-feature encyclopedia of PokerML, generated from commit
56ad610. 5 articles.
About PokerML
PokerML is a simulation-driven heads-up and multiplayer no-limit hold'em engine that blends heuristic game-tree search with configurable card and action abstractions to explore poker strategy. The engine is designed for researchers and strategy experimenters who want to inspect and modify poker abstractions, search depth, bet sizing, and range handling rather than a production solver. It implements Counterfactual regret minimization for iterative strategy training, Game state management to track poker hand state, Interactive play and self-play for human and bot gameplay, and Solver optimization to accelerate subgame solving.
From the featured article
Game state management is the subsystem that tracks the state of a poker hand in PokerML, including current position, action history, and folded/all-in status, and exposes methods to apply actions and compute legal moves. It serves as the foundation for action handling, strategy lookup, and decision-making across Counterfactual regret minimization and Solver optimization, and also enables opponent modeling through tracking of historical actions and position.
Did you know...
-
... that web routes in
server/app.py(e.g.,GET /api/game/{sid},POST /api/game/{sid}/action,GET /api/game/{sid}/range,GET /api/exploit/{seat}) manage game state viaGameManager, apply actions to theGameState, and return strategy recommendations by looking up info sets in the compressed strategy dictionary using bucket indices? (Counterfactual regret minimization) -
... that
get_actions()computes legal moves by callingget_legal_actions()fromcfr/action_abstraction.py, which applies the action abstraction (bet sizing, raise caps) and returns tokens like 'k', 'c', 'b50', or 'a'? (Game state management) -
... that the
SelfPlayMonitorclass tracks aggregate statistics across hands including raw profit, duplicate-matched profit, action frequencies by street and position, and flags action frequencies that deviate from GTO target ranges? (Interactive play and self-play) -
... that
preFlopEquities.jsoncontains precomputed win probabilities for all two-card hand matchups, keyed by numeric hand notation with suit suffix ('s' for suited, 'o' for offsuit)? (Legacy card utilities) -
... that
FastStatereplaces immutableGameStatecopies with in-place mutation and an undo stack, using bitmasks forfolded,all_in, andhas_actedinstead of list copies? (Solver optimization)
Recently updated
- Counterfactual regret minimization 24 March 2026
- Game state management 24 March 2026
- Interactive play and self-play 24 March 2026
- Legacy card utilities 24 March 2026
- Solver optimization 24 March 2026
Feature map
flowchart LR n0["Counterfactual regret minimization"] n1["Game state management"] n2["Interactive play and self-play"] n3["Legacy card utilities"] n4["Solver optimization"] n0 --- n1 n0 --- n2 n0 --- n4 n1 --- n2 n1 --- n3 n1 --- n4 n2 --- n4 click n0 "/wiki/pokerml/wiki/counterfactual-regret-minimization/" click n1 "/wiki/pokerml/wiki/game-state-management/" click n2 "/wiki/pokerml/wiki/interactive-play/" click n3 "/wiki/pokerml/wiki/legacy-card-utilities/" click n4 "/wiki/pokerml/wiki/solver-optimization/"
All articles lists every article as text.