Wasabi Chess runs as a Web App in the browser and is also available as a standalone UCI chess engine.
The Web App embeds the engine using Web Workers to compute the AI moves in the background without blocking the main thread for the UI.
- Chess engine implemented in AssemblyScript
- Computer opponent with 6 difficulty levels
- Opening Database for varied gameplay
- Move history to undo player moves
- Drag'n'Drop support to move chess pieces
- Touch support for mobile devices
Wasabi Chess can be downloaded from the Releases page as a standalone UCI Engine.
The engine was tested with cutechess-cli and PyChess on Linux and Arena on Windows, but should also work with other UCI compatible clients.
Please note that the UCI engine currently has the following limitations:
- no support for pondering during opponent turns
- no multi-threading support
- ongoing searches cannot be cancelled
In order to run the engine outside a Browser environment, a WebAssembly Runtime like for example WAVM or Wasmer is required. The assets on the Releases page already bundle the very fast WAVM runtime.
- AssemblyScript - for the engine
- as-pect - to test the engine
- react - for the user interface
- react-dnd - for Drag and Drop support
- styled-components - to style React components in JS
- react-fontawesome - to add font icons
- workerize-loader - to load modules as Web Workers
This project is licensed under the GNU General Public License - see the LICENSE for details.
- Images for the chess pieces come from Wikimedia Commons
- The opening book was generated from a selection of chess games from the FICS Games Database