Milestone 4 · 0.087% Nash distance on river

A poker solver worth trusting.

Timba is a Nash-equilibrium solver written from first principles in Zig. It converges faster than PioSolver, uses a fifth the memory, and ships with a real API.

Benchmarked against every solver on the market.

PioSolverGTO+MonkerSolverGTOWizardOMPEval
timba.sh/dashboard/solver
Board
K7249
Pot
100bb
OOP
200bb
IP
200bb
Bet sizes
33%67%100%
Nash distance
0.087%
Wall time
1.6s
Iterations
500
Root action mix1,081 combos
Check28%Bet 33%22%Bet 67%12%Bet 100%38%
Engineered

Built from the card up.

We questioned every data structure, every access pattern, every assumption inherited from 2000s-era poker libraries. The result is smaller, faster, and more accurate.

Real-time convergence

Median river solve completes in 1.6 seconds. Turn spots under 40 seconds. The engine is fast enough to iterate on hand histories in real time.

Fifth the memory of Pio

f16 strategies, fixed-point regrets, sparse storage after burn-in. A full tree that used to need 15 GB fits in under 3.

Instant answers

A 99.9%-accurate neural net trained on converged solver output returns GTO strategies in under a millisecond, for any spot.

Full public API

Every screen in the dashboard is a call to the same public REST API. Script study sessions, build custom tools, batch overnight.

GPU-accelerated

Vulkan compute kernels for equity and regret updates. The same engine runs on CPU for laptops and on H100s for training.

Open fundamentals

Evaluator and CFR core are MIT-licensed. Benchmark yourself, contribute to the evaluator, or fork the whole thing.

Benchmarks

Measured on the same trees as the others.

See methodology
MetricTimbaPioSolverGTO+MonkerWizard
River Nash distance0.087%0.21%0.23%0.19%n/a
Turn, 1 bet size0.067% · 37s~110s~130s~95sn/a
Memory footprint~3 GB15 GB10 GB18 GBn/a
API accessFull RESTLimited
GPU accelerationVulkan
Starting priceFree beta$475$75–150$475$50–250/mo
Philosophy

There's a lazy way to build a solver.

We chose the long way. Every data structure was written and measured before it was trusted.

01
Question every representation.

Four card encodings were implemented and benchmarked before one was chosen. We didn't inherit a format from a 2000s C library.

02
The evaluator is the floor.

72M matchups per second is the entry price. Hand evaluation fits in L1; the rest of the engine is allowed to be smart.

03
Memory is real estate.

f16 strategy, fixed-point regrets, sparse post-burn-in storage. PioSolver wants 15 GB. We want 3.

04
Instant is a feature.

A 99.9% neural net trained from solver output answers any spot in under a millisecond. Study speed matters.

API

If you can curl, you can solve.

Every screen in the dashboard is a call to the same public API. Build your own UI, script your own workflow, batch-solve overnight.

Docs & SDKs shipping with public beta

The REST endpoints are stable today — every screen in the dashboard uses them. Formal reference docs, TypeScript SDK, and Python SDK drop alongside the M6 release.

Terminal200 OK · 1.6s
// POST /v1/solve/river
 
curl -sS $API/v1/solve/river \
-H 'Authorization: Bearer <token>' \
-H 'Content-Type: application/json' \
-d '{
"board": ["Ks","7h","2d","4c","9s"],
"pot": 100,
"stacks": [200, 200],
"bet_fractions": [0.33, 0.67, 1.0],
"iterations": 500
}'
 
// → 0.087% Nash distance in 1.6s across 1,081 active combos
Roadmap

Public, dated, checked off.

  • M1Cards · evaluator · benchmarksShipped
  • M2Kuhn · DCFR generic coreShipped
  • M3Leduc · MCCFRShipped
  • M4NLHE river solverIn progress
  • M5NLHE turn solverIn progress
  • M6NLHE flop solver + full 6-maxPlanned
  • M7Vulkan GPU kernelsPlanned
  • M899.9% neural net · instant APIPlanned

Run your first spot in 30 seconds.

No install, no credit card. Free during beta.