Repository navigation
Releases: aiagentvn/dolphin
Release list
Dolphin 2.2
Dolphin 2.2 is a search-only update: the same network as 2.1, with better move ordering. Self-play gain about +48 Elo at fast time controls.
Download
| File | Use it if |
|---|---|
Dolphin-2.2.0-windows-x64.zip |
Recommended. Self-contained: includes its own .NET runtime, nothing to install. Keep all five files of the folder together. |
Dolphin-2.2.0-windows-x64-requires-dotnet.zip |
You already have the .NET Runtime 5.0 or newer and want the small package. Keep the four files Dolphin2.exe, Dolphin2.dll, Dolphin2.deps.json, Dolphin2.runtimeconfig.json together. |
Unzip and load Dolphin2.exe into your GUI as a UCI engine. The network is embedded in the program. Requires Windows on a 64-bit (x64) CPU; CPUs with AVX2 use a faster NNUE path. Each package contains a README.txt with setup and troubleshooting notes.
What's new
Three changes to the search, each kept only after it passed a self-play SPRT test (fixed 40k nodes per move, bounds [0, 5] Elo):
- History from the evaluation trend. After each move the opponent's previous quiet move is rewarded or penalised by how much it changed the static evaluation in its favour. Self-play: +29 ± 13 Elo.
- Heavier penalties for refuted moves. Quiet moves and captures that were tried and failed are now penalised more than the winning move is rewarded, and a first-move cutoff at depth 3 or less no longer touches the history tables. Self-play: +25 ± 12 Elo.
- Transposition-table prefetch after every move: about 2% more nodes per second.
Three other ideas (quiescence-search pruning, deeper/shallower LMR re-search, a stricter TT cutoff) were tested and rejected because they did not gain.
The combined build scored +48.5 ± 17.1 Elo against Dolphin 2.1 at 8+0.08 (519 games, 1 thread, no time losses).
- Engine name now reports
Dolphin 2.2 NNUE. benchnode count changed to 1627584 (search changes; the network is unchanged).
Testing
All games with cutechess-cli 1.5.1 on an i7-11800H against the Dolphin 2.1.0 release package, openings from tools/openings8.epd.
| Time control | Settings | Games | Result (W-L-D) | Elo vs 2.1 |
|---|---|---|---|---|
| 10+0.1 | 1 thread, 64 MB | 500 | 160 - 62 - 278 | +69.0 ± 20.2 |
| 40 moves / 30 s | 1 thread, 64 MB | 100 | 19 - 15 - 66 | +13.9 ± 39.8 |
| 10+0.1 | 4 threads, 1 GB (both engines) | 20 | 6 - 2 - 12 | too few games |
| 5+0.05, engine restarted every game | 1 thread, 64 MB | 100 | 42 - 11 - 47 | +111.4 ± 50.0 |
| 5+0.05, engine restarted every game (final packages) | both 2.2 packages against each other | 100 | 28 - 22 - 50 | (same engine) |
| 40 moves / 30 s (final packages) | self-contained 2.2 package, 1 thread, 64 MB | 100 | 22 - 15 - 63 | +24.4 ± 41.5 |
920 games in total: no time losses, no crashes, no illegal moves. The rows without a note were played with the release build of the 2.2 source; the packages are built from the same source (same bench node count, verified after unzipping).
Verify
Dolphin2.exe perft 5must printNodes searched: 4865609Dolphin2.exe benchmust printNodes searched : 1627584- SHA-256:
Dolphin-2.2.0-windows-x64.zip:F8B3802BE1998D91031C7FD02F8F2A2DF80E98253C05BB46CFAD9FDB75A90371Dolphin-2.2.0-windows-x64-requires-dotnet.zip:C90B90A768BBD99F5AE401096C3C75E1AF741E421622D60A3B10A1BB67CFBAB4
Build from source
git clone https://github.com/aiagentvn/dolphin.git
cd dolphin
dotnet build -c ReleaseThe binaries in this release were built from the source at this tag.
Dolphin 2.1
Dolphin 2.1 brings a stronger self-trained network and a self-contained Windows build that needs no .NET installation.
Download
| File | Use it if |
|---|---|
Dolphin-2.1.0-windows-x64.zip |
Recommended. Self-contained: includes its own .NET runtime, nothing to install. Keep all five files of the folder together. |
Dolphin-2.1.0-windows-x64-requires-dotnet.zip |
You already have the .NET Runtime 5.0 or newer and want the small package. Keep the four files Dolphin2.exe, Dolphin2.dll, Dolphin2.deps.json, Dolphin2.runtimeconfig.json together. |
Unzip and load Dolphin2.exe into your GUI as a UCI engine. The network is embedded in the program. Requires Windows on a 64-bit (x64) CPU; CPUs with AVX2 use a faster NNUE path. Each package contains a README.txt with setup and troubleshooting notes.
What's new
- New network, trained from scratch on about 44 million positions from Dolphin's own self-play games (five generations of data, each played with the best network available at the time). Same architecture as 2.0: 768 → 384×2 (SCReLU) → 8 output buckets.
- Self-contained Windows package: no .NET installation needed.
- Engine name now reports
Dolphin 2.1 NNUE. - Hardening: stricter validation of moves taken from the transposition table, and PV bookkeeping is reset in every quiescence node. Neither changes the search (the
benchnode count is identical). - README: download guide and troubleshooting section.
Testing
All games with cutechess-cli 1.5.1 on an i7-11800H, using the release packages as downloaded, against Dolphin 2.0.0 (except the last row), openings from tools/openings8.epd.
| Time control | Settings | Games | Result (W-L-D) | Elo vs 2.0 |
|---|---|---|---|---|
| 10+0.1 | 1 thread, 64 MB | 1000 | 352 - 215 - 433 | +47.9 ± 16.2 |
| 40 moves / 30 s | 1 thread, 64 MB | 100 | 36 - 20 - 44 | +56.1 ± 51.4 |
| 40 moves / 30 s (final packages) | 1 thread, 64 MB | 200 | 69 - 25 - 106 | +77.7 ± 32.9 |
| 2 min + 1 s | 1 thread, 128 MB | 40 | 14 - 5 - 21 | +79.5 ± 75.1 |
| 10+0.1 | 4 threads, 1 GB (both engines) | 20 | 4 - 5 - 11 | too few games |
| 5+0.05, engine restarted every game | both 2.1 packages against each other | 100 | 29 - 22 - 49 | (same engine) |
1460 games in total: no time losses, no crashes, no illegal moves. The rows without a note were played with the release candidate, which differs from the final build only by the two hardening checks above (identical bench node count). In one of those games cutechess reported a single PV line that continued one move past a checkmate (display only, the played moves were legal). Its cause has not been confirmed yet; the PV hardening addresses the most likely path, and the 200 games with the final packages produced no warnings, which is encouraging but not proof. Reports of any remaining PV warnings are welcome.
Verify
Dolphin2.exe perft 5must printNodes searched: 4865609Dolphin2.exe benchmust printNodes searched : 3292308- SHA-256:
Dolphin-2.1.0-windows-x64.zip:494B28BDA2216D0CBBABE06A58C4F8013082A39B01F34D3C40001B18CA7EFE0CDolphin-2.1.0-windows-x64-requires-dotnet.zip:59B1A928DF8A9FC33879EE4DA8E2348E27B8C8170A94B53FF6A175D7B159FEAB
Build from source
git clone https://github.com/aiagentvn/dolphin.git
cd dolphin
dotnet build -c ReleaseThe binaries in this release were built from the source at this tag.
Dolphin 2.0
First public release of Dolphin, a UCI chess engine written in C# with an NNUE evaluation trained from scratch on its own self-play games.
Download
Dolphin-2.0.0-windows-x64.zip (below, under Assets). Unzip it anywhere and keep these four files together in one folder:
Dolphin2.exe
Dolphin2.dll
Dolphin2.deps.json
Dolphin2.runtimeconfig.json
The engine does not start if only Dolphin2.exe is copied elsewhere. The neural network is embedded in Dolphin2.dll, so no extra network file is needed.
Requirements: Windows, 64-bit (x64) CPU, and the .NET Runtime 5.0 or newer (6, 7, 8, ... also work). CPUs with AVX2 use a faster NNUE code path.
Use it in a chess GUI
Arena: Engines → Install New Engine... → select Dolphin2.exe → choose UCI.
Cute Chess / BanksiaGUI / others: set the engine command to the full path of Dolphin2.exe, protocol UCI.
If the engine does not move and loses on time, run Dolphin2.exe in a command prompt and type uci. You should see uciok. An error about hostpolicy.dll / runtimeconfig.json means one of the four files is missing. An error that the framework Microsoft.NETCore.App was not found means the .NET Runtime is not installed. The included README.txt has more details.
What's inside
- Bitboards with magic bitboard attacks, fully legal move generation (perft-verified)
- Principal Variation Search with iterative deepening, aspiration windows, null-move pruning, LMR, singular extensions, ProbCut, SEE and more
- Multi-threaded search (Lazy SMP), time management for all common time controls, pondering
- NNUE evaluation: 768 inputs → 384 hidden neurons per perspective (SCReLU) → 8 output buckets, incrementally updated, AVX2 fast path
- The bundled network was trained only on positions from Dolphin's own self-play games (about 28 million positions)
- Built-in
datagenandtraincommands to generate data and train your own network - UCI options:
Hash,Threads,Move Overhead,Ponder,Clear Hash,UseNNUE,EvalFile
See the README for full documentation.
Verify
Dolphin2.exe perft 5must printNodes searched: 4865609- SHA-256 of
Dolphin-2.0.0-windows-x64.zip:
BECCB1DF98D6A68CFD499BBC0E9EAAAECF598552D29EABE0449C0E67EE066008
Build from source
git clone https://github.com/aiagentvn/dolphin.git
cd dolphin
dotnet build -c ReleaseThe binaries in this release were built from the source at this tag.