A chess engine written in Rust from scratch, including the neural network that judges positions and the training code behind it. It uses no external dependencies.
♜♚♜♟♟♟♛♟♝♝♞♟♞♟♟♞♟♟♞♛♟♟♟♟♝♝♟♟♟♜♚♜
Kiwipete test position: 193,690,690 positions at depth 5, counted exactly.Stockfish 19 nodes per move matched, by version
Hand-tuned evaluation1,100
First neural network2,550
Second network3,350
Current engine4,000
Rust, NNUE, UCI
Overview
Caissa has magic-bitboard move generation, alpha-beta search, UCI support and an NNUE evaluation trained in pure Rust, all with zero external dependencies.
Results
Move generation matches perft exactly on six standard positions. The engine searches 3.6M nodes per second on one thread and solves 92.3% of a frozen 10,000-puzzle set at 100k nodes. Changes are accepted through self-play SPRT tests, and every published figure links to a report in the repository.