Dolphin 2.1 - new open-source UCI engine in C# with a self-trained NNUE

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

nguyenviethuy
Posts: 4
Joined: Sun Oct 11, 2026 6:24 am
Full name: NGUYEN VIET HUY

Dolphin 2.1 - new open-source UCI engine in C# with a self-trained NNUE

Post by nguyenviethuy »

Subject: Dolphin 2.1 - new open-source UCI engine in C# with a self-trained NNUE

Hello everyone,

I would like to introduce Dolphin, a UCI chess engine I have been writing in C#. Version 2.1 is now available with full source code and ready-to-run Windows builds.
Which file to download
  • Dolphin-2.1.0-windows-x64.zip - self-contained, includes its own .NET runtime, nothing to install. Recommended for testers.
  • Dolphin-2.1.0-windows-x64-requires-dotnet.zip - small package for machines that already have .NET 5.0 or newer.
The network is embedded in the executable, so no separate .nnue file is needed. Windows x64 only for now; Linux/macOS users can build from source with "dotnet build -c Release" (not tested by me yet).

Engine overview
  • Bitboards with magic bitboards, fully legal move generation (perft checked against a reference engine on 20 tricky positions)
  • PVS with iterative deepening and aspiration windows; null move, reverse futility, razoring, futility, LMP, ProbCut, LMR, singular extensions, IIR, SEE
  • Move ordering with hash move, killers, history, countermove and continuation history
  • Lazy SMP, time management for all common time controls (including moves-to-go), pondering
  • NNUE: 768 inputs -> 384 hidden neurons per perspective (SCReLU) -> 8 output buckets, incrementally updated, AVX2 fast path
  • UCI options: Hash, Threads, Move Overhead, Ponder, Clear Hash, UseNNUE, EvalFile
Originality
All code is my own. The network was trained from scratch with the trainer built into the engine (the "datagen" and "train" commands), using only positions from Dolphin's own self-play games: about 44 million positions from five generations, starting from a hand-written evaluation. No code or networks from other engines were used. Stockfish was only used as an external tool (reference perft numbers and a sparring partner).

Testing before release
cutechess-cli 1.5.1, the release packages as downloaded, Intel i7-11800H, opponent Dolphin 2.0:
  • 10+0.1, 1 thread: 1000 games, +352 -215 =433, +47.9 +/- 16.2 Elo
  • 40 moves / 30 s: 300 games, +105 -45 =150
  • 2 min + 1 s: 40 games, +14 -5 =21
  • 4 threads + 1 GB hash: 20 games, and 100 games with the engine restarted for every game
1460 games in total with no time losses, no crashes and no illegal moves. Full tables are in the release notes.

