Ember - new UCI engine written on Rust

Discussion of chess software programming and technical issues.

Moderator: Ras

DreamerExx
Posts: 46
Joined: Wed May 20, 2026 4:08 pm
Full name: Даниил Крецу

Re: Ember - new UCI engine written on Rust

Post by DreamerExx »

Awesome
[pgn][Event "My Tournament"]
[Site "?"]
[Date "2026.06.17"]
[Round "2"]
[White "EmberNNUE"]
[Black "Naum"]
[Result "1-0"]
[ECO "D07"]
[GameDuration "00:00:29"]
[GameEndTime "2026-06-17T10:28:44.159 RTZ 2 (зима)"]
[GameStartTime "2026-06-17T10:28:14.187 RTZ 2 (зима)"]
[Opening "Queen's Gambit declined"]
[PlyCount "129"]
[TimeControl "8+0.08"]
[Variation "Chigorin defense"]

1. d4 {+0.49/1 0.001s} d5 {-0.23/13 0.23s} 2. c4 {+0.31/1 0s}
Nc6 {-0.03/11 0.23s} 3. Nc3 {+1.15/1 0s} e6 {-0.12/11 0.19s}
4. Nf3 {+1.12/13 0.32s} Nf6 {-0.05/12 0.24s} 5. Bg5 {+1.15/11 0.32s}
Bb4 {+0.22/11 0.19s} 6. e3 {+1.16/12 0.31s} O-O {+0.03/12 0.33s}
7. Rc1 {+1.65/10 0.30s} h6 {+0.06/11 0.46s} 8. Bh4 {+1.69/11 0.29s}
Re8 {+0.07/11 0.66s} 9. a3 {+1.29/9 0.29s} Bxc3+ {-0.13/11 0.31s}
10. Rxc3 {+1.32/13 0.28s} g5 {-0.25/11 0.29s} 11. Bg3 {+2.44/13 0.28s}
Ne4 {-0.17/11 0.13s} 12. Rc1 {+1.93/11 0.27s} h5 {-0.07/10 0.13s}
13. h3 {+2.32/9 0.26s} Nxg3 {-0.28/10 0.51s} 14. fxg3 {+1.92/10 0.26s}
e5 {-0.19/10 0.13s} 15. cxd5 {+2.91/9 0.25s} Qxd5 {-0.27/11 0.12s}
16. Bc4 {+3.56/8 0.25s} Qa5+ {-0.16/10 0.32s} 17. Nd2 {+3.56/9 0.24s}
exd4 {-1.17/10 0.51s} 18. O-O {+3.56/7 0.24s} Be6 {-1.23/10 0.23s}
19. Ne4 {+3.22/7 0.23s} Qe5 {-0.58/10 0.18s} 20. Nf6+ {+2.80/7 0.23s}
Kg7 {-0.79/11 0.13s} 21. Nxe8+ {+3.64/6 0.22s} Rxe8 {-0.79/6 0.016s}
22. exd4 {+3.10/8 0.22s} Qxd4+ {-0.84/12 0.17s} 23. Kh2 {+3.68/9 0.21s}
Qxd1 {-0.69/11 0.13s} 24. Rfxd1 {+4.30/10 0.21s} Bxc4 {-0.66/12 0.067s}
25. Rxc4 {+4.21/11 0.20s} Kf6 {-0.69/13 0.20s} 26. Rc5 {+4.91/8 0.20s}
Re2 {-0.74/13 0.16s} 27. b4 {+4.52/7 0.20s} Re7 {-1.12/12 0.21s}
28. Rdc1 {+5.21/8 0.19s} a6 {-1.51/11 0.081s} 29. h4 {+5.97/8 0.19s}
gxh4 {-1.48/12 0.082s} 30. gxh4 {+5.94/8 0.19s} Re3 {-1.49/13 0.092s}
31. R1c3 {+6.84/8 0.18s} Rxc3 {-1.53/14 0.065s} 32. Rxc3 {+5.78/10 0.18s}
Ke6 {-1.98/14 0.19s} 33. Rc5 {+7.14/9 0.18s} f5 {-2.05/14 0.083s}
34. Kh3 {+6.74/9 0.17s} Kf6 {-2.43/12 0.077s} 35. Kg3 {+7.84/9 0.17s}
Ke6 {-2.58/13 0.12s} 36. Kf4 {+9.20/9 0.17s} Ne7 {-2.65/14 0.071s}
37. Kg5 {+9.15/9 0.17s} c6 {-2.76/14 0.14s} 38. Rc2 {+9.09/8 0.16s}
Nd5 {-2.81/12 0.095s} 39. Re2+ {+9.92/9 0.16s} Kd6 {-3.19/13 0.26s}
40. Kxf5 {+9.63/8 0.16s} b6 {-3.27/14 0.23s} 41. Re6+ {+9.96/6 0.15s}
Kd7 {-3.27/13 0.19s} 42. g3 {+9.70/8 0.15s} Nc3 {-3.02/13 0.18s}
43. Re3 {+10.70/8 0.15s} Nd5 {-3.20/14 0.15s} 44. Re5 {+10.66/8 0.15s}
b5 {-3.37/12 0.12s} 45. Kg6 {+11.88/9 0.15s} Nb6 {-4.13/13 0.18s}
46. Rxh5 {+14.72/8 0.14s} Nc4 {-4.17/13 0.14s} 47. Rg5 {+15.69/8 0.14s}
a5 {-6.23/11 0.17s} 48. h5 {+16.34/10 0.14s} axb4 {-7.22/11 0.14s}
49. axb4 {+17.34/8 0.14s} Ke6 {-10.12/12 0.17s} 50. h6 {+17.41/8 0.14s}
Nd6 {-10.14/12 0.17s} 51. h7 {+17.84/8 0.14s} Nf7 {-10.19/12 0.091s}
52. Rh5 {+18.63/6 0.13s} Ke7 {-10.19/13 0.17s} 53. Rf5 {+21.42/8 0.13s}
Nh8+ {-10.21/10 0.099s} 54. Kg7 {+22.61/10 0.13s} Ke6 {-10.20/10 0.096s}
55. g4 {+23.88/9 0.13s} c5 {-M24/10 0.17s} 56. Kxh8 {+28.23/9 0.13s}
c4 {-M22/9 0.067s} 57. Kg7 {+29.08/7 0.13s} Kd6 {-M16/8 0.027s}
58. Kf6 {+34.06/9 0.12s} Kc6 {-M16/7 0.023s} 59. h8=Q {+46.33/5 0.12s}
Kb6 {-M14/5 0.018s} 60. Qb8+ {+47.20/5 0.12s} Ka6 {-M10/3 0.016s}
61. Qxb5+ {+47.39/5 0.12s} Ka7 {-M8/3 0.016s} 62. Qd7+ {+M7/6 0.12s}
Ka8 {-M8/3 0.015s} 63. Qc8+ {+M5/6 0.12s} Ka7 {-M4/3 0.016s}
64. Qc7+ {+M3/6 0.12s} Ka6 {-M2/3 0.015s} 65. b5# {+M1/6 0.12s, White mates} 1-0[/pgn]
DreamerExx
Posts: 46
Joined: Wed May 20, 2026 4:08 pm
Full name: Даниил Крецу

