Skip to content

Repository files navigation

Hobbes

A chess engine written in Rust.

Download Hobbes | Report a Bug

release License

Overview

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

Hobbes started off as a rewrite of my Java chess engine, Calvin, although it has now surpassed Calvin by quite some distance. It is also my first project in the Rust programming language.

Strength

Version Release Date 🎯 Elo CCRL Blitz CCRL Rapid CCRL FRC CEGT Rapid Chess324 Top 15 Ipman R9 List SPCC
3.0 2026-07-22 3750 3748 (#9) 3608 (#8-9) 4058 (#8) - 3768 (#8) 3554 (#11) 3727 (#13)
2.1 2026-05-26 3725 3729 (#12) 3585 (#13-15) 4046 (#9) - 3723 (#11) 3527 (#13)
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 ((768x16+60144)hm->768)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

Stars

15 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages