Skip to content

Releases: feftywacky/thrawn

Thrawn v3.2

Choose a tag to compare

@feftywacky feftywacky released this 04 Sep 04:31

v3.2 improves on v3.1 through a search rework (#21) and dynamic time management (#24): fail-soft search with retuned pruning/reduction heuristics/constants, plus time allocation that adapts to position complexity.

Combined gain over v3.1 is ~195 Elo (120+1, 1t, 256MB, UHO_Lichess_4852_v1.epd):

Search rework vs v3.1: +124.60 +/- 11.34 Elo, 1000 games
Time management vs above: +69.71 +/- 10.93 Elo, 1000 games

Thrawn v3.1

Choose a tag to compare

@feftywacky feftywacky released this 07 Jul 01:21

v3.1 achieved significantly greater performance than v3.0 from optimizations made in #16 and #18.
TLDR: low level code optimizations reducing nodes searched by 50% and performance improvements to a new nnue architecture.

v3.1 is estimated to be ~3476 Elo

NNUE is embedded to the executables

Thrawn v3.0

Choose a tag to compare

@feftywacky feftywacky released this 25 May 23:41

Thrawn v3.0 introduces a new native NNUE model, major search improvements, and broad engine performance work.
~3000 ELO

NNUE

  • Integrated Thrawn’s new HalfKAv2_hm NNUE architecture
  • Added incremental NNUE accumulator state directly to Position
  • Added SIMD-aware NNUE paths for AVX2, AVX512, and NEON builds
  • Added UCI EvalFile support for loading NNUE networks
  • Fallback to handcrafted evaluation when NNUE is unavailable
  • Replaced the old external-style NNUE interface with native Thrawn NNUE APIs
  • Added NNUE refresh, copy, promotion, update, and verification helpers
  • Updated make/unmake and null-move handling to preserve NNUE state

Engine Changes

  • Refactored Position copy/init behavior and shared attack/hash table storage
  • Improved move generation performance
  • Reworked transposition table storage with clustered entries, aging, static eval storage, and prefetching
  • Added and tuned search features including correction history, capture/quiet history, counter moves, LMR, ProbCut, futility pruning, and singular extensions
  • Improved Lazy SMP/threaded search behavior and result selection

Notes

  • NNUE file must be placed in the same directory of the executable or the engine will fallback to using HCE for evaluation

Thrawn v2.2

Choose a tag to compare

@feftywacky feftywacky released this 08 Oct 05:42
ca88236

Thrawn v2.2
~3000 ELO (~200 ELO better than v2.1)

Changes:

  • Introduced multithreaded search by Lazy SMP (see PR for more detail #9)
    • Default threads is 4
    • Change thread count using this uci command setoption name Threads value <number of threads>
  • Search improvements (see PR for more detail #11)
    • Choose results from best thread
    • Improve stability of aspiration window
    • Refactor TT API and logic

Non-performance changes:

  • Fix Search Score Returning 0 When uci Sends stop With No Time #6
  • Redesign Core Logic: Implement Position Class for OO Architecture #7
  • Add Perft Testing Functionality with Performance Metrics by #8
  • Allocate position object copies on to the heap #12

IMPORTANT NOTE: nnue file must be placed in the same directory of the executable or the engine will play random moves

Compilation support for Windows, MacOS, and, Linux

Thrawn v2.1

Choose a tag to compare

@feftywacky feftywacky released this 16 Jul 02:19

Changes:

  • Support for ARM chips
  • Compilation support for Windows, MacOS, and, Linux

IMPORTANT NOTE: nnue file must be placed in the same directory of the executable or the engine will play random moves

Thrawn v2.0

Choose a tag to compare

@feftywacky feftywacky released this 01 Jan 00:15

Thrawn v2.0
~2800 ELO

IMPORTANT NOTE: nnue file must be placed in the same directory of the executable or the engine will play random moves

notice: this executable and source code below has been updated to fix some bugs. The current files are the most updated ones.

  • fixed uci input parsing bug regarding tournament mode and switching sides
  • fixed queen promotion bug where previously the engine promoted to other pieces when queen is clearly the best promotion type

new changes

  • fixed zero evaluation blundering bug
  • embedded NNUE (using pure NNUE evaluation)
  • no-hashmove reduction
  • reverse futility pruning / static null move pruning
  • late move pruning

Thrawn v1.1

Choose a tag to compare

@feftywacky feftywacky released this 28 Dec 08:20

Thrawn is a UCI compliant chess engine that does not have its own GUI
Rated 2011 ELO in 2+1 blitz by CCRL

New updates:

  • hash move ordering
  • razoring

Features:

  • bitboard representation
  • PeSTO's evaluation + bonuses/penalties for piece mobility and safety
  • negamax search
  • alpha beta pruning
  • principal variation search
  • iterative deepening
  • MMV-LVA move ordering
  • move history
  • late move reduction
  • null move pruning
  • zobrist hashing + transposition table (with dynamic memory allocated hashmap)
  • time control

Thrawn v1.0

Choose a tag to compare

@feftywacky feftywacky released this 27 Dec 10:01

Thrawn is a UCI compliant chess engine that does not have its own GUI
~1900 ELO

Features:

  • bitboard representation
  • PeSTO's evaluation + bonuses/penalties for piece mobility and safety
  • negamax search
  • alpha beta pruning
  • principal variation search
  • iterative deepening
  • MMV-LVA move ordering
  • move history
  • late move reduction
  • null move pruning
  • zobrist hashing + transposition table (with dynamic memory allocated hashmap)
  • time control

ThrawnEngine v0.6-beta

Choose a tag to compare

@feftywacky feftywacky released this 26 Dec 06:29

v0.6
~1800 ELO

new changes

  • improved search speed from fixing various bugs
  • detecting 3-fold repetition
  • zobrist hashing
  • transposition tables

old updates

  • added uci commands for timing control (search no longer fixed depth)
  • null move pruning
  • late move reduction
  • iterative deepening (also adjusting aspiration window)
  • principal variation search
  • move history (quiet and killer)
  • basic move ordering
  • quiescence search
  • negamax alpha beta search
  • checkmate and stalemate
  • basic static eval using piece square tables

ThrawnEngine v0.5-beta

Choose a tag to compare

@feftywacky feftywacky released this 24 Dec 09:02

~1800 ELO
added uci commands for timing control (search no longer fixed depth)