A strong chess engine featuring a shallow neural network for evaluation, 100% trained on game results.
- Bitboards with Real-time Bit Scan (No Magic Lookup)
- Phased Move Generation
- Principal Variation Search
- Iterative Deepening
- Alpha-Beta Pruning
- Aspiration Windows
- Quiescence Search
- MVV-LVA Sorting
- Static Exchange Evaluation (SEE)
- History Heuristic
- Killer Heuristic
- Counter Move Heuristic
- Follow-up Move Heuristic
- Null Move Pruning with Verification
- Late Move Reductions
- Zobrist Hashing
- Depth-Preferred Transposition Table with Aging
- Partially-Quantized Neural Network
- Rust Nightly - Install from rustup.rs. Required for portable SIMD support.
Switch to Rust Nightly:
rustup install nightly
rustup default nightly
# Or set nightly only for this project:
rustup override set nightly-
Compile for native target and features:
# Linux/macOS export RUSTFLAGS="-C target-cpu=native" # PowerShell $env:RUSTFLAGS="-C target-cpu=native" # CMD set RUSTFLAGS=-C target-cpu=native cargo build --release
-
Run the engine:
./target/release/shallow_guess
Pre-compiled binaries for limited CPU architectures/features are available on the Releases page.
Since version 1.0, SIMD optimizations using Rust's portable SIMD have been added to support mainstream CPU instruction sets. The build system automatically detects and uses the optimal features available on your CPU.
Refer to TrainingGuide.md.
The param_test utility evaluates engine parameters against EPD test suites.
cargo run --bin param_test [epd_file] [search_time_secs] [repeat_count]The zobrist_key_gen utility generates optimal hash tables by testing multiple random seeds to minimize collisions.
cargo run --bin zobrist_key_gen [fen_file_path] [output_path] [max_seeds_count]pgn-extract was used to extract training positions from PGN files.
Training positions used in both pre-training and fine-tuning were generated from historical 40/15 and 2+1 games obtained from the CCRL website.
Training positions used in pre-training were generated from games obtained from this database.
Validation set was generated from TCEC tournament games.
The pseudo-random number generator implements the Chacha20 algorithm created by Daniel J. Bernstein.

