Thrawn is a free UCI compliant chess engine that analyzes positions and outputs optimal moves.
Thrawn does not include a graphical user interface (GUI) that is required to display a chessboard and to make it easy to input moves. These GUIs are developed independently from Thrawn and are available online. Some recommended GUIs include:
- CuteChess: https://github.com/cutechess/cutechess
- Arena GUI: http://www.playwitharena.de/
- Scid vs PC: https://scidvspc.sourceforge.net/
The Rating of Thrawn is evaluated by CCRL
- Thrawn v2.0: ~2800 ELO
- Thrawn v1.1: ~1900 ELO
Version v2.1 and later: supports x64 and ARM chips. Can compile for linux, macos, or windows.
Older verions: only supports x64 and windows compilation.
Ensure you have a gcc compiler version 7.3 or later.
Run these commands:
git clone https://github.com/feftywacky/Thrawn.git
cd Thrawn
cd src
make # or mingw32-make
To clean the build:
make clean # or mingw32-make clean
Compiling Thrawn v1.1 and older:
git clone https://github.com/feftywacky/Thrawn.git
cd Thrawn
cd src
g++ -std=c++17 -Ofast -flto -o Thrawn *.cpp
- Thrawn v2.0 and newer uses NNUE
- Thrawn v1.1 uses handcrafted evaluation
- LOTS of general code clean up
- transposition table bug?
- hash move ordering giving worst results bug
- fixed zero evaluation bug
- nnue incremental update
- train own nnue
- opening book table
- NNUE for evaluation
- Various search optimizations
- Bitboard data structure
- Transposition tables
- Time allocation/Control
- Implements UCI protocol
- no-hashmove reduction
- reverse futility pruning / static null move pruning
- late move pruning
- fifty-move rule + three-fold repetition detection
- NNUE evaluation
- hash move ordering
- razoring pruning
- transposition table / zobrist hashing
- null move pruning
- late move reduction
- iterative deepening (also adjusting aspiration window)
- principal variation search
- move history (quiet and killer)
- quiescence search
- negamax alpha beta search
- piece table evaluation
- uci compliant
- passes perft test! <3
- https://www.chessprogramming.org/Main_Page
- https://github.com/bluefeversoft/vice
- https://github.com/official-stockfish/Stockfish
- https://github.com/mkd/gargantua
- https://hxim.github.io/Stockfish-Evaluation-Guide/
- nnue probe framework: https://github.com/dshawul/nnue-probe
- nnue dataset https://tests.stockfishchess.org/nns