Since you’re here...

We hope you will consider supporting us today. We need your support to continue to exist, because good entries are more and more work time. Every reader contribution, however big or small, is so valuable. Support "Chess Engines Diary" even a small amount– and it only takes a minute. Thank you.
============================== My email: jotes@go2.pl



Heimdall 1.4.3 - new version chess engine


HeimdallUCI chess engine written in Nim.
Author: Mattia Giambirtone

More info
Heimdall is available on Lichess under its old name (Nimfish), feel free to challenge it! I try to keep the engine running on there always up to date with the changes on the master branch

Heimdall 1.4.3 what's new?

Greetings! After much silence, here comes a new version of the 'dall; 1.4.3 is a larger release than the version number suggests. The engine has picked up a redesigned terminal UI, replay tooling, several search and evaluation changes, a newer network, and a good pile of correctness and build fixes since 1.4.2. I'm not calling this 1.5 because I said 1.5 would be using a multilayer network and I'm procrastinating that HARD (oops)

What changed

  • Added a (shamelessly vibecoded) terminal UI with analysis, play/setup/replay flows, board rendering, eval/move arrows, user arrows, mate finding, annotations, PGN importing/exporting, and more; see here for details
  • Made UCI move parsing reject illegal moves more reliably
  • Improved command parsing so valid position and go commands embedded in otherwise malformed input can still be handled per the UCI spec
  • Switched to laevateinn-v2-verbatim network
  • Added Transparent Huge Pages support for aligned memory where available (detected at build time, not runtime)
  • Implemented a simplified ProbCut
  • Implemented fractional LMR and made the LMR base table tunable
  • Added continuation correction history and 2-ply continuation correction history
  • Tuned all search parameters
  • Fixed evaluation clamping and mate-score handling issues
  • Fixed the long-standing incorrect definition of improving
  • Tightened singular-extension and futility-pruning margins
  • Ensured NMP does not return false mates
  • Reduced false sharing and contention by changing how search parameters and worker state are copied/aligned
  • Used relaxed ordering for atomic operations where appropriate
  • Moved more objects to managed references and aligned more search-manager fields
  • Compressed moves into 16 bits

Strength

Pretty chunky gains across the board, honestly was not expecting them to be this high nor this consistent across opening books and time controls. A welcome surprise for sure!

UHO_Lichess_4852_v1.epd

STC:

Elo   | 92.04 +- 12.86 (95%)
Conf  | 8.0+0.08s Threads=1 Hash=16MB
Games | N: 1012 W: 408 L: 146 D: 458
Penta | [0, 43, 207, 207, 49]

LTC:

Elo   | 83.57 +- 11.72 (95%)
Conf  | 40.0+0.40s Threads=1 Hash=64MB
Games | N: 1000 W: 386 L: 150 D: 464
Penta | [0, 41, 208, 225, 26]

8moves_v3.epd

STC:

Elo   | 77.59 +- 12.28 (95%)
Conf  | 8.0+0.08s Threads=1 Hash=16MB
Games | N: 1006 W: 290 L: 69 D: 647
Penta | [4, 36, 234, 193, 36]

LTC:

Elo   | 54.89 +- 9.67 (95%)
Conf  | 40.0+0.40s Threads=1 Hash=64MB
Games | N: 1002 W: 192 L: 35 D: 775
Penta | [1, 24, 307, 155, 14]


Heimdall 1.3.0 vs other engines:
Horsie 1.0.6 JA1.5/12-912 Games
Viridithas 16.0.01/8-68 Games
Sting Black Hole 96/6+66 Games
Deep HIARCS 15.4u4/6+26 Games
Ethereal 14.252/6-26 Games
Chess-System-Tal-22/6-26 Games
Caissa 1.212/6-26 Games
Alexandria 7.0.14 JA2/6-26 Games
Revenge 4.02/6-26 Games
Motor 0.8.0 JA2/6-26 Games
Lizard 11.2.01.5/6-36 Games
PlentyChess 4.0.11.5/6-36 Games
Clover 8.1 JA1.5/6-36 Games
HypnoS ++ 1.011.5/6-36 Games
Artemis 7TR1.5/6-36 Games
Dragon 3.31.5/6-36 Games
Velvet 8.1.1 JA1/6-46 Games
Obsidian 15.01 SE1/6-46 Games
Starzix 6.01/6-46 Games
Igel 3.6.0 JA1/6-46 Games
Stockfish dev-202502020.5/6-56 Games


Github: https://github.com/nocturn9x/heimdall

Comments