SkillAgentSearch skills...

CrazyAra

A Deep Learning UCI-Chess Variant Engine written in C++ & Python :parrot:

Install / Use

/learn @QueensGambit/CrazyAra

README

<div id="crazyara-logo" align="center"> <br/> <img src="./etc/media/crazyara_logo_medium.png" alt="CrazyAra Logo" width="512"/> <h3>A Deep Learning Chess Variant Engine</h3> </div> <div id="badges" align="center">

Build Status Variants Status License: GPL v3   Codacy Badge ICAPS Badge Journal Badge Thesis Badge ArXiv Badge2 ArXiv Badge

</div>

Contents

<img align="right" src="etc/media/TU_logo.png" width="128">

Description

CrazyAra is an open-source neural network chess variant engine, initially developed in pure python by Johannes Czech, Moritz Willig and Alena Beyer in 2018. It started as a semester project at the TU Darmstadt with the goal to train a neural network to play the chess variant crazyhouse via supervised learning on human data. The project was part of the course "Deep Learning: Architectures & Methods" held by Kristian Kersting, Johannes Fürnkranz et al. in summer 2018.

The development was continued and the engine ported to C++ by Johannes Czech. In the course of a master thesis supervised by Karl Stelzner and Kristian Kersting, the engine learned crazyhouse in a reinforcement learning setting and was trained on other chess variants including chess960, King of the Hill and Three-Check.

The project is mainly inspired by the techniques described in the Alpha-(Go)-Zero papers by David Silver, Thomas Hubert, Julian Schrittwieser, Ioannis Antonoglou, Matthew Lai, Arthur Guez, Marc Lanctot, Laurent Sifre, Dharshan Kumaran, Thore Graepel, Timothy Lillicrap, Karen Simonyan, Demis Hassabis.

The training scripts, preprocessing and neural network definition source files are written in python and located at DeepCrazyhouse/src. There are two version of the search engine available: The initial version is written in python and located at DeepCrazyhouse/src/domain/agent. The newer version is written in C++ and located at engine/src.

CrazyAra is an UCI chess engine and requires a GUI (e.g. Cute Chess, XBoard, WinBoard) for convinient usage.

Links

Download

Binaries

We provide binary releases for the following plattforms:

Operating System | Backend | Compatible with --- | --- | --- Linux | CUDA 11.3, cuDNN 8.2.1, TensorRT-8.0.1 | NVIDIA GPUs Linux | MXNet 1.8.0, Intel oneAPI MKL 2021.2.0 | Intel CPUs Windows | CUDA 11.3, cuDNN 8.2.1, TensorRT-8.0.1 | NVIDIA GPUs Windows | MXNet 1.8.0, Intel oneAPI MKL 2021.2.0 | Intel CPUs Mac | MXNet 1.8.0, Intel oneAPI MKL 2021.2.0 | Mac-Books

The current CrazyAra release and all its previous versions can also be found at releases.

Models

The extracted model should be placed in the directory reltative to the engine executable. The default directory is indicated and can be changed by adjusting the UCI-parameter Model_Directory.

More information about the different models can be found in the wiki.

Artworks

CrazyAra_Hanna_Czech_2023 Drawn by Hanna Czech (2023).

Kristian_and_CrazyAra_2022 Generated with custom stable diffusion model of professor Kristian Kersting.

Variants

Binaries and models are available for the following chess variants:

Documentation

For more details about the initial python version visit the wiki pages:

Compilation

Ins

View on GitHub
GitHub Stars285
CategoryEducation
Updated7d ago
Forks45

Languages

Jupyter Notebook

Security Score

100/100

Audited on Mar 25, 2026

No findings