Hydra - UCI-compatible chess engine written in pure Python — no C extensions, no numpy, no external dependencies.
Estimated strength: ~2000 Elo (Stockfish UCI_Elo calibration, 100 ms/move).
Estimated strength: ~2000 Elo (Stockfish UCI_Elo calibration, 100 ms/move).
Author: Miloslav Macůrek
Hydra 1.1.0 what's new?
This release is focused entirely on performance. No new features, no new search algorithms — just making the existing engine significantly faster, which directly translates to stronger play.
Estimated strength: ~2000 ELO
What changed
Evaluation cache — static eval is now cached by Zobrist hash (up to 65 536 entries), avoiding redundant recomputation for positions seen multiple times during search
Pawn structure cache enlarged from 4 096 → 32 768 entries
Removed hanging-pieces detection from static evaluation — SEE (Static Exchange Evaluation) already handles tactical compensation in search, making the static penalty redundant and expensive
Conditional SEE skip — captures where the victim is worth more than the attacker are ordered directly via MVV-LVA, saving a full SEE call per move in most exchanges
Faster LSB extraction in move generation — replaced De Bruijn multiplication + table lookup with (bb & -bb).bit_length() - 1, leveraging CPython's native integer representation (~21% faster per call, 82 call sites updated)
History-malus micro-optimisations — destination square hoisted out of inner loop, set-literal allocations eliminated.
Comments
Post a Comment