A from-scratch alpha-beta UCI chess engine in Rust. Targeting 3500 Elo single-thread / 3650 multi-thread (8 cores) on the dev box, measured against CCRL 40/15. Stretch: 3600 / 3700 if NNUE training overshoots.
Path to target: magic-bitboard movegen → full search arsenal (LMR,
singular extensions, aspiration, futility) → HalfKP NNUE small →
HalfKAv2_hm NNUE full → SPSA tuning + Syzygy + Lazy SMP. Aggressive
sacrificial style available via UCI Style = Aggressive flag
(Neutral default).
Day one: nothing is implemented. The repository ships the operating
contract, project doc, phase ledger, scripts, CI, design spec, and
Phase 1 plan. Engine code lands phase by phase against plans under
docs/superpowers/plans/.
See docs/PHASE_STATUS.md for the verified-delivery ledger and
CLAUDE.md for the current-state table. Per AGENTS.md §1, a
feature counts only when it's both implemented and verified.
# macOS / Linux
scripts/setup.sh
scripts/build.sh # cargo build --release
scripts/test.sh # fmt + clippy + cargo test + perft
# Windows
scripts\win-setup.bat
scripts\win-build.bat
scripts\win-test.batUNVERIFIED until Phase 0 ships.
engine/ Rust library — board, movegen, eval (HCE + NNUE), search, TT, SMP, Syzygy
uci/ Rust binary — UCI protocol shell
bench/ Rust binary — perft, nps, Bratko-Kopec, ordo gauntlet
datagen/ Rust binary — self-play position dumps (binpack format)
tuner/ Rust binary — SPSA tuning loop wrapping cutechess-cli
trainer/ Python — PyTorch NNUE training (separate subproject)
nets/ binary blobs — trained NN weights (git-lfs or gitignored)
data/ binpack files — training corpora (gitignored)
AGENTS.md— agent operating contract (honesty floor).CLAUDE.md— project operating doc (stack, style, current state).docs/CAPABILITIES.md— honest can / cannot.docs/ARCHITECTURE.md— crate DAG + module layout + key interfaces.docs/ROADMAP.md— phases 0..13, exit criteria.docs/PHASE_STATUS.md— verified-delivery ledger.docs/superpowers/specs/2026-05-23-ply-design.md— full design spec.docs/superpowers/plans/— per-phase implementation plans.docs/style/rust.md— Rust style for this project.handoffs/— session-to-session notes.
Apache-2.0. See LICENSE. © 2026 Artin Azizi.