SHAYVERI

Shayveri

v2.10.0

Super Heuristic Adaptive Yield Variation Engine for Rook Intelligence

A C++ Chess Engine.

3261.4 +/- 16.0

Anchored Ordo STC rating for SHAYVERI NNUE Evaluation

3320.6 +/- 30.3

Anchored Ordo LTC rating for SHAYVERI NNUE Evaluation

+67.0

Elo gained at STC compared to SHAYVERI v2.9.0

+50.3

Elo gained at LTC compared to SHAYVERI v2.9.0

01 / Engine

Overview

Protocol

Implements UCI for command-line use and integration with chess GUIs, tournament managers, and bot frameworks.

Configuration

Exposes runtime controls for hash memory, threads, evaluation path and network, opening-book use, pondering, and time allocation.

Search

Combines iterative deepening, Principal Variation Search, transposition-table reuse, selective pruning, extensions, and history-based move ordering.

Evaluation

Provides an embedded KB16x512 NNUE evaluation and an independently tuned HCE evaluation path.

Time And Parallelism

Supports deterministic single-thread search and timed Lazy SMP with adaptive soft and hard time limits.

Opening Book

The self-built embedded book uses standard-chess games from TWIC where both players are rated at least 2600. Its reproducible pipeline keeps the first 30 plies, aggregates observed moves for positions with at least five weighted plays, and compiles the majority move without evaluator-specific metadata.

Platform

Targets modern x86-64 CPUs with BMI/BMI2, LZCNT, and POPCNT support, with build targets for Linux, Windows, and Intel macOS.

02 / Performance

Elo Results

The public rating numbers come from controlled multi-engine round-robin gauntlets analyzed with Ordo. They are pool-relative, anchored to fixed-strength SF2850 and SF3000, and should not be read as universal CCRL ratings.

EngineEvaluationTime ControlRatingError
SHAYVERI v2.10.0HCESTC 10+0.12674.8±18.1
SHAYVERI v2.10.0HCELTC 90+0.52794.1±30.9
SHAYVERI v2.10.0NNUESTC 10+0.13261.4±16.0
SHAYVERI v2.10.0NNUELTC 90+0.53320.6±30.3

SHAYVERI v2.10.0 / NNUE leads HCE by about +586.6 Elo at STC and +526.5 Elo at LTC in this anchored pool. Against v2.9.0 on the same anchored scale, it gained +67.0 Elo at STC and +50.3 Elo at LTC. It is above SF3000 at both time controls.

04 / Evaluation

Evaluation Paths

To select between the HCE and NNUE evaluation paths, use the UCI option UseNNUE.

Handcrafted Evaluation

  • Tapered middlegame/endgame material, piece-square tables, bishop-pair scoring, development, and tempo.
  • Pawn-hash evaluation of passed, isolated, doubled, backward, chained, storming, weak, and islanded pawns.
  • King safety from pawn shields, open files, king-zone pressure, coordinated attackers, and escape squares.
  • Safe mobility with file-openness scaling, piece coordination, batteries, and mutual support.
  • Pins, overloads, undefended pieces, pawn and minor-piece threats, and supported outposts.
  • Evaluation and search parameters refined through Texel tuning and SPSA.

NNUE Evaluation

  • The embedded default is SHAYVERI2_10_4.nnue, a KB16x512 network using SCReLU.
  • Side-relative Chess768 features are split across 16 mirrored king buckets and a 512-unit hidden layer.
  • Two perspective accumulators are refreshed or incrementally updated through make/unmake search.
  • Scalar and AVX2 inference paths evaluate the same network format.
  • The UCI option EvalFile accepts compatible Chess768, KB8, and KB16 networks with 256 or 512 hidden units.
  • The promoted network followed a two-stage continuation: Net1 was warm-started from SHAYVERI2_5_0.nnue on external RobotMoon/Stockfish data, then Net4 was warm-started from Net1 using 45% corrected SHAYVERI self-play data and 55% frozen Net1 external data. The training data are not included in the repository.

05 / Configuration

UCI Options

Resources

Hash
Sets the transposition-table allocation, in MB.
ClearHash
Clears the transposition table and all persistent search histories.
Threads
Sets the requested search-thread count, bounded by detected hardware capacity.

Evaluation

UseNNUE
Toggles between the NNUE and HCE evaluation paths without changing the configured network path.
EvalFile
Specifies the path to a compatible external NNUE network. The embedded default is used when left unchanged.

Opening Book

OwnBook
Toggles use of SHAYVERI's built-in opening book.
BookInfoDepth
Sets the search depth used to report SHAYVERI's own book-move information. A value of 0 disables the search.

Search Timing

Ponder
Toggles ponder-move output so a chess GUI can start a go ponder search during the opponent's turn.
MinimumThinkingTime
Sets the minimum time, in milliseconds, allocated to dynamically timed moves.
MoveOverhead
Reserves time for chess GUI and network delay, in milliseconds, before calculating the search limits.

06 / Usage

Build And Use

Builds require C++20 and a modern x86-64 CPU with BMI/BMI2, LZCNT, and POPCNT. Keep SHAYVERI2_10_4.nnue at the repository root so it can be embedded during compilation. At runtime, the UCI option EvalFile can select a compatible external network instead.

BUILD
$ make
$ make windows
$ make macos
$ make pgo
$ make clean

On Linux, the PGO target builds the profile-guided SHAYVERI_pgo binary. It trains the engine on representative fixed and timed single-thread and Lazy SMP searches, then rebuilds it using the collected profile. This machine-native build takes longer but provides the best local performance. Release binaries remain portable non-PGO builds.

UCI SESSION
 uci
 isready
 position startpos moves e2e4 e7e5
 go movetime 1000

07 / Quality

Verification

  • Rules and state: perft, FEN validation, make/unmake roundtrips, en-passant, SEE, evaluation symmetry, and draw handling.
  • Search: checked quiescence, node and move restrictions, transposition-table safety, time-manager policy, and tactical regressions.
  • Protocol and concurrency: UCI handshake, opening-book behavior, deterministic single-thread search, timed Lazy SMP, and pondering.
  • Tooling: strict warning-clean compilation, focused clang-tidy checks, bench-signature validation, and datagen output checks.
TEST SUITE
$ make test