Chess Engine
A high-performance UCI chess engine featuring NNUE evaluation, multi-threaded search, and modern pruning techniques.
Built with modern techniques and optimized for performance
HalfKP neural network architecture with incremental updates for blazing-fast evaluation.
Magic bitboards, SIMD optimizations, and lock-free data structures for maximum speed.
Multi-threaded search that scales efficiently across all your CPU cores.
Works with any UCI chess GUI including Arena, CuteChess, and En Croissant.
LMR, null move, futility, SEE, and history pruning for efficient search.
Support for Polyglot opening books for strong and varied openings.
Simple UCI commands to get started. Connect to any chess GUI or control directly via command line.
Get the latest release and extract to your preferred location.
Add as a new engine in CuteChess, Arena, or any UCI GUI.
Start a game and watch Porcupine find the best moves.
$ ./porcupine
> uci
id name Porcupine
id author Anonymous
option name Hash type spin default 16 min 1 max 16384
option name Threads type spin default 1 min 1 max 512
uciok
> position startpos moves e2e4 e7e5
> go depth 20
info depth 20 seldepth 28 score cp 35 nodes 2847193
nps 1892462 time 1504 pv g1f3 b8c6 f1b5
bestmove g1f3
Download the latest version or build from source
# Clone the repository
git clone --recursive https://github.com/TheChii/Ferrum.git
cd Porcupine
# Build optimized release
cargo build --release
# Copy NNUE network
cp network.nnue target/release/