I'm a bit late to posting this - I made the GitHub release for this engine almost a month ago
Axiom is a new chess engine that I've been working on with a couple of my friends and colleagues. It's a UCI alpha-beta NNUE (and HCE) engine written in C++ that we estimate to be playing around 2950-3100 Elo on the CCRL 2+1 blitz scale (unofficial, testing details below). Using HCE, it plays around 2850-2950 Elo on the same scale. At the time of this post, we're already deep into v2 development, with a new network already trained from scratch on self-play data, outperforming 1.0 by ~200 Elo, along with more search improvements.
Source and Downloads
Currently, we have binaries for Windows, Linux, and M-series Macs. We have popcount and non-popcount builds for Windows.
Source (GitHub)
Binaries & Networks
Testing Details
We ran a small round robin with engines with CCRL 2+1 blitz ratings from 2700-3100. Here are our results:
Code: Select all
# PLAYER : RATING ERROR POINTS PLAYED (%)
1 Admete 1.8.0 : 3129.9 50.7 233.0 301 77.4%
2 Axiom : 3118.7 59.1 229.0 301 76.1%
3 Asymptote 0.8 : 3020.0 ---- 192.0 300 64.0%
4 Axiom-HCE : 2854.0 53.1 123.0 299 41.1%
5 Lux 5.0 : 2851.6 48.2 125.5 307 40.9%
6 Boychesser 1.0 : 2741.4 50.6 80.5 302 26.7%
7 Blunder 8.5.5 : 2719.4 50.9 72.0 300 24.0%
White advantage = 10.93 +/- 9.48
Draw rate (equal opponents) = 30.21 % +/- 1.82
Acknowledgments
- Chess Programming Wiki - an invaluable reference that guided much of our development.
- Ethereal - a great source of inspiration, both in strength and in code clarity.
- Bullet - the NNUE trainer we used to train our networks; intuitive and easy to work with.
- OpenBench - the SPRT testing framework we rely on for all our testing.
- Incbin - used to embed our networks directly into our binaries.
- CodeMonkeyKing's YouTube series - a great starting point for learning chess engine implementation.