Skip to content

Releases: chalkstreamdev/bgdb-opening-book

Opening book v1.0 — gnubg 1.08.003

Choose a tag to compare

@chalkstreamdev chalkstreamdev released this 25 Aug 07:14

Opening book v1.0 — gnubg 1.08.003

A score-aware opening book for backgammon: precomputed 3-ply GNU Backgammon evaluations for the first rolls of the game, across every match score up to 25 points plus money play. Every decision stores its top 8 candidate moves with equities and win/gammon/backgammon distributions; every cube decision stores the full double/take verdict.

This release contains 4,230,443 evaluated positions across 351 score contexts. Every entry was computed with gnubg 1.08.003 and is reproducible with the generator in this repository.

What it covers

Depth follows the away-score, not the match length:

  • Both players 9-away or closer (every score of a ≤9-point match, and the endgame of every longer one, plus Crawford and post-Crawford): the first three rolls — the 15 opening rolls, every legal reply, and pruned third rolls (see below). Cube decisions are evaluated before every roll and positions with good double/takes are also followed.
  • 10- to 15-away: the opening, the first cube decision and every legal reply. Good double/takes are followed into the second roll.
  • 16- to 25-away: the 15 opening rolls.
  • Money, with and without Jacoby, at full depth.

Pruning: Rolls 1–2 are exhaustive over all legal plays. At roll 3, the tree is followed for correct and "good" moves, defined as within 0.04 equity of the best move. At most the top 4 candidate moves are followed for each position.

Followed cubes:

  • The centered (no-double) line is followed unconditionally. A position reached by not doubling is in the book even where not doubling was a blunder. A play after a missed double is fully answered.
  • The doubled line is followed where the double-take was best or good — doubling within 0.04 of correct and taking within 0.04 of passing. A clearly bad double leaves the book at once (as does a double whose correct answer is a clear pass — the game ends, so there is nothing to serve).
  • Redoubles were evaluated and stored but all 6,537 read no-double, and none is close — the nearest live redouble would cost 0.58.

The full tree rules are in book-format.md.

Validation

  • Structural gate: 351/351 files clean — 0 duplicate keys, complete 21-roll taken-cube fans with verified parents, 0 move-notation violations over 30,830,604 stored plays.
  • Reproducibility, live-agreement, and seat-symmetry spot checks green across the book (spot_check.py, gnubg 1.08.003).
  • Opening plays match the published consensus; validated against the rollout equities in eXtreme Gammon's public opening-book download (86.2% agreement on comparable money decisions, mean deviation 0.0007; 38 accepted divergences documented with reasons in corpus/xg-accepted.json).

Files

  • book-gnubg-1.08.003-depth{1,2,3}-<context>.jsonl.gz — one gzipped JSONL checkpoint per score context (the format is book-format.md).
  • manifest.json — per-context grind provenance; build_book.py verifies reassembly against it.
  • book-gnubg-1.08.003.sqlite.gz — the assembled serving SQLite (1.72 GB raw), buildable from the JSONL with build_book.py.
  • SHA256SUMS — checksums for every asset above.

License and attribution

The book data is CC-BY-4.0: BackgammonDB opening book, ground with GNU Backgammon (gnubg.org) — https://backgammondb.com. The generator code in this repository is GPL-3.0.

Per-context inventory

