Since you’re here...

We hope you will consider supporting us today. We need your support to continue to exist, because good entries are more and more work time. Every reader contribution, however big or small, is so valuable. Support "Chess Engines Diary" even a small amount– and it only takes a minute. Thank you.
============================== My email: jotes@go2.pl



Hobbes 2.0 - new chess engine

 


Hobbes, 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.

Author: Dan Kelsey

Hobbes 2.0 what's new?

Hobbes 2.0 is here!
The main change since 1.0 is the introduction of a multilayer neural network, along with several net-related features and optimisations. In search, it's a grab-bag of small improvements, the highlights being 'mini-probcut' TT pruning, low-depth singular extensions, and reducing the RFP margin if the opponent is worsening.
Progress tests against 1.0 indicate a strength improvement of around 50 elo:
Elo   | 50.23 +- 6.20 (95%)
Conf  | 40.0+0.40s Threads=1 Hash=64MB
Games | N: 3002 W: 925 L: 494 D: 1583
Penta | [3, 180, 714, 591, 13]
https://openbench.nocturn9x.space/test/6978/
What's Changed
A curated selection of pull requests; for a comprehensive list, consult the changelog: 1.0...2.0
⚖️ Evaluation
Multilayer neural network (#316)
Increase L1 size to 1536 (#346)
Sparse matrix multiplication (#344)
Re-permute net for sparsity (#370)
Merged king planes (#364)
🔍 Search
SF-style probcut TT pruning ('mini-probcut') (#319)
Low-depth singular extensions (#330)
Low-depth singular double extensions (#359)
Adjust RFP margin if opponent is worsening (#366)
Only TT cutoff if (tt_score < alpha || cutnode) (#358)
Don't instantly prune in LMP (#310)
Fractional NMP (#311)
Fix insufficient material detection (#313)
Use improvement in LMP (#315)
Allow LMR extensions (#324)
Tweak s_beta formula (#333)
Move singular extensions outside move loop (#337)
Use singular move score in LMR (#338)
Reduce LMR depth in cut nodes (#342)
Add a bunch of LMR fail-yellows + SPSA tune (#354)
Add more terms to mini probcut + 80k SPSA tune (#363)
SPSA 80k LTC (#329)
Acknowledgements
As always, I am extremely grateful to the community of engine developers for sharing their knowledge and expertise, without which Hobbes would still be languishing in the dark ages. For Hobbes 2.0 I especially am thankful to @JonathanHallstrom for guiding me through the multilayer NNUE journey. And finally, a big thanks to engine testers for testing the stuff we write, and keeping the leaderboards up to date.

Hobbes 2.0 download


Comments