Asymmetric setups: methodology
Author of the methodology: Roman Morozov. About the author
CC BY 4.0 Methodology and data: CC BY 4.0 — free to use with attribution to the author.
Pair space
A pair (w, b) means White starts from Scharnagl setup w and Black from setup b, 0–959 each. The mirror image of a pair (mirror(w), mirror(b)) is the same position, so only the canonical pair is evaluated; the twin is listed with it. Symmetric pairs (w = b) are the ordinary Chess960 starts covered by the Morozov Balance Index. Here they serve as the control: they run through the same stages, but they are not ranked as asymmetric pairs.
Stages and thresholds
Stage 0 screens every pair with a small budget. A pair advances to stage k+1 only if |cp| at stage k is within the stage's limit — windows tighten with depth because shallow evaluations are noisy (±30 cp) and deep ones are not. The last regular stage is 128M nodes; beyond it the best verified pairs are deepened from 400M nodes (the Morozov Balance Index budget) by doubling indefinitely, using up to a quarter of the compute while screening continues. The traversal order of stage 0 is a fixed seeded shuffle (20260918). Windows are calibrated against a built-in control: symmetric pairs (w = b) are also rated by the Morozov Balance Index at 400M nodes, and a stage's window must keep at least 95% of the positions that are even at that depth. Shallow searches overstate White's edge, so the stage-0 window is wider than the noise alone would suggest. Waves are served depth-first: the deepest stage with pending candidates goes first, and within a stage the most even candidates go first, so verified pairs appear while screening is still running.
S0: 100 000 / ≤ 50; S1: 500 000 / ≤ 40; S2: 2 000 000 / ≤ 41; S3: 8 000 000 / ≤ 32; S4: 32 000 000 / ≤ 30; S5: 128 000 000 / ≤ 35
Reproduce
Same Stockfish build (sha256 in the passport), Threads=1, hash fixed per stage, node limit, ucinewgame per position, last completed iteration. Commands:
python tools/asym/asym_search.py --status
python tools/asym/asym_search.py --run --workers 10
python tools/asym/asym_dataset.py
Limitations
- An engine evaluation is a claim about best play, not about human practice; asymmetric pairs have no self-play validation yet.
- Shallow stages are noisy: a pair screened out at 100k nodes with |cp| just above the window may be balanced in truth. The windows are deliberately wide early on.
- The search is ongoing: counts, ranks and stages on these pages change as it deepens; the generation timestamp is printed on the hub.
Morozov R. Asymmetric Chess960 balance rating. ch960.com/asym, 2026. CC BY 4.0.