context depth entries band cap ground file
10a10a 2 3,865 — — 2026-08-06 book-gnubg-1.08.003-depth2-10a10a.jsonl.gz
10a1a 2 10,208 — — 2026-08-06 book-gnubg-1.08.003-depth2-10a1a.jsonl.gz
10a1ac 2 7,380 — — 2026-08-06 book-gnubg-1.08.003-depth2-10a1ac.jsonl.gz
10a2a 2 8,906 — — 2026-08-06 book-gnubg-1.08.003-depth2-10a2a.jsonl.gz
10a3a 2 10,061 — — 2026-08-06 book-gnubg-1.08.003-depth2-10a3a.jsonl.gz
10a4a 2 7,982 — — 2026-08-06 book-gnubg-1.08.003-depth2-10a4a.jsonl.gz
10a5a 2 8,108 — — 2026-08-06 book-gnubg-1.08.003-depth2-10a5a.jsonl.gz
10a6a 2 7,835 — — 2026-08-06 book-gnubg-1.08.003-depth2-10a6a.jsonl.gz
10a7a 2 7,751 — — 2026-08-06 book-gnubg-1.08.003-depth2-10a7a.jsonl.gz
10a8a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-10a8a.jsonl.gz
10a9a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-10a9a.jsonl.gz
11a10a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-11a10a.jsonl.gz
11a11a 2 3,865 — — 2026-08-06 book-gnubg-1.08.003-depth2-11a11a.jsonl.gz
11a1a 2 8,906 — — 2026-08-06 book-gnubg-1.08.003-depth2-11a1a.jsonl.gz
11a1ac 2 7,380 — — 2026-08-06 book-gnubg-1.08.003-depth2-11a1ac.jsonl.gz
11a2a 2 8,549 — — 2026-08-06 book-gnubg-1.08.003-depth2-11a2a.jsonl.gz
11a3a 2 11,237 — — 2026-08-06 book-gnubg-1.08.003-depth2-11a3a.jsonl.gz
11a4a 2 8,087 — — 2026-08-06 book-gnubg-1.08.003-depth2-11a4a.jsonl.gz
11a5a 2 8,276 — — 2026-08-06 book-gnubg-1.08.003-depth2-11a5a.jsonl.gz
11a6a 2 7,856 — — 2026-08-06 book-gnubg-1.08.003-depth2-11a6a.jsonl.gz
11a7a 2 7,835 — — 2026-08-06 book-gnubg-1.08.003-depth2-11a7a.jsonl.gz
11a8a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-11a8a.jsonl.gz
11a9a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-11a9a.jsonl.gz
12a10a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-12a10a.jsonl.gz
12a11a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-12a11a.jsonl.gz
12a12a 2 3,865 — — 2026-08-06 book-gnubg-1.08.003-depth2-12a12a.jsonl.gz
12a1a 2 10,418 — — 2026-08-06 book-gnubg-1.08.003-depth2-12a1a.jsonl.gz
12a1ac 2 7,380 — — 2026-08-06 book-gnubg-1.08.003-depth2-12a1ac.jsonl.gz
12a2a 2 9,074 — — 2026-08-06 book-gnubg-1.08.003-depth2-12a2a.jsonl.gz
12a3a 2 11,132 — — 2026-08-06 book-gnubg-1.08.003-depth2-12a3a.jsonl.gz
12a4a 2 8,171 — — 2026-08-06 book-gnubg-1.08.003-depth2-12a4a.jsonl.gz
12a5a 2 8,507 — — 2026-08-06 book-gnubg-1.08.003-depth2-12a5a.jsonl.gz
12a6a 2 7,982 — — 2026-08-06 book-gnubg-1.08.003-depth2-12a6a.jsonl.gz
12a7a 2 7,919 — — 2026-08-06 book-gnubg-1.08.003-depth2-12a7a.jsonl.gz
12a8a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-12a8a.jsonl.gz
12a9a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-12a9a.jsonl.gz
13a10a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-13a10a.jsonl.gz
13a11a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-13a11a.jsonl.gz
13a12a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-13a12a.jsonl.gz
13a13a 2 3,865 — — 2026-08-06 book-gnubg-1.08.003-depth2-13a13a.jsonl.gz
13a1a 2 9,032 — — 2026-08-06 book-gnubg-1.08.003-depth2-13a1a.jsonl.gz
13a1ac 2 7,380 — — 2026-08-06 book-gnubg-1.08.003-depth2-13a1ac.jsonl.gz
13a2a 2 8,843 — — 2026-08-06 book-gnubg-1.08.003-depth2-13a2a.jsonl.gz
13a3a 2 11,342 — — 2026-08-06 book-gnubg-1.08.003-depth2-13a3a.jsonl.gz
13a4a 2 8,213 — — 2026-08-06 book-gnubg-1.08.003-depth2-13a4a.jsonl.gz
13a5a 2 8,948 — — 2026-08-06 book-gnubg-1.08.003-depth2-13a5a.jsonl.gz
13a6a 2 8,003 — — 2026-08-06 book-gnubg-1.08.003-depth2-13a6a.jsonl.gz
13a7a 2 7,982 — — 2026-08-06 book-gnubg-1.08.003-depth2-13a7a.jsonl.gz
13a8a 2 7,772 — — 2026-08-06 book-gnubg-1.08.003-depth2-13a8a.jsonl.gz
13a9a 2 7,751 — — 2026-08-06 book-gnubg-1.08.003-depth2-13a9a.jsonl.gz
14a10a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-14a10a.jsonl.gz
14a11a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-14a11a.jsonl.gz
14a12a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-14a12a.jsonl.gz
14a13a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-14a13a.jsonl.gz
14a14a 2 3,865 — — 2026-08-06 book-gnubg-1.08.003-depth2-14a14a.jsonl.gz
14a1a 2 10,628 — — 2026-08-06 book-gnubg-1.08.003-depth2-14a1a.jsonl.gz
14a1ac 2 7,380 — — 2026-08-06 book-gnubg-1.08.003-depth2-14a1ac.jsonl.gz
14a2a 2 9,368 — — 2026-08-06 book-gnubg-1.08.003-depth2-14a2a.jsonl.gz
14a3a 2 11,342 — — 2026-08-06 book-gnubg-1.08.003-depth2-14a3a.jsonl.gz
14a4a 2 8,528 — — 2026-08-06 book-gnubg-1.08.003-depth2-14a4a.jsonl.gz
14a5a 2 9,284 — — 2026-08-06 book-gnubg-1.08.003-depth2-14a5a.jsonl.gz
14a6a 2 8,108 — — 2026-08-06 book-gnubg-1.08.003-depth2-14a6a.jsonl.gz
14a7a 2 8,087 — — 2026-08-06 book-gnubg-1.08.003-depth2-14a7a.jsonl.gz
14a8a 2 7,856 — — 2026-08-06 book-gnubg-1.08.003-depth2-14a8a.jsonl.gz
14a9a 2 7,835 — — 2026-08-06 book-gnubg-1.08.003-depth2-14a9a.jsonl.gz
15a10a 2 7,751 — — 2026-08-06 book-gnubg-1.08.003-depth2-15a10a.jsonl.gz
15a11a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-15a11a.jsonl.gz
15a12a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-15a12a.jsonl.gz
15a13a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-15a13a.jsonl.gz
15a14a 2 7,730 — — 2026-08-06 book-gnubg-1.08.003-depth2-15a14a.jsonl.gz
15a15a 2 3,865 — — 2026-08-06 book-gnubg-1.08.003-depth2-15a15a.jsonl.gz
15a1a 2 9,242 — — 2026-08-06 book-gnubg-1.08.003-depth2-15a1a.jsonl.gz
15a1ac 2 7,380 — — 20...
Read more