Docs

Getting started

The essentials: install, run a first solve, read the numbers. The full manual ships with the app (Help → User Guide) — this page is honestly just the on-ramp.

1 · Install

Unzip and run

Prism Solver is a native desktop app with no runtime dependencies — no browser stack, no server, no account. The download contains the app plus the command-line tools (plo_cli, plo_browse, plo_equity). Beta builds currently ship to the beta list (support@prismsolver.com); Windows and Linux installers are on the roadmap.

On first launch the app shows short getting-started cards; you can reopen them any time via Help → Getting Started.

2 · First solve

Spot → Build → Solve

Everything about a solve lives in the Spot panel: players, board, pot and stacks, bet sizes as pot fractions, and one range per seat. A live cost meter shows the betting-tree size and implied memory before you commit. Then:

  • Build constructs the tree and the card abstraction (seconds for postflop spots; cached on disk).
  • Solve starts training. The status bar streams iterations, speed, memory, and the stability metric.
  • Tick solve until stability < 0.01 and the app pauses itself when the strategy has settled, with a Converged readout.

Browse while it trains: click actions and runout cards in the Browser; ranges update live. Pause training to get per-hand EVs with error bars.

3 · Reading the metrics

Four numbers to watch

MetricMeaningWhat to do with it
iterations · it/s Training progress and speed. Postflop spots typically want 10⁷–10⁸ iterations; preflop solves want long runs on a big machine.
infosets (MB) Memory actually in use, ~64 bytes per infoset. Cap it with max_infosets; past the budget, unseen nodes play uniform while existing ones keep training.
bound/pot Sampled regret bound per player. Should trend toward 0. Early values are exploration noise — ignore the absolute number at the start.
stability How much the average strategy still moves between reports. The practical stop signal: below ≈ 0.01, frequencies have largely settled. Judge convergence by this, not by any single node.

4 · Spot files

A solve is a JSON file

The GUI reads and writes the same format the CLI solves, so every spot is scriptable and shareable. A minimal 3-way flop spot:

{
  "players": 3,
  "board": ["Ts", "9s", "3d"],
  "starting_pot": 10,
  "effective_stack": 100,
  "raise_fractions": [0.5, 1.0],
  "ranges": ["uniform", "uniform", "uniform"],
  "buckets": [2000, 2000, 2000],
  "checkpoint": "flop3way.plck"
}

Range syntax, briefly: uniform (every unblocked hand), explicit hands (AsAdJsTd), rank macros (AAKK), wildcards (KKxx), suit tags (:ds, :ss, :r) and weights (AAxx:ds:0.75). NLHE spots use standard hold'em syntax (QQ+, AKs).

With checkpoint set, progress persists and re-running resumes. The spot file plus its checkpoint is a solution pack — send both files and any copy of the app (including the free Viewer) opens the solved strategy for browsing, no training needed.

This page covers the basics only. The complete manual — every spot-file key, tournament models, locking, the range editor, deep links — ships with the app.