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



Grail 1.1.0 - new version chess engine



Grail - UCI chess engine
Author: Jørgen Hanssen

After working on it for a while, I feel my hobby chess engine is finally ready for v1.0.0. Not cutting edge, but plays a solid game.

Grail uses modern search techniques and evaluates positions using a simple NNUE trained on 500 million positions from self-play.

Development continues in my spare time, and I plan to release updates with several missing features and improvements like threading, tablebase support, and pondering. But don't worry! Grail supports all standard UCI time controls and analysis modes, so it works seamlessly with your favorite GUI for matches and analysis.

Grail 1.1.0 what's new?

The biggest update to Grail so far!
New features, a reworked search, and a new NNUE for a roughly +270 Elo gain over 1.0.4.

New Features

Lazy SMP Threading

Grail now supports multi-threaded search via the Threads UCI option. Helper threads search at varied depths and pre-populate their results in the transposition table and correction history, seeding the main thread with data on positions it hasn't reached yet.

Multi-PV Search

New MultiPV UCI option for analyzing multiple principal variations. Useful for analysis and opening exploration where you want to see more than the top choice.

Search Improvements

  • Singular extensions with multi-cut pruning for uniquely strong moves.
  • Correction history tables for static eval adjustment.
  • Score-based aspiration window scaling.
  • Anti-reductions for tactical moves replace the old zero-reduction bypass.
  • SEE pruning extended to quiet moves.
  • Removed null move verification search.
  • Triangular PV table.
  • Unified transposition table.
  • Fractional reductions.

Move Ordering Improvements

  • Threat-based bonuses in move ordering.
  • MVV-LVA with proper LVA tiebreaking.
  • Quiet check bonus gated behind SEE to filter out junk checks.
  • Capture history updated from quiescence search.
  • New bad quiets move ordering bucket.
  • Removed killer moves.

New NNUE

New February 2026 net trained on 500M self-play positions. The training pipeline now blends eval and game outcome targets in WDL space, and uses multi-PV sampling to produce more varied training data.

Bug Fixes

  • Fixed aspiration window overflow bug for mate scores.
  • Fixed that the timer could fire during a subsequent search, causing 0000 output.
  • Pawn attack maps now include all controlled squares.
  • Removed buggy piece repetition penalty.

More technical details in #179.

Elo Improvement over 1.0.4 (1 thread)

STC  (10+0.1):  +272.51 ± 6.69 Elo  (10k games)
LTC  (60+0.6):  +271.99 ± 11.29 Elo (3k games)
VLTC (180+1.8): +257.02 ± 17.40 Elo (1k games)



Comments