Known limitations
  • No built-in opening book (use the GUI's book)
  • No Syzygy tablebase support yet
  • Windows x64 builds only; a 64-bit CPU is required
  • In one game of the release candidate, cutechess reported a PV line that continued one move past a checkmate (display only). 2.1 contains a fix attempt; please let me know if you still see PV warnings.
I would be very happy if testers could include Dolphin in their lists. Bug reports, match results and suggestions are welcome, here or on GitHub.

Thank you,
Nguyen Viet Huy
User avatar
Graham Banks
Posts: 46595
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Dolphin 2.1 - new open-source UCI engine in C# with a self-trained NNUE

Post by Graham Banks »

Can you please give a rough estimation of strength?
gbanksnz at gmail.com
nguyenviethuy
Posts: 4
Joined: Sun Oct 11, 2026 6:24 am
Full name: NGUYEN VIET HUY

Re: Dolphin 2.1 - new open-source UCI engine in C# with a self-trained NNUE

Post by nguyenviethuy »

Hi Graham, thank you for asking.

First, some background: Dolphin 2 is the successor of Dolphin 1.0 64-bit https://computerchess.org.uk/4040/cgi/e ... 1_0_64-bit, which CCRL tested many years ago (currently 2182 on the 40/15 list). I had not touched the engine for more than ten years. Dolphin 2 is a new program written from scratch in C#, with a self-trained NNUE evaluation, so the old rating says nothing about the new one.

On strength, I only have one data point against a rated engine: 200 games Dolphin 2.1 vs Lizard 11.2 (both 1 thread, 10s+0.1s, 64 MB hash, same openings) ended +3 −166 =31, i.e. about −400 Elo. With Lizard's single-thread strength at roughly 3600–3650 on the CCRL Blitz scale, that would put Dolphin 2.1 somewhere around 3200–3300 CCRL Blitz. Please treat this as a rough estimate: one opponent, 200 games, a large Elo gap and a laptop, not CCRL conditions.

Version 2.2 is now on GitHub (search improvements only, same network). In self-play it scored +48 ± 17 Elo against 2.1 at 8+0.08 (519 games) and +69 ± 20 at 10+0.1 (500 games, cutechess-cli), so it should be a little above that estimate.

I would be grateful for any real rating from your lists.

Nguyen Viet Huy
nguyenviethuy
Posts: 4
Joined: Sun Oct 11, 2026 6:24 am
Full name: NGUYEN VIET HUY

Re: Dolphin 2.1 - new open-source UCI engine in C# with a self-trained NNUE

Post by nguyenviethuy »

Graham Banks wrote: ↑Mon Oct 12, 2026 9:34 am Can you please give a rough estimation of strength?
Dolphin 2 is the successor of Dolphin 1.0 64-bit https://computerchess.org.uk/4040/cgi/e ... 1_0_64-bit

now the latest version is 2.2 at https://github.com/aiagentvn/dolphin/re ... tag/v2.2.0
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.
that would put Dolphin 2.1 somewhere around 3250–3350
User avatar
Gabor Szots
Posts: 1611
Joined: Sat Jul 21, 2018 7:43 am
Location: Budapest, Hungary
Full name: Gabor Szots

Re: Dolphin 2.1 - new open-source UCI engine in C# with a self-trained NNUE

Post by Gabor Szots »

I can see that the link we give for version 1.0 is no longer valid. Can that engine still be downloaded from some place of yours?
Gabor Szots
CCRL testing group
nguyenviethuy
Posts: 4
Joined: Sun Oct 11, 2026 6:24 am
Full name: NGUYEN VIET HUY

Re: Dolphin 2.1 - new open-source UCI engine in C# with a self-trained NNUE

Post by nguyenviethuy »

Gabor Szots wrote: ↑Tue Oct 13, 2026 9:06 am I can see that the link we give for version 1.0 is no longer valid. Can that engine still be downloaded from some place of yours?
The old link is no longer in use; I am using only this new link.
I hope you will use this new version to replace the old Dolphin.
I post all the latest versions here: https://github.com/aiagentvn/dolphin/releases
User avatar
Sylwy
Posts: 5435
Joined: Fri Apr 21, 2006 4:19 pm
Location: IAȘI - the historical capital of MOLDOVA
Full name: Silvian Rucsandescu

Re: Dolphin 2.1 - new open-source UCI engine in C# with a self-trained NNUE

Post by Sylwy »

Gabor Szots wrote: ↑Tue Oct 13, 2026 9:06 am I can see that the link we give for version 1.0 is no longer valid. Can that engine still be downloaded from some place of yours?
Version 1.0 (WB) GUI+engine can be downloaded here:

https://sourceforge.net/projects/dolphi ... r/download

Only engine:

https://www.mediafire.com/file/mj9x0czr ... hin_1.0.7z

:wink:
User avatar
Gabor Szots
Posts: 1611
Joined: Sat Jul 21, 2018 7:43 am
Location: Budapest, Hungary
Full name: Gabor Szots

Re: Dolphin 2.1 - new open-source UCI engine in C# with a self-trained NNUE

Post by Gabor Szots »

Sylwy wrote: ↑Tue Oct 13, 2026 7:26 pm
Gabor Szots wrote: ↑Tue Oct 13, 2026 9:06 am I can see that the link we give for version 1.0 is no longer valid. Can that engine still be downloaded from some place of yours?
Version 1.0 (WB) GUI+engine can be downloaded here:

https://sourceforge.net/projects/dolphi ... r/download

Only engine:

https://www.mediafire.com/file/mj9x0czr ... hin_1.0.7z

:wink:
Thank you, Silvian.
Gabor Szots
CCRL testing group
User avatar
AdminX
Posts: 6410
Joined: Mon Mar 13, 2006 2:34 pm
Location: Acworth, GA

Re: Dolphin 2.1 - new open-source UCI engine in C# with a self-trained NNUE

Post by AdminX »

Impressive! :wink:

[pgn]
[Event "?"]
[Site "?"]
[Date "2026.10.18"]
[Round "?"]
[White "Deep Shredder 13 x64"]
[Black "Dolphin 2.2"]
[Result "0-1"]
[Time "05:30:58"]
[ECO "B40"]
[Opening "Sicilian Defense: Delayed Alapin Variation, with e6"]
[Termination "black wins by adjudication"]

1. e4 {book} c5 {book} 2. Nf3 {book} e6 {book} 3. c3 {book} d5 {book} 4. e5 {book}
d4 {book} 5. Bd3 {book} Nc6 {book} 6. O-O {book} Nge7 {book} 7. Re1 {book} Ng6 {book}
8. g3 {book} f6 {book} 9. cxd4 {0.16/27 35.76s 30.95s} cxd4 {0.01/31 18.62s 0.04s}
10. exf6 {0.00/29 31.65s 0s} gxf6 {0.01/33 55.79s 20.19s} 11. Bc4 {0.00/28 23.75s
6.26s} e5 {0.01/35 20.72s 0s} 12. d3 {0.00/28 16.42s 0s} h5 {0.31/35 24.28s 0s} 13. Qb3 {-0.27/26
24.16s 19.11s} Qd7 {-0.01/31 16.71s 0s} 14. Bd2 {-0.09/28 23.18s 0s} h4 {-0.28/36
33.72s 0s} 15. Bd5 {0.00/29 45.87s 1.36s} Nge7 {0.84/31 17.05s 0.01s} 16. Be4 {0.00/29
18.71s 0s} hxg3 {0.85/32 27.96s 0s} 17. fxg3 {-0.16/29 31.05s 0s} Qe6 {0.78/30 13.78s
0s} 18. Qc2 {-0.12/29 49.82s 0s} Bd7 {0.73/30 16.50s 0.02s} 19. Na3 {0.00/29 12.72s
0s} O-O-O {0.01/36 22.69s 0s} 20. Nb5 {0.00/30 15.14s 0s} Kb8 {-0.01/38 18.32s 0s}
21. Nfxd4 {0.00/32 16.55s 0.01s} Qh3 {0.01/41 18.87s 0s} 22. Bb4 {0.00/32 19.12s
0s} Rc8 {-0.01/42 20.42s 0s} 23. Bd6+ {0.00/29 15.47s 0s} Ka8 {-0.01/41 12.52s 0s}
24. Nb3 {0.00/30 13.36s 0s} f5 {0.01/43 22.99s 0.20s} 25. Bf3 {0.00/31 14.65s 0s}
Ng6 {0.25/45 87.64s 60.54s} 26. Qf2 {0.74/26 27.06s 16.44s} e4 {0.01/38 17.02s 0s}
27. dxe4 {0.00/29 34.44s 0s} f4 {0.01/37 12.10s 0s} 28. Rac1 {0.00/30 43.01s 21.54s}
Bxd6 {-0.01/38 12.63s 0s} 29. Rxc6 {0.00/33 14.15s 0s} Bb8 {0.54/36 9.10s 0s} 30. Rxg6 {0.00/30
10.92s 0s} Bxb5 {0.29/37 11.22s 0s} 31. e5 {0.00/32 11.37s 0s} Qh7 {0.01/37 13.72s
0s} 32. Qg2 {0.46/29 21.24s 0s} fxg3 {0.01/38 10.83s 0s} 33. Rxg3 {0.31/31 24.48s
0s} Bc6 {0.35/38 13.90s 0s} 34. Bxc6 {0.32/31 16.74s 0s} Rxc6 {0.01/36 10.65s 0s}
35. Nd4 {0.14/33 106.99s 0s} Rc7 {0.17/33 11.88s 0s} 36. a3 {0.13/28 23.38s 21.39s}
a6 {0.72/36 48.74s 38.80s} 37. Kh1 {0.00/31 9.92s 0.05s} Re7 {0.01/42 25.11s 11.27s}
38. Nf3 {0.00/32 10.30s 0.06s} Qd3 {0.46/31 8.00s 0s} 39. b4 {0.00/32 17.18s 0.01s}
Qxa3 {1.67/28 10.96s 0s} 40. b5 {-0.15/28 42.08s 0s} a5 {1.50/32 11.46s 0s} 41. Qf2 {-0.17/29
30.36s 0.15s} Qb4 {1.84/28 9.85s 0s} 42. Qe2 {-0.27/27 14.15s 12.65s} Rf8 {1.64/28
12.03s 0s} 43. Rd1 {-0.31/26 14.75s 13.41s} Ba7 {2.03/30 25.67s 8.54s} 44. Rg6 {-0.32/26
17.14s 8.51s} Bc5 {1.92/29 9.12s 0s} 45. Qd3 {-0.38/25 17.63s 17.01s} Ka7 {2.08/31
17.08s 17.08s} 46. Rc1 {-0.58/28 35.75s 34.77s} Ref7 {2.60/32 11.85s 0s} 47. b6+ {-0.77/28
17.68s 16.57s} Bxb6 {4.22/33 7.02s 0s} 48. Rb1 {-0.79/31 11.46s 0s} Rxf3 {4.59/33
8.30s 0s} 49. Rxb4 {-0.92/32 13.45s 0s} Rxd3 {4.70/33 10.04s 0s} 50. Rbxb6 {-0.91/32
13.71s 0s} Rd5 {4.95/32 9.50s 0s} 51. e6 {-1.05/30 13.15s 11.80s} Re8 {5.11/33 14.52s
0s} 52. Rb1 {-1.05/30 13.46s 1.43s} Re5 {4.55/34 13.59s 0s} 53. Rg7 {-0.87/31 8.47s
0.59s} Rb8 {4.97/31 7.42s 0s} 54. Re7 {-0.92/31 7.73s 0s} Ka6 {5.01/32 8.79s 0s}
55. Kg2 {-0.98/29 8.83s 0s} b5 {6.02/32 8.12s 0s} 56. Kg3 {-1.60/28 14.73s 3.32s}
Rb6 {5.96/37 9.00s 0s} 57. Re8 {-1.73/26 10.15s 9.80s} b4 {5.98/37 9.64s 0s} 58. Ra1 {-1.70/28
5.95s 0.03s} b3 {6.07/36 11.45s 0.04s} 59. e7 {-2.49/23 12.47s 11.61s} b2 {6.71/37
9.97s 0s} 60. Rb1 {-4.33/27 11.00s 0s} Ka7 {6.72/40 8.28s 0.01s} 61. Kf4 {-4.57/31
10.01s 0.67s} Re2 {6.74/41 10.73s 0s} 62. Rc8 {-4.85/30 9.35s 9.10s} Rxe7 {12.19/28
6.51s 0s} 63. Rc3 {-5.39/29 8.90s 8.16s} Rh7 {13.79/30 6.58s 0s} 64. Ra3 {-5.53/30
8.60s 7.72s} Ka6 {17.31/26 7.29s 0s} 65. h3 {-6.78/29 8.41s 6.83s} Rh4+ {18.16/31
8.08s 0s} 66. Kg3 {-10.42/28 6.93s 3.55s} Rc4 {18.81/30 6.21s 0s} 67. h4 {-15.46/28
8.62s 8.29s} {black wins by adjudication} 0-1
[/pgn]
"Good decisions come from experience, and experience comes from bad decisions."
__________________________________________________________________
Ted Summers
Damir
Posts: 2965
Joined: Mon Feb 11, 2008 3:53 pm
Location: Denmark
Full name: Damir Desevac

Re: Dolphin 2.1 - new open-source UCI engine in C# with a self-trained NNUE

Post by Damir »

Hi Ted

Have you tried Deep Shredder 14. It has been released a little over a month ago by SMK on its official website.