Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit

Basically re-write in accordance to what all decent engines do insdead of vanilla CPW implementation

Git stats


Failed to load latest commit information.
Latest commit message
Commit time


A UCI chess engine written in C++11. Drofa uses AB-search and combines hand-crafted evaluation (HCE) with supplementary NN, that uses King and Pawn (KPNN) positions as inputs (264 -> 16 -> 2).

This approach resulted in an engine of moderate strength.


Drofa started as fork of the Shallow Blue chess engine. My initial intention was to take weak, but stable and working chess engine and try to improve it, learning c++ along the way.

During my Drofa experiments huge chunk of knowlenge were received from:

  • VICE chess engine and tutorials.
  • Chessprogramming WIKI great place for all chessprogramming-related knowledge.
  • Weiss chess engine, with clean and understandable implementations of complex features. Drofa use Weiss 1.0 LMP base reduction formulas. Althouth Adagrad tuning implementation is not copy-pasted from Weiss, Drofa implementation closesy follows Weiss logic and can be considered a c++ rewrite of it.
  • Several open source engines, mostly Ethereal and Stockfish

Special thanks to:

  • Terje Kirstihagen (Weiss author)
  • Andrew Grant. AdaGrad paper and Ethereal chess engine are great sources of knowledge; Ethereal tuning dataset was a great help in tuning. As well as allowing me on main OpenBench instance
  • Kim Kahre, Finn Eggers and Eugenio Bruno (Koivisto team) for allowing Drofa on Koi OpenBench instance and motivating me to work on the engine
  • Jay Honnold (Berserk author) for helping me with NN stuff
  • OpenBench community for helping me with motivation, in finding bugs, teaching me (even if unknowingly) good programming practices and interesting discussions

Strength (ccrl blitz elo) - as of May 2023:

Drofa 1.0.0    2088
Drofa 1.3.1    2424
Drofa 2.0.0    2488
Drofa 2.0.0    2488
Drofa 3.0.0    2922
Drofa 3.1.0    3009
Drofa 3.2.0    3101
Drofa 3.3.0    3188
Drofa 4.0.0    ~3250 - etimated based on 3.3.22 results

Since version 3.3.23 Drofa supports FRC and DFRC, with a CCRL elo of 3244


With Drofa 4.0.0 many features was added on top of the Shallow Blue, adding up to more than 1000 elo. Almost-full changelog with SPRT results and ELO estimations for most of the features can be found in Changelogs folder.

UCI commands

Drofa 3.0.0 supports following UCI commands:

  • BookPath
  • OwnBook
  • Threads (1 to 172),
  • Hash (16 to 65536)

These options can be set from your chess GUI or the UCI interface as follows:

setoption name OwnBook value true
setoption name BookPath value /path/to/book.bin


During developement, many concepts found in GPL-3 engines were used. Thus, as of 4.0.0, Drofa also will be licensed as GPL-3.

2017 - 2019 © Rhys Rustad-Elliott (original Shallow Blue creator)

2020 - 2023 © Litov Alexander