CrazyAra - The neural crazyhouse chess engine
CrazyAra at Lichess - Follow CrazyAra on lichess.org. View past games or join live events.
Technical documentation - Click here for technical details and an in-depth explanation of the techniques behind CrazyAra.
Source code - CrazyAra is free software! The source code is hosted on Github.
CrazyAra started as a semester project for the course "Deep Learning: Methods and Architectures" at the Technical University Darmstadt lead by Prof. Kersting and Prof. Fürnkranz. CrazyAra was developed by Johannes Czech, Moritz Willig and Alena Beyer. Our initial goal was to create a medium strength chess engine for the chess variant crazyhouse. If a piece get taken by a player it changes color and is placed into the players pocket. Instead of making a regular move, the player can then choose to 'drop' any of the pieces in his pocket back onto the field.
Rules of crazyhouseA brief introduction into crazyhouse can be found at lichess.org.
- The rules of regular chess apply.
- The pieces can get placed onto any unoccupied square, even if this gives check or results in a checkmate.
- Pawns that have been promoted and are again captured will be dropped back to the board as regular pawns.
- To prevent immediate promotion, pawn drops are not allowed on the first and eight rank.
A significantly lower number of games is drawn in crazyhouse compared to 'regular' chess.
Intuitive play-styleAs already observed from the Google Alpha Zero chess engines, CrazyAra features a play-style described by players as more intuitive. Previous chess engines made decision based on searching through large numbers of possible moves and selecting the best move found during a predefined period of time (see for example alpha-beta engines such as Stockfish). This play-style deployed by other engines often values pieces over board positions. These engines therefore often hesitate to sacrifice pieces even if a better board position could be achieved. In contrast to the existing engines, CrazyAra searches through a much smaller number of possible moves. For selecting these, a neural network is used to predict the most promising moves for any given board position. As the board evaluation is learned by the network, CrazyAra often values a better board position over the value of individual pieces on the board. The games played therefore tend to be more dynamic and feature a play-style with more initiative from the engine.
We took the results of Google Alpha Zero as an inspiration for our project. A convolutional network was trained in on a dataset of 500.000 games played by humans. The goal of the network was to predict the most likely move played by the human, also called the policy, and the final outcome of the game given the current board position, called the value.
During the game the predictions of the neural network are used in a monte carlo tree search (MCTS) which evaluates possible lines in order to find the best move.
Media coverageCrazyAra was featured on several news papers, local television and online events. We put together a list of newspaper articles and other related links that feature our chess engine. We received overwhelming interest from the lichess.org community, where we hosted the engine several times. We would like to thank anyone who participated and gave feedback during the live matches on the platform!
We would also like to give a special thanks to the well known crazyhouse player and streamer Justin Tan (also known as JannLee) who agreed to challenge CrazyAra in a five-games series during one of his streams.
You can view a complete transcription of the match together with JanLees post game annotations at lichess.org. A short summary of CrazyAras different stages of development and an analysis of the five matches against JanLee can be found at okei's blog.