How matthewpdingle/gtopen works
GTOpen is a local no-limit hold’em solver with a browser UI. Users can build and solve multiway preflop scenarios, carry a heads-up flop into postflop setup, build and solve a postflop tree, then browse strategy and EV or generate cross-flop reports. The Rust server exposes the local application, while the solver crate contains the preflop model, postflop engine, and inspection logic. The README documents saved sessions and player models. Some connections below rely on README workflow descriptions; unsampled implementations are represented at their enclosing directory.
Main entry points: main.rs HTTP API · app.js App workflow · mod.rs Preflop engine · cfr.rs CFR solver
Components 17
Browser interface
- App workflow
web/js/app.js - Preflop lab
web/js/preflop_lab.js - Strategy browser
web/js/browse.js - Reports UI
web/js/reports.js
Local server
- HTTP API
crates/server/src/main.rs - Session saves
crates/solver/src/save.rs
Preflop solving
- Preflop engine
crates/solver/src/preflop/mod.rs - Preflop equity
crates/solver/src/preflop/equity.rs - Multiway model
crates/solver/src/preflop/multiway.rs - Player models
crates/solver/src/preflop/dataset.rs
Postflop solving
- Context models
crates/solver/src/contextual_postflop.rs - Tree builder
crates/solver/src/tree.rs - CFR solver
crates/solver/src/cfr.rs - Strategy inspection
crates/solver/src/query.rs - Hand evaluator
crates/solver/src/evaluator.rs - Report engine
crates/solver/src/report.rs
Other components
- Analyst
Connections 22
- Analyst → App workflow: uses
- App workflow → Preflop lab: opens
web/js/app.js - Preflop lab → HTTP API: submits scenarios
- App workflow → HTTP API: requests solves
- HTTP API → Preflop engine: runs preflop
- Preflop engine → Preflop equity: uses equity
crates/solver/src/preflop/mod.rs - Preflop engine → Multiway model: models multiway
crates/solver/src/preflop/mod.rs - Preflop engine → Player models: loads models
crates/solver/src/preflop/mod.rs - App workflow → Tree builder: builds spot
- HTTP API → Tree builder: builds tree
- Tree builder → CFR solver: defines game
crates/solver/src/cfr.rs - CFR solver → Hand evaluator: evaluates hands
- HTTP API → CFR solver: runs solve
- HTTP API → Context models: applies context
- Strategy browser → HTTP API: requests inspection
- HTTP API → Strategy inspection: queries strategy
- Strategy inspection → CFR solver: reads solution
crates/solver/src/query.rs - App workflow → Strategy browser: shows results
web/js/app.js - App workflow → Reports UI: opens reports
web/js/app.js - Reports UI → HTTP API: requests reports
- HTTP API → Report engine: generates reports
- HTTP API → Session saves: saves sessions