SF-PG-300925 A Stockfish-Derived Engine with Native Polyglot Book Support
Executive summary
SF-PG-300925 is a fresh derivative of the Stockfish chess engine that integrates native support for Polyglot (.bin
) opening books while preserving the tactical strength, NNUE evaluation, and UCI compatibility of its upstream base. Distributed under GPLv3, the project documents a clear UCI identity (id name SF-PG-300925
) and positions itself for practical use in GUIs like Fritz and CuteChess. Its repository highlights the authorship triad—Stockfish developers (upstream), Jorge Ruiz, and Codex ChatGPT—and provides a familiar Stockfish-style build flow for Linux, macOS, and Windows. (GitHub)
What is SF-PG-300925?
SF-PG-300925 is a UCI chess engine that tracks closely to upstream Stockfish while adding first-class Polyglot opening-book reading. In practice, that means you can pair the engine with one or more .bin
books (prepared in the widely used Polyglot format) to steer opening choices without surrendering the mid- and endgame strength for which Stockfish derivatives are renowned. The project’s README explicitly names the engine and UCI identifier, clarifies licensing, and mirrors the build instructions Stockfish users will recognise. (GitHub)
Why Polyglot support matters
Polyglot (originally written by Fabien Letouzey) introduced the de-facto .bin
book format used across engines and GUIs for deterministic opening guidance and reproducible testing. Integrating Polyglot reading within the engine—rather than delegating it to the GUI—enables:
- Consistent book behaviour across GUIs (Fritz, CuteChess, Arena, etc.).
- Reproducible experiments, since book selection and weights sit in engine space.
- Fine-grained opening curation via external tools that build and tune
.bin
books. (Chessprogramming)
Community discussions over the years have explored multiple Stockfish + Polyglot paths (e.g., Brainfish lineage, community patches), underscoring stable demand for this capability. SF-PG-300925 fits into that continuum with a contemporary, GPL-compliant integration. (GitHub)
Key characteristics
1) Stockfish-grade search, time management, and NNUE
The engine inherits Stockfish’s modern alpha–beta/PVS search, pruning and reductions (LMR, null-move, aspiration), and NNUE evaluation pipeline—best-in-class on CPUs. Upstream’s documentation and blog provide the broader technical context and evolution of NNUE inside Stockfish. (GitHub)
2) Native Polyglot (.bin
) opening books
- Reads Polyglot
.bin
files directly, enabling opening control without relying on the GUI’s book. - Portable across platforms; the book lives beside the engine binary or at a user-specified path.
(Refer to the project README for the SF-PG-specific options and UCI naming; details may evolve with commits.) (GitHub)
3) Clean UCI identity and distribution
- UCI banner:
id name SF-PG-300925
for easy recognition in GUIs and tournament shells. - Binaries named
SF-PG-300925
(Unix-like) /SF-PG-300925.exe
(Windows) for clarity in multi-engine setups. (GitHub)
4) Open-source licensing (GPLv3)
- Full GPLv3 source distribution with attributions to Stockfish developers.
- Changes remain copyleft, ensuring long-term transparency and reproducibility. (GitHub)
Installation and build
Prerequisites
- A C++ toolchain (GCC/Clang on Linux/macOS; MSYS2/MinGW-w64 or Visual Studio toolchain on Windows).
- Make (for the classic Stockfish build flow) or CMake if provided in future updates.
Typical build (Unix-like)
git clone https://github.com/jordiqui/StockfishPolyglota.git
cd StockfishPolyglota/src
make -j profile-build
For CPU-specific targets (e.g., AVX2), consult make help
and set ARCH=...
accordingly:
make -j profile-build ARCH=x86-64-avx2
This mirrors the upstream Stockfish guidance. (official-stockfish.github.io)
Windows notes
On Windows, you can use MSYS2/MinGW-w64 to follow the same make
flow from the src
directory, or use the vendor toolchain where applicable. The upstream documentation remains a solid reference for compiler flags and architecture targets. (official-stockfish.github.io)
Getting started in your favourite GUI
Fritz 20 (ChessBase)
- Place
SF-PG-300925.exe
in a folder of your choice. - Engines → Create UCI Engine → Browse and select the executable.
- Confirm that the UCI banner shows
id name SF-PG-300925
. - If your build uses an NNUE network file external to the binary, ensure it’s reachable next to the executable or at the expected path. (This mirrors Stockfish practices.) (GitHub)
CuteChess (for testing and SPRT/gauntlets)
- Engines → Manage → Add, point to the engine binary, and set the working directory.
- Confirm the UCI name appears correctly.
- For book-steered tests, supply your Polyglot
.bin
via the engine’s options (or command-line wrappers, if provided). CuteChess itself can run without a GUI book if the engine handles books internally. (GitHub)
Using Polyglot books with SF-PG-300925
What is a Polyglot .bin
book?
A compact opening-book format that maps positions (Zobrist keys) to weighted moves. It’s widely supported, easy to generate, and ideal for deterministic testing or preference steering. (Chessprogramming)
Typical workflow
- Acquire or build a
.bin
book (from your curated PGNs or a trusted source). - Place the book file alongside the engine or in a directory you control.
- Enable Polyglot use in SF-PG-300925 via its UCI options (see the repository README for the exact option names and semantics).
- Test determinism: run a short self-play or gauntlet to verify the book is being consulted in the opening phase (e.g., fixed depth/time to isolate book use). (GitHub)
Tip: Keep GUI books off during testing when you want only the engine’s Polyglot logic to shape openings; this isolates variables for cleaner experiments. (This distinction between engine-internal and GUI-supplied books is a standard testing practice.) (Chessprogramming)
Performance and testing considerations
- NNUE & hash/page settings: As with Stockfish, large pages and adequate hash can yield tangible speedups. Ensure your OS configuration allows large pages to reduce TLB pressure in hash lookups. (official-stockfish.github.io)
- SPRT & gauntlets: If you evaluate changes or book strategies, rely on Fishtest-style rigor (SPRT thresholds, long self-play) or your own CuteChess/FastChess pipelines. Stockfish’s public docs explain the philosophy and mechanics of distributed testing. (official-stockfish.github.io)
- Determinism: When comparing book variants, pin time controls, fix hash sizes, disable pondering, and standardise concurrency to prevent noise creeping into the opening tree comparisons.
Licensing, credits, and provenance
- License: GPLv3. You may redistribute, modify, and sell the engine under GPL terms, provided you publish the full, corresponding source for any distributed binary. (GitHub)
- Authorship: Upstream Stockfish developers; SF-PG-300925 adaptation and maintenance by Jorge Ruiz with Codex ChatGPT assistance; explicit acknowledgements in the repository (AUTHORS and headers). (GitHub)
- Community & references: The project links to Stockfish documentation, Discord, and Fishtest for learning, participation, and further optimisation. (GitHub)
Frequently asked questions (FAQ)
Is SF-PG-300925 a GUI?
No. It’s a UCI engine. Use it via a GUI such as Fritz, CuteChess, Arena, or Banksia. (This mirrors Stockfish’s distribution model.) (GitHub)
Where do I find build instructions?
Inside the repository, follow the familiar make
workflow from src/
. For deeper platform notes, consult the official Stockfish documentation. (GitHub)
How do I enable .bin
books?
Place the book file where the engine can access it and set the appropriate UCI option(s) described in the README. Keep the GUI book disabled if you want only the engine’s internal Polyglot logic to apply. (GitHub)
Does SF-PG-300925 change search or evaluation compared with Stockfish?
Its defining enhancement is integrated Polyglot support. Search/eval behaviour otherwise tracks Stockfish; consult the repo and commit history for any additional divergences as they appear. (GitHub)
Is NNUE required?
Like modern Stockfish, SF-PG-300925 uses NNUE evaluation. Ensure the embedded or external network is available according to your build. (Stockfish)
Good practices for competitive use
- Standardise test envelopes: Fix TC, threads, hash, and opening suites when producing Elo comparisons.
- Document book versions: Record the exact
.bin
file (hash/date) used; Polyglot books evolve and can materially affect opening diversity and score. - Use large pages where possible: Enable them at the OS level for consistent nps improvements. (official-stockfish.github.io)
- Benchmark changes incrementally: Treat Polyglot tweaks like code patches—use SPRT or long gauntlets before declaring gains. (official-stockfish.github.io)
Conclusion
SF-PG-300925 offers a pragmatic Stockfish derivative: it keeps the engine modern and fast while embedding Polyglot opening-book capability for repeatable training, testing, and play. For users who prefer book logic inside the engine—whether for GUI-agnostic reproducibility or fine-tuned opening control—SF-PG-300925 is a clean, GPL-compliant path that fits seamlessly into existing Stockfish workflows.
Repository: jordiqui/StockfishPolyglota — explore the README, authorship, license, and build targets, and follow updates as Polyglot integration and documentation evolve. (GitHub)
References
- Project repository and README for SF-PG-300925 (UCI id, GPLv3, build flow). (GitHub)
- Stockfish official documentation (compilation; ecosystem). (official-stockfish.github.io)
- Polyglot background and
.bin
format (ChessProgramming wiki). (Chessprogramming) - Fishtest documentation and infrastructure (testing methodology). (official-stockfish.github.io)

Jorge Ruiz
connoisseur of both chess and anthropology, a combination that reflects his deep intellectual curiosity and passion for understanding both the art of strategic chess books