Features Download Documentation GitHub
Built with Rust Successor of Ferrum

Porcupine

Chess Engine

A high-performance UCI chess engine featuring NNUE evaluation, multi-threaded search, and modern pruning techniques.

3400
Est. Elo
NNUE
Evaluation
SMP
Multi-thread
UCI
Compatible

Powerful Features

Built with modern techniques and optimized for performance

NNUE Evaluation

HalfKP neural network architecture with incremental updates for blazing-fast evaluation.

Lightning Fast

Magic bitboards, SIMD optimizations, and lock-free data structures for maximum speed.

Lazy SMP

Multi-threaded search that scales efficiently across all your CPU cores.

UCI Compatible

Works with any UCI chess GUI including Arena, CuteChess, and En Croissant.

Advanced Pruning

LMR, null move, futility, SEE, and history pruning for efficient search.

Opening Book

Support for Polyglot opening books for strong and varied openings.

Easy to Use

Simple UCI commands to get started. Connect to any chess GUI or control directly via command line.

1

Download & Extract

Get the latest release and extract to your preferred location.

2

Load in Chess GUI

Add as a new engine in CuteChess, Arena, or any UCI GUI.

3

Play!

Start a game and watch Porcupine find the best moves.

Terminal
$ ./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

Get Porcupine

Download the latest version or build from source

Pre-built Binary

Ready-to-run executables for Windows, macOS, and Linux.

Download Latest

Build from Source

Clone the repository and compile with Cargo.

View on GitHub
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/