Skip to content
Portada » revolution chess engine

revolution chess engine

Revolution

A free and open-source UCI chess engine combining classical algorithms with neural network innovations.
Explore Revolution Documentation »

Based on Stockfish by the Stockfish developers (see AUTHORS file)
Revolution modifications by Jorge Ruiz Centelles

Overview

Revolution is a free, open-source UCI chess engine implementing cutting-edge search algorithms combined with neural network evaluation. Derived from fundamental chess programming principles, Revolution analyzes positions through parallelized alpha-beta search enhanced with null-move pruning and late move reductions.

As a UCI-compliant engine, Revolution operates through standard chess interfaces without an integrated graphical interface. Users must employ compatible chess GUIs (Arena, Scid vs PC, etc.) for board visualization and move input. Consult your GUI documentation for implementation details.

Technical Architecture

Revolution’s architecture features:

  • Hybrid evaluation system combining classical heuristics with NNUE networks
  • SMP parallelization with YBWC (Young Brothers Wait Concept)
  • Advanced pruning techniques (Reverse Futility Pruning, Late Move Pruning)
  • Efficient move ordering with history heuristics and killer moves
  • Tuned search parameters through reinforcement learning

Files

The distribution includes:

  • README.md (this documentation)
  • COPYING.txt (GNU GPLv3 license)
  • AUTHORS (contributor acknowledgments)
  • src/ (source code with platform-specific Makefiles)
  • Neural network weights (revolution.nnue)

Contributing

Development Guidelines

Contributions must adhere to:

  • Clean, documented C++17 implementations
  • Benchmark validation through perft testing
  • Elo measurement via OpenBench
  • Compatibility with UCI protocol standard

Testing Infrastructure

Improvements require extensive testing:

Community

Technical discussions occur primarily through:

Compilation

Compile from source using included Makefiles:

cd src
make -j ARCH=x86-64-modern

Supported architectures:

  • x86-64: Modern x86 processors
  • armv8: ARMv8+ architectures
  • ppc64: PowerPC systems

Full compilation guides available in documentation.

License

Revolution is distributed under the GNU General Public License v3 (GPLv3). It integrates source code from:

  • Stockfish

Because these projects are GPLv3, any distribution of Revolution must also comply with GPLv3. When redistributing, you must:

  1. Include the original license text (COPYING.txt)
  2. Provide complete corresponding source code
  3. Disclose all modifications under GPLv3

Acknowledgements

Revolution also benefits from:

  • The experience file extension has been changed to .exp and the documentation has been updated to reflect the new default name, revolution.exp.
  • Experience loading and saving routines now use binary streams to improve performance and avoid unnecessary reprocessing.

Testing

  • ✅ g++ -std=c++17 -I src -c src/experience.cpp -o /tmp/experience.o

Download revolution

Download revolution-expfile

Simplified LMR extensions by dropping the redundant depth comparison, basing deeper searches solely on move quality

Removed per-depth threshold variables in favor of fixed reduction limits for skipped LMR searches

Testing
✅ cd src && make -j2 build ARCH=x86-64-sse41-popcnt

✅ bash tests/perft.sh ./src/revolution

Download revolution 1.0 dev 270825

Results of Revolution vs Revolution1 (10+0.1, 1t, 32MB, UHO_2024_8mvs_+085_+094.pgn):
Elo: 30.64 +/- 7.21, nElo: 56.04 +/- 13.12
LOS: 100.00 %, DrawRatio: 47.88 %, PairsRatio: 1.90
Games: 2694, Wins: 783, Losses: 546, Draws: 1365, Points: 1465.5 (54.40 %)
Ptnml(0-2): [14, 228, 645, 427, 33], WL/DD Ratio: 0.82
LLR: 2.95 (100.2%) (-2.94, 2.94) [0.00, 2.50]
--------------------------------------------------
SPRT ([0.00, 2.50]) completed - H1 was accepted
Finished match

Download Revolution v1.0.0