Paper · Website · Explain your game · Test yourself
BinProp uses language models to discover reusable chess and Go concepts and explain engine moves.
Figure 1. Black to move in Carlsen–Anand (2019). Stockfish recommends c4; Anand played d4. Our method (BinProp) explains the difference using general chess concepts.
This repo includes discovery and inference code, plus the paper's 192 chess motifs and 250 Go motifs.
Python 3.10+, on Linux or macOS:
python -m venv .venv
. .venv/bin/activate
python -m pip install .
python examples/explain_chess.pyThe example compares Stockfish's 30.Rf4 with Carlsen's 30.Rdf1 in
Carlsen-Firouzja (2021) using Opus 5 motifs. No engine or API key is needed.
For Go, run python examples/explain_go.py.
Supply positive and negative continuations in the comparison format:
binary-properties infer \
--library chess/claude-opus-5 \
--positions comparison.json \
--output explanation.jsonThis returns up to three motifs, their descriptions and fit scores. It does not
calculate continuations. To save an example input, run
python examples/explain_chess.py --write-comparison comparison.json.
Use a paper library or your own basis.json with --library.
binary-properties libraries lists all chess and Go libraries.
Supply a winning/losing position pool, separate from evaluation positions:
export NEBIUS_API_KEY='your-token-factory-key'
export MOTIF_MODEL='your-token-factory-model-id'
binary-properties discover \
--game chess \
--positions discovery.jsonl \
--output runs/chess \
--iterations 100Use --game go for Go. Accepted motifs go in basis.json; proposal results go
in iterations.jsonl. See provider options and resuming.
Discovery sends board examples and code to the provider and makes paid API calls. Run generated code in an isolated environment without secrets or network access; the code checks are not a security sandbox.
Run Direct and BinProp. Data collection, formats and selection and scoring are documented separately.
@misc{press2026explaining,
title = {{Explaining Chess and Go in Natural Language}},
author = {Ori Press and Alexander Golubev},
year = {2026},
eprint = {2610.23166},
archivePrefix = {arXiv},
primaryClass = {cs.CL},
url = {https://arxiv.org/abs/2610.23166}
}MIT.