Re: Ember - new UCI engine written on Rust

Post by DreamerExx »

RELEASED!!! 8-)
I present to you Ember 1.0.0. According to my measurements, it has around 2700 Elo. :shock:
Release link: https://github.com/ExxDreamerCode/Ember ... tag/V1.0.0
ericlangedijk
Posts: 71
Joined: Thu Aug 08, 2013 5:13 pm

Re: Ember - new UCI engine written on Rust

Post by ericlangedijk »

I played a few games against my engine.
Ember plays quite ok :)

I did not have a look at the code (I avoid Rust since my own traumatic experience with it).
I would turn off the openingsbook by default. But that is personal.
DreamerExx
Posts: 46
Joined: Wed May 20, 2026 4:08 pm
Full name: Даниил Крецу

Re: Ember - new UCI engine written on Rust

Post by DreamerExx »

ericlangedijk wrote: Wed Jun 17, 2026 8:14 pm I played a few games against my engine.
Ember plays quite ok :)

I did not have a look at the code (I avoid Rust since my own traumatic experience with it).
I would turn off the openingsbook by default. But that is personal.
Thanks for the feedback! :D
DreamerExx
Posts: 46
Joined: Wed May 20, 2026 4:08 pm
Full name: Даниил Крецу

Re: Ember - new UCI engine written on Rust

