FENRIX is a free, open-source UCI chess engine written in Python and built from scratch. It features a neural network evaluation (NNUE), advanced search techniques, and full compatibility with major chess GUIs.
FENRIX went from ~1100 to ~1800 ELO between its two releases — a gain of +700 points (+63.6%), achieved through a complete overhaul of search, evaluation, and opening preparation.
v1 v2
~1100 ───────► ~1800
ELO
1800 ┤ ██████ Current
1600 ┤ ████████
1400 ┤ ██████████
1200 ┤ ████████
1100 ┤──╯
└──────────────────────────────────────
Baseline +Search +NNUE +Pruning +Book
| Area | v1 | v2 |
|---|---|---|
| ELO | ~1100 | ~1800 (+700) |
| Search | Basic Alpha–Beta | Iterative Deepening + LMR + Null Move Pruning |
| Evaluation | Material only (classical) | NNUE neural network |
| Opening | None | Polyglot book (weighted) |
| Pruning | Minimal | Killer, History, Mate Distance |
| Transposition Table | Basic | 64-bit Zobrist · ~500K entries |
| Time Control | Fixed | Adaptive (depth scales with clock) |
Current rating (v2): ~1800 ELO
| Opponent | ELO | Score |
|---|---|---|
| Stockfish Level 1 | ~1350 | 85% |
| Stockfish Level 3 | ~1650 | >80% |
| Stockfish Level 2 | ~1500 | 72.5% |
Results are indicative. Performance varies by hardware, time control, and test conditions.
- Negamax with Alpha–Beta pruning
- Iterative Deepening
- Null Move Pruning (R=3)
- Late Move Reduction (LMR)
- Killer Move Heuristic
- History Heuristic
- Mate Distance Pruning
- NNUE neural network evaluation
- Positional understanding
- Efficient incremental board representation
- 64-bit Zobrist hashing
- Exact / Lower / Upper bound entries
- Up to ~500,000 entries (configurable)
- Polyglot
.binformat - Weighted move selection
uci isready ucinewgame
position startpos [moves ...] stop / quit
position fen <FEN> [moves ...]
go depth <n> go movetime <ms> go infinite
go wtime <ms> btime <ms> [winc/binc <ms>]
Compatible with Arena, CuteChess, Banksia, and any UCI-compliant GUI.
| Time Available | Typical Depth |
|---|---|
| > 10s | 8 |
| 5–10s | 7 |
| 2–5s | 6 |
| 1–2s | 5 |
| 0.5–1s | 4 |
| < 0.5s | 2–3 |
Download fenrix.exe from the latest release and add it to your GUI.
git clone https://github.com/official-fenrix/fenrix.git
cd fenrix
pip install -r requirements.txt
python uci_engine.py- Open Arena → Engines → Install New Engine
- Select
fenrix.exe· Set protocol to UCI - Click OK — ready to play
Released under the GNU GPL v3 license. See LICENSE for full terms.
Lecheheb Djaafar — Algeria 🇩🇿
github.com/LechehebDjaafar
Built with ♟️ and passion in Algeria 🇩🇿
