fairy-stockfish/Fairy-Stockfish

chess variant engine supporting Xiangqi, Shogi, Janggi, Makruk, S-Chess, Crazyhouse, Bughouse, and many more

What it solves

Fairy-Stockfish provides a high-strength game engine for a vast array of chess variants, regional games (like Xiangqi and Shogi), and other board games. It solves the problem of lacking powerful, unified engines for non-standard chess, allowing users to play against a strong AI or analyze games with custom rules.

How it works

Derived from the Stockfish engine, it combines Stockfish's powerful search algorithms with a flexible architecture that supports multiple game rules. It uses NNUE (Efficiently Updatable Neural Networks) evaluation parameter files to improve playing strength across various variants. The engine is compatible with several industry-standard protocols (UCI, UCCI, USI, etc.) to work with various graphical user interfaces.

Who it’s for

  • Board game enthusiasts who want to play against a strong opponent in regional or historical chess variants.
  • Developers who need a performant library for move generation and game-end checking via Python and JavaScript bindings.
  • Game designers who want to test user-defined variants using configuration files.

Highlights

  • Massive Variant Support: Supports dozens of regional games, historical variants, and modern chess variants.
  • Customizable: Allows for user-defined variants via configuration files.
  • High Strength: Maintains a very high level of playing strength across most supported games.
  • Extensible: Includes bindings for Python and JavaScript for use as a library.
  • Multi-Protocol: Compatible with a wide range of GUIs through support for UCI, UCCI, USI, UCI-cyclone, and CECP/XBoard.

Related

  • Project
  • Project
  • Project
  • Project
  • Project