███████╗███████╗███╗ ██╗██████╗ ██╗██╗ ██╗
██╔════╝██╔════╝████╗ ██║██╔══██╗██║╚██╗██╔╝
█████╗ █████╗ ██╔██╗ ██║██████╔╝██║ ╚███╔╝
██╔══╝ ██╔══╝ ██║╚██╗██║██╔══██╗██║ ██╔██╗
██║ ███████╗██║ ╚████║██║ ██║██║██╔╝ ██╗
╚═╝ ╚══════╝╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝
High-Performance Chess Engine — Built entirely from scratch in Algeria 🇩🇿
"Trained on billions of positions. Defeated every Stockfish level from 1320 to 3070+.
Built from scratch over 6 months of relentless engineering in Algeria."
⬇️ Download · 🐛 Report Bug · 💬 Discussions
FENRIX is a high-performance UCI chess engine built entirely from scratch in C++.
This is not a port. Not a fork. Not a wrapper.
Every line of code, every weight in the neural network — designed, trained, and engineered by hand.
The engine features a fully custom NNUE neural network, trained from zero using self-play and knowledge distillation against Stockfish across billions of positions on Google Colab — a process that alone took months of iteration, tuning, and compute.
| Language | C++ (full rewrite from Python) |
| Evaluation | Custom NNUE — trained from zero |
| Training | Billions of positions, Google Colab, Stockfish as teacher |
| Protocol | Universal Chess Interface (UCI) |
| Estimated ELO | ~3070+ |
| Gauntlet result | 8 wins / 8 games — Beat every Stockfish level |
| Development time | 6 months |
| Origin | Algeria 🇩🇿 |
FENRIX was tested in an exhaustive ladder against Stockfish, starting at its weakest and climbing to near-maximum strength. It won every single game.
FENRIX vs STOCKFISH — Full Gauntlet Results
══════════════════════════════════════════════════════════════════
Round 1 │ Stockfish ~1320 ELO (Skill Level 0) │ Score: 2/2 ✅ PASS
Round 2 │ Stockfish ~1820 ELO (Skill Level 5) │ Score: 2/2 ✅ PASS
Round 3 │ Stockfish ~2320 ELO (Skill Level 10) │ Score: 2/2 ✅ PASS
Round 4 │ Stockfish ~2820 ELO (Skill Level 16) │ Score: 2/2 ✅ PASS
══════════════════════════════════════════════════════════════════
🏆 CHAMPION — Defeated every Stockfish level in the gauntlet
📊 Estimated ELO: ~3070+
══════════════════════════════════════════════════════════════════
| Round | Opponent | ELO | Score | Time | Result |
|---|---|---|---|---|---|
| 1 | Stockfish Skill 0 | ~1320 | 2 / 2 | ~6s avg | ✅ WIN |
| 2 | Stockfish Skill 5 | ~1820 | 2 / 2 | ~7s avg | ✅ WIN |
| 3 | Stockfish Skill 10 | ~2320 | 2 / 2 | ~9s avg | ✅ WIN |
| 4 | Stockfish Skill 16 | ~2820 | 2 / 2 | ~11s avg | ✅ WIN |
| TOTAL | All 4 levels | — | 8 / 8 | — | 🏆 CHAMPION |
FENRIX ELO EVOLUTION
════════════════════════════════════════════════════════════════════
Python v1 │ Classical eval (material only)
~1100 ELO │ ████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
Python v2 │ + NNUE (first generation) + Advanced search
~1800 ELO │ ████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
C++ v3 │ Full rewrite + NNUE retrained from 0 + Colab training
~3070 ELO │ █████████████████████████████████████████████████ 🔥
════════════════════════════════════════════════════════════════════
Baseline +700 ELO +1270 ELO +1970 ELO total
v1 → v2: Evaluation revolution v2 → v3: Architecture overhaul
ELO
3200 ┤ ▓▓▓ 3070+
2800 ┤ ▓▓▓▓▓▓▓
2400 ┤ ▓▓▓▓▓▓▓▓▓
2000 ┤
1800 ┤ ▓▓▓▓▓▓▓▓▓▓▓▓▓
1400 ┤ ▓▓▓▓▓▓▓▓▓
1100 ┤────╯
└──────────────────────────────────────────────────────
Month 1 Month 2 Month 3 Month 4 Month 5 Month 6
| v1 | v2 | v3 | |
|---|---|---|---|
| Language | Python | Python | C++ |
| ELO | ~1100 | ~1800 | ~3070+ |
| ELO gain | baseline | +700 (+63%) | +1270 (+70%) |
| Total gain from v1 | — | +700 | +1970 (+179%) |
| Evaluation | Material only | NNUE (gen.1) | NNUE retrained from 0 |
| Training data | None | Limited | Billions of positions |
| Training method | None | Partial | Colab + Stockfish distillation |
| Search | Basic alpha-beta | Full search suite | Optimized C++ search |
| Opening book | None | Polyglot | Polyglot (weighted) |
The beating heart of FENRIX. Every weight, every architecture decision — from scratch.
- Custom NNUE architecture designed and implemented in C++
- Trained on billions of positions via Google Colab
- Teacher model: Stockfish (knowledge distillation + self-play)
- Efficient incremental forward pass — board deltas only, not full re-evaluation
- Optimized for sub-millisecond evaluation during search
This is not a fine-tune of an existing network.
It is not a copy of HalfKP or any public NNUE architecture.
It was built and trained by hand, from the first layer to the last weight.
- Negamax with Alpha–Beta pruning
- Iterative Deepening with aspiration windows
- Null Move Pruning (R=3)
- Late Move Reduction (LMR)
- Killer Move Heuristic
- History Heuristic
- Mate Distance Pruning
- 64-bit Zobrist hashing
- Exact / Lower / Upper bound entries
- Up to ~500,000 entries (configurable)
- Polyglot
.binformat - Weighted move selection for opening diversity
The engine started as a Python proof-of-concept. Classical material evaluation, basic alpha-beta search. ELO: ~1100. Slow but functional — a foundation.
Added iterative deepening, LMR, null-move pruning, killer heuristic. Integrated a first-generation NNUE network. ELO jumped to ~1800 — a 700-point leap in a single version.
The entire engine was rewritten in C++ for performance. The NNUE was redesigned and retrained from zero on Google Colab using billions of positions, with Stockfish as the knowledge teacher. This is where the real work was.
Fine-tuning, time management, pruning depth calibration, memory optimization. Then: the full gauntlet against Stockfish from level 1320 to 2820. 8 wins out of 8 games. ELO estimate: 3070+.
| Time Available | Search Depth |
|---|---|
| > 10s | 8+ |
| 5 – 10s | 7 |
| 2 – 5s | 6 |
| 1 – 2s | 5 |
| 0.5 – 1s | 4 |
| < 0.5s | 2–3 |
uci → engine info + options
isready → readiness check
ucinewgame → reset internal state
position startpos [moves] → set position from start
position fen <FEN> [moves] → set position via FEN
go depth <n> → search to fixed depth
go movetime <ms> → search for fixed time
go wtime <ms> btime <ms> → full time control
go infinite → search until "stop"
stop / quit → halt / exit
Compatible with Arena, CuteChess, Banksia, and every UCI-compliant GUI.
⚠️ Source code is not public. Only the compiled binary is distributed.
- Download
fenrix.exefrom the latest release - Add it to your chess GUI of choice
- Play
No Python. No dependencies. No setup. Drop it in and go.
- Open Arena → Engines → Install New Engine
- Select
fenrix.exe· Set protocol to UCI - Click OK — ready to play
FENRIX is distributed as a compiled binary only.
The source code is proprietary and closed.
This engine represents 6 months of engineering, thousands of training iterations on Google Colab, and countless hours of testing and debugging. The source code will not be made public.
Redistribution, reverse engineering, decompilation, or modification of the binary is strictly prohibited.
See LICENSE for full terms.
Lecheheb Djaafar — Algeria 🇩🇿
github.com/LechehebDjaafar
Built with ♟️, C++, and 6 months of relentless dedication — Algeria 🇩🇿
From 1100 ELO to 3070+ — one commit at a time.