Post by DreamerExx »

ericlangedijk wrote: Wed Jun 17, 2026 8:14 pm I played a few games against my engine.
Ember plays quite ok :)

I did not have a look at the code (I avoid Rust since my own traumatic experience with it).
I would turn off the openingsbook by default. But that is personal.
What's the score? :D
NichtElias
Posts: 4
Joined: Fri Jun 05, 2026 7:14 pm
Full name: Elias Niemann

Re: Ember - new UCI engine written on Rust

Post by NichtElias »

I had Ember 1.0.0 play against my engine for fun and the result was this game:

[pgn][Event "Engine Match"]
[Site "En Croissant"]
[Date "2026.06.18"]
[Round "?"]
[White "Erinn"]
[Black "Ember 1.0.0"]
[Result "1/2-1/2"]
[Orientation "white"]
[TimeControl "60+1"]

1. e4 {[%clk 0:01:00] } e5 {[%clk 0:01:00] } 2. Nf3 {[%clk 0:00:58.641] } Nc6 {[%clk 0:01:00.996] } 3. d4 {[%clk 0:00:56.216] } exd4 {[%clk 0:01:01.996] } 4. Nxd4 {[%clk 0:00:53.593] } Bb4+ {[%clk 0:01:02.993] } 5. c3 {[%clk 0:00:52.355] } Bc5 {[%clk 0:01:03.99] } 6. Be2 {[%clk 0:00:50.404] } Nf6 {[%clk 0:01:04.99] } 7. Nxc6 {[%clk 0:00:47.136] } bxc6 {[%clk 0:01:03.159] } 8. e5 {[%clk 0:00:41.722] } Ne4 {[%clk 0:01:01.386] } 9. O-O {[%clk 0:00:40.487] } Qh4 {[%clk 0:00:59.668] } 10. Qe1 {[%clk 0:00:39.78] } O-O {[%clk 0:00:58.004] } 11. Bf3 {[%clk 0:00:37.824] } d5 {[%clk 0:00:56.392] } 12. exd6 {[%clk 0:00:36.401] } f5 {[%clk 0:00:54.83] } 13. g3 {[%clk 0:00:35.388] } Qf6 {[%clk 0:00:53.317] } 14. dxc7 {[%clk 0:00:34.236] } Ba6 {[%clk 0:00:51.851] } 15. Be2 {[%clk 0:00:33.38] } Nxf2 {[%clk 0:00:50.431] } 16. Rxf2 {[%clk 0:00:31.95] } Rae8 {[%clk 0:00:49.055] } 17. c4 {[%clk 0:00:31.078] } f4 {[%clk 0:00:47.722] } 18. gxf4 {[%clk 0:00:29.743] } Qg6+ {[%clk 0:00:46.431] } 19. Kh1 {[%clk 0:00:28.906] } Bxf2 {[%clk 0:00:45.18] } 20. Qxf2 {[%clk 0:00:27.389] } Qe4+ {[%clk 0:00:43.968] } 21. Kg1 {[%clk 0:00:23.422] } Qxe2 {[%clk 0:00:42.794] } 22. Qxe2 {[%clk 0:00:15.147] } Rxe2 {[%clk 0:00:41.657] } 23. Bd2 {[%clk 0:00:14.783] } Bc8 {[%clk 0:00:40.556] } 24. Bb4 {[%clk 0:00:14.727] } Rxf4 {[%clk 0:00:39.489] } 25. Nc3 {[%clk 0:00:13.647] } Rg4+ {[%clk 0:00:38.452] } 26. Kf1 {[%clk 0:00:12.015] } Rxh2 {[%clk 0:00:37.448] } 27. Rd1 {[%clk 0:00:11.92] } Rh1+ {[%clk 0:00:36.478] } 28. Ke2 {[%clk 0:00:11.7] } Rxd1 {[%clk 0:00:35.538] } 29. Nxd1 {[%clk 0:00:09.424] } h5 {[%clk 0:00:34.624] } 30. b3 {[%clk 0:00:09.033] } h4 {[%clk 0:00:33.742] } 31. Nf2 {[%clk 0:00:09.121] } Rg6 {[%clk 0:00:32.888] } 32. Bd2 {[%clk 0:00:08.734] } Kf8 {[%clk 0:00:32.061] } 33. Be3 {[%clk 0:00:08.139] } a5 {[%clk 0:00:31.259] } 34. Bf4 {[%clk 0:00:08.136] } a4 {[%clk 0:00:30.482] } 35. bxa4 {[%clk 0:00:08.148] } Ke7 {[%clk 0:00:29.73] } 36. c5 {[%clk 0:00:07.924] } Ke6 {[%clk 0:00:29.001] } 37. a5 {[%clk 0:00:05.861] } Kf5 {[%clk 0:00:28.295] } 38. Kf3 {[%clk 0:00:01.856] } Rg1 {[%clk 0:00:27.611] } 39. Bh2 {[%clk 0:00:01.604] } Rf1 {[%clk 0:00:26.948] } 40. Bd6 {[%clk 0:00:01.918] } Rc1 {[%clk 0:00:26.306] } 41. Ke3 {[%clk 0:00:02.261] } Rc4 {[%clk 0:00:25.684] } 42. Nd3 {[%clk 0:00:02.673] } g5 {[%clk 0:00:25.082] } 43. a3 {[%clk 0:00:02.082] } Re4+ {[%clk 0:00:24.495] } 44. Kf2 {[%clk 0:00:02.06] } h3 {[%clk 0:00:23.93] } 45. Nb4 {[%clk 0:00:01.313] } Rh4 {[%clk 0:00:23.382] } 46. Kg1 {[%clk 0:00:01.669] } Rg4+ {[%clk 0:00:22.852] } 47. Kh2 {[%clk 0:00:01.383] } Rc4 {[%clk 0:00:22.338] } 48. a6 {[%clk 0:00:01.653] } Rc3 {[%clk 0:00:21.837] } 49. a4 {[%clk 0:00:01.015] } Ra3 {[%clk 0:00:21.355] } 50. a7 {[%clk 0:00:01.036] } Rxa4 {[%clk 0:00:20.888] } 51. Nxc6 {[%clk 0:00:01.02] } Kf6 {[%clk 0:00:20.435] } 52. Be5+ {[%clk 0:00:01.019] } Ke6 {[%clk 0:00:19.997] } 53. Bd6 {[%clk 0:00:01.488] } Ra2+ {[%clk 0:00:19.572] } 54. Kg1 {[%clk 0:00:01.538] } g4 {[%clk 0:00:19.161] } 55. Bg3 {[%clk 0:00:01.941] } Ra4 {[%clk 0:00:18.762] } 56. Kh2 {[%clk 0:00:02.214] } Ra2+ {[%clk 0:00:18.376] } 57. Kg1 {[%clk 0:00:02.504] } Ra4 {[%clk 0:00:18.002] } 58. Kh2 {[%clk 0:00:02.423] } Ra2+ {[%clk 0:00:17.64] } 59. Kg1 {[%clk 0:00:01.02] } 1/2-1/2[/pgn]

Funny how Ember seems to always have something more important on it's mind than getting rid of the pawn on c7.

So far I'm estimating my Engines Elo at vaguely around 2500 so it should be a little weaker than Ember, maybe I should do a little tournament to get a better estimate.
DreamerExx
Posts: 46
Joined: Wed May 20, 2026 4:08 pm
Full name: Даниил Крецу

Re: Ember - new UCI engine written on Rust

Post by DreamerExx »

NichtElias wrote: Thu Jun 18, 2026 3:23 pm I had Ember 1.0.0 play against my engine for fun and the result was this game:

Funny how Ember seems to always have something more important on it's mind than getting rid of the pawn on c7.

So far I'm estimating my Engines Elo at vaguely around 2500 so it should be a little weaker than Ember, maybe I should do a little tournament to get a better estimate.
Honestly, it was a pretty weird game, haha, would you mind if I held a tournament of Ember vs. Erinn, 8+0.08, 100 games, and shared the results? I'm curious. :mrgreen:
DreamerExx
Posts: 46
Joined: Wed May 20, 2026 4:08 pm
Full name: Даниил Крецу

Re: Ember - new UCI engine written on Rust

Post by DreamerExx »

NichtElias wrote: Thu Jun 18, 2026 3:23 pm I had Ember 1.0.0 play against my engine for fun and the result was this game:

Funny how Ember seems to always have something more important on it's mind than getting rid of the pawn on c7.

So far I'm estimating my Engines Elo at vaguely around 2500 so it should be a little weaker than Ember, maybe I should do a little tournament to get a better estimate.
I played an 8+0.08 tournament between Ember 1.0 and Erinn 1.0. The score was 52 wins, 24 draws, and 24 losses for Ember. Erinn plays well; I'd say his rating is around 2500-2600. But he has a very serious problem: he can lose on time in tight time controls. In my tournament, Erinn lost nine games on time (the position was already completely lost, but the fact of losing on time is not good). Here are the tournament's PGN:
NichtElias
Posts: 4
Joined: Fri Jun 05, 2026 7:14 pm
Full name: Elias Niemann

Re: Ember - new UCI engine written on Rust

Post by NichtElias »

Yeah, seems like I'll need to look into Erinn's time management a bit more. I'm usually testing at 1+0.05 and there I've noticed some losses on time as well, though to a lesser degree than what you found
DreamerExx
Posts: 46
Joined: Wed May 20, 2026 4:08 pm
Full name: Даниил Крецу

Re: Ember - new UCI engine written on Rust

Post by DreamerExx »

YO
[pgn][Event "Stockfish KILL"]
[Site "?"]
[Date "2026.06.20"]
[Round "4"]
[White "Stockfish 10"]
[Black "Ember"]
[Result "1/2-1/2"]
[ECO "C15"]
[GameDuration "00:00:23"]
[GameEndTime "2026-06-20T15:37:47.707 RTZ 2 (зима)"]
[GameStartTime "2026-06-20T15:37:24.456 RTZ 2 (зима)"]
[Opening "French"]
[PlyCount "94"]
[TimeControl "8+0.08"]
[Variation "Winawer (Nimzowitsch) variation"]

