The Range Reader, Part 10: Embeddings That Mirror Poker
No flat vocab table - factored additive embeddings built from poker primitives, and bet sizes fed as floats instead of bucketed tokens
The independent software studio of Elliott Clark. Consulting for teams who need a system made legible again, a few projects of its own, and writing on software, teams, companies, and AI.
No flat vocab table - factored additive embeddings built from poker primitives, and bet sizes fed as floats instead of bucketed tokens
Mask the hidden cards, translate the public betting record into a belief over 1,326 combos, and re-read the range at every street
Machine learning starts with a dataset. Ours is a deliberately rough v0.1 - over 600,000 arena hands, a shove-happy cast of agents, and every hole card labeled.
CFRAgent - budget-driven exploration, regret-based pruning, and board enumeration, wired into the arena
CFR needs a huge self-referential, multi-threaded game tree - the memory-arena design behind CFRState
A small crate for a big idea: regret matching, CFR+, and the discounted and predictive variants - the numeric core every solver shares
Counterfactual regret minimization from zero - how tracking what you wish you'd done converges to unexploitable poker
Inside rs-poker's arena - the game state machine, the Agent trait, historians, side pots, invariant-checked fuzzing, and the tournament that crowned a bot
The perfect-hash hand evaluator - how rs-poker ranks poker hands in less than a nanosecond
Ten years of representing cards, hands, and decks in Rust - from Vec to bitsets, and why representation sets your speed ceiling
There is no open source engine for multiway no-limit hold'em. A 13-part series building one - fast cards, a full-rules arena, CFR, and a GPT that reads your hand
rs-poker v5.0.0 releases with async RL arena, a state-of-the-art CFR agent, and an `rsp` CLI
Welcome, lets discuss what Otter Crew is, and what we're about.