No folder selected — select the folder of .rgn files
Chrome or Edge required. Select the output folder from the corpus generator. All .rgn files are read-only.
Book depth (plies)12 plies
How many half-moves to record per game. Ply 12 = 6 full moves. Beyond ply 10–12 positions become sparse with 50K games; increase minimum N or reduce depth if the book is too thin at the tail.
Minimum sample Npositions with fewer games are excluded from the book
Analysis progress
Files processed
0
of —
Rate / ETA
—
ETA —
Positions / Book
—
book: —
Enumerating files…
Results
Games parsed
—
— errors
Book positions
—
of — total
Unique 1st moves
—
seen for White at ply 1
Game visits per ply — White / Black
White’s first moves — top 12 by frequency — ✓ = book selection
Move
N
W
D
B
EV%
Book
Export
The JSON file maps Zobrist hash keys to best-move entries. Embed in raumschach.html as: const OPENING_BOOK = new Map(Object.entries(BOOK_DATA.book));
How it works: Each .rgn file is replayed move-by-move through the Raumfischer board engine using the same Zobrist hash tables as raumschach.html. At each half-move (up to the configured depth), the position hash and move played are recorded along with the game result. After all games are processed, the book selects the move with the highest Wilson-bound expected value (90% CI lower bound for White; upper bound for Black) among moves meeting the minimum N threshold.
Recommended settings for 50K games: book depth 12–14 plies, minimum N = 20–40. Solid coverage is typically found through ply 8–10; the tail thins quickly beyond that. Reduce minimum N with caution — noisy low-sample entries degrade book quality.
₿ Support this project:bc1qa7g966z9nkclvlq5l5femv90wzaqyudxrwh7uqBitcoin donations gratefully received