Skip to content

kelseyde/hobbes-chess-engine

Repository files navigation

Hobbes

A chess engine written in Rust.

Beta License


A strong chess engine written in Rust, with NNUE evaluation trained from zero knowledge, using self-generated training data.

Hobbes is a rewrite of my Java chess engine, Calvin. Hobbes is also a collaborative effort from the members of mattbench, who have each contributed hardware (and patches) towards turning Hobbes into a strong engine.

Strength

Version Release Date 🎯 Elo CCRL Blitz CCRL Rapid CEGT Rapid
1.0 2026-03-05 3715 3716 (#19) 3572 (#20) -

Search

Hobbes features a classical alpha-beta negamax search with iterative deepening. Other features include aspiration windows, quiescence search, principle variation search, reverse futility pruning, null move pruning, singular extensions, and many more.

Evaluation

Hobbes uses a multilayer, efficiently updated neural network (NNUE) for its evaluation function. The architecture of the network is (768x16hm->1536pw)x2->(16x2->32->1)x8. Other NNUE optimisations that Hobbes employs are sparse matrix multiplication, fused refreshes, Finny tables, and lazy updates.

The network is trained entirely on data generated from self-play. The training data is a (roughly) 80/20 split of standard data and DFRC data. The network was initialised from random values and trained up over many iterations; the full history of past nets is documented here. All of hobbes' networks have been trained using bullet.

Building Hobbes

Official Hobbes binaries can be downloaded from the Releases page.

If you would like to build Hobbes from source, it is first necessary to install Rust.

Then, you need to download Hobbes' latest neural network. The latest network name is recorded in network.txt. Then, execute this command in the root directory (substituting {lastest_net} for the net name):

curl -L -o hobbes.nnue https://github.com/kelseyde/hobbes-networks/releases/download/{latest_net}/{latest_net}.nnue

Then, call cargo build -r. The executable will be created in the target/release directory.

Please note, building Hobbes from source using these steps will create a basic executable with SIMD disabled. If you desire to build an optimised, tournament-ready executable from source, please refer to the Makefile, or else contact me directly.

Acknowledgements

  • Mattia and Jonathan, the authors of Heimdall and Pawnocchio respectively, who both contributed major improvements in the early days of Hobbes.
  • The members of the MattBench OpenBench instance who have contributed hardware towards running Hobbes tests.
  • Jamie, the author of bullet, an incredible tool for training NNUEs among other things, with which I have trained all of Hobbes's neural networks.
  • Other engines, including (in no particular order): Stockfish, Reckless, Integral, Sirius, Stormphrax, Pawnocchio and Simbelmyne.
  • The Stockfish discord community for endless amounts of useful information.
  • Bill Watterson, the author of the comic book which gave this engine its name.

About

A top-20 chess engine, written in Rust.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages