Zeppelin Chess Engine

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

Moderator: Ras

ChickenMan4236
Posts: 13
Joined: Wed Oct 01, 2025 8:55 pm
Location: Poland
Full name: Jakub Szczerbiński

Re: Zeppelin Chess Engine

Post by ChickenMan4236 »

Hello,
I've expected, that v0.1.0 is going to be stronger than the previous version, but I didn't expect, that it can achieve 1900elo!

I know about the problem with finding endgame patterns, for now it actually lacks any algorithms for endgames, it follows a normal tree search. I assume checkmates Rook+King vs King requires many moves and it doesn't have time to search the tree to that depth. I'm currently working on better pruning, after that I'm going to find some way of handling the endgames checkmate detection.
out of curiosity: why is this in engine origins?
I didn't know which subforum is correct for this kind of threads, I've seen some other homemade chess engine thread here and that's why I posted it here. Is there any way to move it somewhere else?
Aleks Peshkov
Posts: 977
Joined: Sun Nov 19, 2006 9:16 pm
Location: Russia
Full name: Aleks Peshkov

Re: Zeppelin Chess Engine

Post by Aleks Peshkov »

Transposition Tables, NMP, LMR should push engine to 2200+ Elo
ChickenMan4236
Posts: 13
Joined: Wed Oct 01, 2025 8:55 pm
Location: Poland
Full name: Jakub Szczerbiński

Re: Zeppelin Chess Engine

Post by ChickenMan4236 »

Hello everyone,
I would like to announce a new Zeppelin update https://github.com/jszczerbinsky/zeppel ... tag/v0.2.0
I've fixed some bugs, that made the search instable, I've also added some new pruning techniques and adapted history heuristic for sorting silent moves.
User avatar
Ras
Posts: 2735
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: Zeppelin Chess Engine

Post by Ras »

Moderation: Moved the topic from Engine Origins to this forum.
Rasmus Althoff
https://www.ct800.net
ChickenMan4236
Posts: 13
Joined: Wed Oct 01, 2025 8:55 pm
Location: Poland
Full name: Jakub Szczerbiński

Re: Zeppelin Chess Engine

Post by ChickenMan4236 »

Hello guys,

Thanks to moderator for moving the post :D

I would like to announce a new major update - I've implemented NNUE and trained it by self-play for 3 iterations. SPRT is saying, that the new version is around 78 ELO stronger than v0.2.0.

Check out the new update: https://github.com/jszczerbinsky/zeppel ... tag/v1.0.0
I've also created a website for Zeppelin: http://zeppelin.bot.nu/

If someone is interested about my NNUE:
I've started with material-only evaluation and created a self-play dataset, that I've then used to train the model. I've realized, that many engines use the same tools for their NNUE, for example they train it using bullet. I didn't want to use external tools, so I've created my own trainer. It's not perfect, still requires some improvement, but it does the job. My trainer uses quantization aware training, that simulates all integer operations, that are used in NNUE C implementation. The target value for evaluation is a linear interpolation between engine's current evaluation and game result. After training the model, I've repeated the process 2 times, each time with a newly-trained evaluation function. After just 3 iterations it became visibly stronger than the previous version! :D
User avatar
Graham Banks
Posts: 45320
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Zeppelin Chess Engine

Post by Graham Banks »

Around 2300 Elo now?
gbanksnz at gmail.com
ChickenMan4236
Posts: 13
Joined: Wed Oct 01, 2025 8:55 pm
Location: Poland
Full name: Jakub Szczerbiński

Re: Zeppelin Chess Engine

Post by ChickenMan4236 »

No idea to be honest. According to Eric's esitmation about previous versions, it's really possible, that it's over 2000ELO now, but I've never checked Zeppelin's performance against other engines on my own.
ChickenMan4236
Posts: 13
Joined: Wed Oct 01, 2025 8:55 pm
Location: Poland
Full name: Jakub Szczerbiński

Re: Zeppelin Chess Engine

Post by ChickenMan4236 »

Another release, check out Zeppelin v1.1.0
https://github.com/jszczerbinsky/zeppel ... tag/v1.1.0

I've implemented lazy updates for NNUE and managed to achieve pretty neat performance boost.
User avatar
Tibono
Posts: 156
Joined: Sat Aug 01, 2015 6:16 pm
Location: France
Full name: Eric Bonneau

Re: Zeppelin Chess Engine

Post by Tibono »

Thanks Jakub. Trend for v1.0.0 was slightly above 2000, not a breakthrough compared to 0.2.0, according to my tests. At least I successfully checked endgame K+R vs K was successful (not shortest path, yet mate achieved - that is what matters most).
Of course that was only a very early estimate; too early to report about - I shall run it again using 1.1.0
Regards,
Eric
User avatar
Tibono
Posts: 156
Joined: Sat Aug 01, 2015 6:16 pm
Location: France
Full name: Eric Bonneau

Re: Zeppelin Chess Engine

Post by Tibono »

A somewhat deceptive endgame from v1.1.0: after taking the lead over a strong opponent, Zeppelin playing Black reached this winning position, then efficiently reduced the distance to mate, playing most if not all best moves, but ended in a 3-rep draw as it has been unable to finish its opponent (K+Q vs K).
[pgn][Event "Arena Tournament.at"]
[Site "Arena"]
[Date "2026.02.04"]
[Round "2"]
[White "MC Mephisto Berlin Pro 68020"]
[Black "Zeppelin 1.1.0 NNUE"]
[Result "1/2-1/2"]
[WhiteElo "2318"]
[BlackElo "2026"]
[EventDate "2026.02.04"]
[FEN "5NK1/7P/3k4/3q4/8/8/8/8 w - - 8 83"]
[SetUp "1"]
[BlackType "program"]
[Opening "Sicilian"]
[Termination "normal"]
[Time "13:11:07"]
[TimeControl "40/600:40/600:40/600"]
[Variation "Dragon, Classical Attack, 6.Be3 Bg7 7.Be2 O-O 8.O-O"]
[WhiteType "program"]

83.Kg7 Qe5+ {(Qd5e5+ Kg7h6 Qe5e3+ Kh6g7 Qe3e7+ Kg7g8 Qe7g5+) +5.01/20 49} 84.Kg8 Qg5+ {(Qe5g5+ Kg8f7 Qg5h6 Kf7g8 Kd6e7 h7h8Q Qh6xf8+ Kg8h7 Qf8f5+ Kh7h6) +5.25/21 44} 85.Kf7 Qh6 {(Qg5h6 Kf7g8 Kd6e7 h7h8Q Qh6xf8+ Kg8h7 Qf8f5+ Kh7h6) +5.73/21 40} 86.Kg8 Ke7 {(Kd6e7 h7h8Q Qh6xf8+ Kg8h7 Qf8f5+) +6.73/20 36} 87.h8=Q Qxf8+ {(Qh6xf8+ Kg8h7 Qf8f5+ Kh7h6 Qf5h3+) +9.24/21 32} 88.Kh7 Qf5+ {(Qf8f5+) +M7/1 0} 89.Kh6 Qh3+ {(Qf5h3+) +M7/1 0} 90.Kg7 Qg3+ {(Qh3g3+) +M7/1 0} 91.Kh6 Qh4+ {(Qg3h4+) +M5/1 0} 92.Kg6 Qxh8 {(Qh4xh8) +M7/1 0} 93.Kf5 Qd4 {(Qh8d4) +M5/1 0} 94.Kg5 Ke6 {(Ke7e6) +M5/1 0} 95.Kh6 Qe3+ {(Qd4e3+) +M5/1 0} 96.Kh7 Qd4 {(Qe3d4) +M5/1 0} 97.Kh6 Ke7 {(Ke6e7) +M5/1 0} 98.Kg5 Kd6 {(Ke7d6) +M5/1 0} 99.Kf5 Kd5 {(Kd6d5) +M5/1 0} 100.Kg5 Ke5 {(Kd5e5) +M5/4 0} 101.Kg6 Ke6 {(Ke5e6) +M5/1 0} 102.Kh6 {3-fold repetition} 1/2-1/2

[/pgn]