/WhiteCore

Crafted within weeks, a strong C++ neural network-based chess engine.

Primary LanguageC++GNU General Public License v3.0GPL-3.0

WhiteCore logo

Runpod Logo

Overview

WhiteCore stands as a strong C++ chess engine using efficiently-updatable neural networks for positional evaluation. It's the successor of BlackCore reimagined with focus on originality.

Table of Contents

Getting Started

The following commands can be used to build a native binary for the best performance. You will need clang++ for this.

git clone https://github.com/SzilBalazs/WhiteCore.git
cd WhiteCore
make
./WhiteCore

Usage

WhiteCore in itself is a command line program, and requires a UCI compatible Chess GUI (like Cute Chess or Arena) for the best user experience.

Custom UCI Commands

Command Description
pretty Enables the pretty output option for the console. This improves the readability of the search reports by adding indentation and colors. Can be disabled by sending the "uci" command.
display Displays the current board status.
eval Evaluates and displays the current board state using nnue.
gen Generates self-play games using specific parameters.
split Splits input data into two output datasets in a particular proportion.
quantize Quantizes the neural network weights for performance reasons.
train Trains a neural network with specific parameters.
perft Used for performance testing and validation of the move generator.

Thanks to...

We're grateful to Runpod for their sponsorship of the FindingChess instance. Their donation of hardware is essential for the development of WhiteCore.

OpenBench by Andrew Grant

FindingChess is a fork of the OpenBench framework, a platform that has played an important role in the development process. It allows us to test ideas easily using a distributed computational framework.

License

This project is licensed under GPL-3. For the full license, see LICENSE.