Experion
An NNUE Chess Engine in Crystal github.com/joeyrobert/experion

Experion is my third chess engine, after Cerulean in C and CeruleanJS in JavaScript. It's a UCI engine written in Crystal that evaluates positions with a neural network (NNUE) I trained from scratch, and the training pipeline and match tooling are included in the repository.

Experion beats Fruit 2.1 and Crafty 25.2 in head-to-head matches, the goal I set when I started it. The network is embedded in the binary, and releases ship for Linux, macOS and Windows.

Experion browser player

Play in the Browser

Experion also compiles to WebAssembly. On the play page each side of the board can be a human or an engine, so you can play Experion yourself, watch it play other engines like Fruit and CeruleanJS, or run a small tournament between them.

I wrote about how it was built in Experion: Training an NNUE Chess Engine in Crystal.

Crystal Chess Neural Networks WebAssembly