1. e4 {+1.03/17 0.59s} e6 {-0.08/1 0s} 2. d4 {+0.90/13 0.12s} d5 {-0.83/1 0s}
3. Nc3 {+0.71/16 0.46s} Bb4 {-0.79/1 0s} 4. exd5 {+0.68/15 0.059s}
exd5 {-0.78/1 0s} 5. Bd3 {+0.79/14 0.12s} c6 {-0.26/1 0s}
6. Nf3 {+1.10/11 0.038s} Nf6 {-0.58/10 0.33s} 7. Qe2+ {+1.04/12 0.11s}
Be7 {-0.48/11 0.32s} 8. O-O {+0.95/12 0.088s} O-O {-0.64/11 0.31s}
9. Re1 {+0.55/16 0.76s} Re8 {-0.07/10 0.31s} 10. Bf4 {+0.90/14 0.050s}
Bg4 {-0.33/8 0.30s} 11. Qe3 {+0.29/17 0.70s} Bh5 {-0.16/8 0.29s}
12. Ne5 {+0.79/13 0.097s} Nbd7 {-0.39/9 0.29s} 13. Qh3 {+0.75/14 0.095s}
Bg6 {-0.18/9 0.28s} 14. Nxg6 {+0.63/14 0.067s} hxg6 {+0.62/8 0.27s}
15. a4 {+0.62/14 0.080s} Nf8 {+0.36/9 0.27s} 16. a5 {+0.57/18 0.28s}
Bd6 {0.00/10 0.26s} 17. Rxe8 {+0.58/14 0.036s} Nxe8 {+0.04/12 0.26s}
18. Be3 {+0.76/15 0.053s} a6 {+1.02/11 0.25s} 19. Ne2 {+0.55/16 0.14s}
Bb4 {+1.27/12 0.24s} 20. Nc1 {-0.57/16 0.54s} Bxa5 {+1.74/12 0.24s}
21. Bf1 {-0.74/17 0.34s} Bc7 {+2.20/11 0.23s} 22. Nd3 {-0.96/16 0.11s}
Nf6 {+2.17/9 0.23s} 23. c3 {-0.66/15 0.12s} Bd6 {+2.18/10 0.23s}
24. g3 {-0.63/15 0.081s} a5 {+2.16/12 0.22s} 25. Qg2 {-0.69/16 0.42s}
a4 {+1.88/13 0.22s} 26. Qf3 {-0.70/15 0.070s} b5 {+1.96/8 0.21s}
27. h4 {-1.29/16 0.58s} Ne4 {+2.22/9 0.21s} 28. Bf4 {-1.37/13 0.070s}
Qf6 {+2.24/9 0.20s} 29. Qe3 {-1.11/16 0.13s} Bxf4 {+2.36/10 0.20s}
30. Qxf4 {-1.00/18 0.16s} Ne6 {+2.44/11 0.20s} 31. Qe3 {-0.47/15 0.13s}
g5 {+1.60/7 0.19s} 32. h5 {-0.72/18 0.38s} g4 {+1.64/7 0.19s}
33. Be2 {+0.25/15 0.14s} g6 {+0.74/8 0.19s} 34. Bxg4 {+0.51/15 0.12s}
gxh5 {+0.77/10 0.18s} 35. Bxh5 {+0.26/17 0.10s} Qf5 {+0.61/8 0.18s}
36. Qf3 {+0.27/19 0.13s} Qxf3 {+0.48/10 0.18s} 37. Bxf3 {+0.37/17 0.11s}
a3 {+0.33/8 0.17s} 38. Bg4 {+0.21/20 0.13s} Nd8 {+0.72/10 0.17s}
39. bxa3 {+0.19/17 0.083s} Kf8 {+0.88/10 0.17s} 40. f3 {0.00/19 0.28s}
Nxc3 {+0.64/10 0.17s} 41. Kf2 {0.00/18 0.042s} Ke7 {+1.20/9 0.16s}
42. Re1+ {0.00/17 0.19s} Kd6 {+0.21/9 0.16s} 43. Re8 {0.00/20 0.072s}
Kc7 {+0.21/8 0.16s} 44. Re7+ {0.00/21 0.094s} Kb6 {0.00/11 0.15s}
45. Re8 {0.00/22 0.062s} Kc7 {0.00/9 0.15s} 46. Re7+ {0.00/23 0.16s}
Kb6 {0.00/11 0.15s} 47. Re8 {0.00/24 0.12s}
Kc7 {0.00/10 0.15s, Draw by 3-fold repetition} 1/2-1/2[/pgn]