Gaia 4.1.0 — Back after 20 years

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

Moderator: Ras

j_romang
Posts: 83
Joined: Mon May 16, 2011 2:52 am

Gaia 4.1.0 — Back after 20 years

Post by j_romang »

Hi everyone,

I'm happy to announce the release of Gaia 4.1.0, available here:
https://github.com/jromang/gaiachess/releases/tag/4.1.0

Some of you may remember Gaia from the early 2000s — a small French engine written in C by David Rabel and myself between 2003 and 2006. After almost 20 years of silence, Gaia is back, completely rewritten from scratch in Rust.

What's in there:

NNUE evaluation (HalfKA with compact threat features, 13 king buckets, 8 output buckets, AVX-512)
PVS with aspiration windows, NMP, LMR, Singular Extensions, RFP/FP/LMP, SEE pruning, History Pruning, ProbCut, IIR
Full move ordering: killers, countermove, butterfly/capture/continuation/pawn history
Correction history (pawn, non-pawn, minor piece, continuation)
Lazy SMP, Syzygy tablebases, pondering, Multi-PV
Full UCI support (heavily untested :wink: )

Binaries are provided for windows x86-64 (AVX-512). The NNUE network is embedded in the binary.

About the source code: The code is not yet published — it's not mature enough to my taste. I want to clean it up properly before making it public. It will be open-sourced in the future.

I'd be curious to see where it lands on rating lists. Feedback and testing are very welcome!

Jean-François
User avatar
Graham Banks
Posts: 45411
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Gaia 4.1.0 — Back after 20 years

Post by Graham Banks »

Welcome back. :)

Can you please give more information about the NNUE?
Also estimated strength.

The Windows binary won't run on my 5950x. Could you please provide an avx2/bmi2 compile?
gbanksnz at gmail.com
j_romang
Posts: 83
Joined: Mon May 16, 2011 2:52 am

Re: Gaia 4.1.0 — Back after 20 years

Post by j_romang »

Thanks! Great to be back. :)

NNUE: HalfKA architecture (13 king buckets, 14,657 input features including compact threat/mobility features), 768 → SCReLU+pairwise → 32 → 64 → 1, 8 output buckets. AVX-512/AVX2/scalar compile-time dispatch, sparse L1, Finny table cache. Trained on only one generation for now :)

Strength: Honestly, I don't know — I haven't submitted to any rating lists yet, only did self-play SPRT testing. It should be significantly stronger than Gaia 3.5 from 2006 though. :)

AVX2 build: Sorry about that! The 5950X supports AVX2 but not AVX-512. I've added an AVX2/BMI2 build to the GitHub release, it should work fine on your Ryzen now.
User avatar
Graham Banks
Posts: 45411
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Gaia 4.1.0 — Back after 20 years

Post by Graham Banks »

j_romang wrote: Sun Feb 22, 2026 10:15 pm Thanks! Great to be back. :)

NNUE: HalfKA architecture (13 king buckets, 14,657 input features including compact threat/mobility features), 768 → SCReLU+pairwise → 32 → 64 → 1, 8 output buckets. AVX-512/AVX2/scalar compile-time dispatch, sparse L1, Finny table cache. Trained on only one generation for now :)

Strength: Honestly, I don't know — I haven't submitted to any rating lists yet, only did self-play SPRT testing. It should be significantly stronger than Gaia 3.5 from 2006 though. :)

AVX2 build: Sorry about that! The 5950X supports AVX2 but not AVX-512. I've added an AVX2/BMI2 build to the GitHub release, it should work fine on your Ryzen now.
Thanks for the extra exe. :)

You've trained your own NNUE and not borrowed one was my main concern.
gbanksnz at gmail.com
BrendanJNorman
Posts: 2593
Joined: Mon Feb 08, 2016 12:43 am
Full name: Brendan J Norman

Re: Gaia 4.1.0 — Back after 20 years

Post by BrendanJNorman »

j_romang wrote: Sun Feb 22, 2026 9:10 pm Hi everyone,

I'm happy to announce the release of Gaia 4.1.0, available here:
https://github.com/jromang/gaiachess/releases/tag/4.1.0

Some of you may remember Gaia from the early 2000s — a small French engine written in C by David Rabel and myself between 2003 and 2006. After almost 20 years of silence, Gaia is back, completely rewritten from scratch in Rust.

What's in there:

NNUE evaluation (HalfKA with compact threat features, 13 king buckets, 8 output buckets, AVX-512)
PVS with aspiration windows, NMP, LMR, Singular Extensions, RFP/FP/LMP, SEE pruning, History Pruning, ProbCut, IIR
Full move ordering: killers, countermove, butterfly/capture/continuation/pawn history
Correction history (pawn, non-pawn, minor piece, continuation)
Lazy SMP, Syzygy tablebases, pondering, Multi-PV
Full UCI support (heavily untested :wink: )

Binaries are provided for windows x86-64 (AVX-512). The NNUE network is embedded in the binary.

About the source code: The code is not yet published — it's not mature enough to my taste. I want to clean it up properly before making it public. It will be open-sourced in the future.

I'd be curious to see where it lands on rating lists. Feedback and testing are very welcome!

Jean-François
Legendary engine.

I remember Gaia 2.2 was a big favorite because it had this stodgy positional style like an old master haha.

Good for human opponents.

Would have been interesting to train a NNUE on this old Gaia's games and see what comes from it.

Rewritten is cool too though. Will have a look. Thanks and welcome back! 8-)
j_romang
Posts: 83
Joined: Mon May 16, 2011 2:52 am

Re: Gaia 4.1.0 — Back after 20 years

Post by j_romang »

Thanks, that really means a lot! I'm genuinely surprised and happy to see someone remembers Gaia from that era — we're talking over 20 years ago, that's ancient history in computer chess terms! 😄
Gaia 2.2 and its "stodgy old master" style — that's a perfect description honestly, I love it.
That's actually a really cool idea about training a NNUE on old Gaia games — kind of distilling that old-school DNA into a modern framework. Who knows, maybe that's a fun experiment for the future!
In any case, I hope you enjoy this new version. It's a very different beast under the hood, but the spirit is still there. Let me know what you think if you give it a spin — any feedback is welcome!
Cheers,
Jean-François
User avatar
Gabor Szots
Posts: 1518
Joined: Sat Jul 21, 2018 7:43 am
Location: Budapest, Hungary
Full name: Gabor Szots

Re: Gaia 4.1.0 — Back after 20 years

Post by Gabor Szots »

Hi Jean-Francois,

That's incredible news! Gaia 3.5 is a regular participant of my tournaments, it's lucky that multiple changes in CPU and operation system have not made it unusable.
l am looking forward to testing the new one.
Gabor Szots
CCRL testing group
User avatar
Werner
Posts: 3024
Joined: Wed Mar 08, 2006 10:09 pm
Location: Germany
Full name: Werner Schüle

Re: Gaia 4.1.0 — Back after 20 years

Post by Werner »

We found a bug: Engine cannot mate with KQ - K:
[pgn][Event "Div4 5s+600ms"]
[Site "isle of Rügen"]
[Date "2026.02.22"]
[Round "1"]
[White "Gaia 4.1.0"]
[Black "Sirius 9.0"]
[Result "1/2-1/2"]
[ECO "D35"]
[Opening "Damengambit"]
[Time "23:38:44"]
[Variation "Abtauschvariante, 5.Nf3"]
[TimeControl "5+0"]
[Termination "normal"]
[PlyCount "317"]
[WhiteType "program"]
[BlackType "program"]

1. d4 {+0.57/15 1} Nf6 2. c4 {+0.37/15 0} e6 3. Nf3 {+0.47/15 0} d5 4. cxd5
{+0.41/15 1} exd5 5. Nc3 {+0.57/15 0} Bd6 6. Bg5 {+0.79/14 0} c6 7. e3
{+0.83/14 0} h6 8. Bh4 {+1.01/14 0} Bf5 9. Qb3 {+1.27/15 0} b6 10. Ne5
{+0.98/12 0} O-O 11. Be2 {+0.64/14 1} Qe7 12. f4 {+1.10/12 0} b5 13. O-O
{+1.59/13 0} a5 14. Qd1 {+1.39/12 0} Qe6 15. Rc1 {+1.22/14 0} Nbd7 16. g4
{+2.85/15 0} Bh7 17. f5 {+4.63/15 0} Qe8 18. Nxc6 {+5.11/13 0} Qxe3+ 19.
Kg2 {+4.71/14 0} h5 20. g5 {+3.44/13 1} b4 21. Rf3 {+2.27/15 0} Ng4 22. Nb5
{+2.62/16 0} Bf4 23. Rxe3 {+1.89/17 0} Nxe3+ 24. Kf3 {+2.02/14 0} Nxd1 25.
Kxf4 {+2.34/17 0} Nxb2 26. Nc7 {+1.76/17 0} Rac8 27. Ne7+ {+4.98/15 0} Kh8
28. Nxc8 {+3.55/16 0} Rxc8 29. Rc2 {+3.62/17 0} Nb8 30. Bf2 {+4.33/14 1}
Na4 31. Bd3 {+4.52/15 0} Nb6 32. Rc5 {+4.91/14 0} N8d7 33. Ba6 {+5.57/17 0}
Nxc5 34. dxc5 {+5.19/16 0} Rxc7 35. cxb6 {+5.97/18 0} Re7 36. b7 {+6.06/17
0} Re4+ 37. Kf3 {+6.34/15 0} Re8 38. Ba7 {+6.35/16 0} Bxf5 39. Bb5
{+6.44/16 0} Rf8 40. b8=Q {+6.76/16 0} Rxb8 41. Bxb8 {+6.61/14 0} Bb1 42.
Bc7 {+7.12/15 0} Bxa2 43. Bxa5 {+7.58/15 0} b3 44. Bc3 {+6.75/18 0} Bb1 45.
Kf4 {+6.64/23 0} Kh7 46. Bb2 {+6.64/28 0} Kg6 47. Bc6 {+6.64/30 0} Be4 48.
Ba1 {+6.64/27 0} h4 49. Bd7 {+7.74/20 0} Bd3 50. Be8 {+7.27/24 0} Be2 51.
Bc6 {+7.65/22 0} Bc4 52. Bd4 {+7.58/22 0} Kh7 53. Ba4 {+7.57/21 0} Kg8 54.
Bb2 {+7.59/21 0} d4 55. Bxd4 {+8.10/19 0} f6 56. gxf6 {+8.56/18 0} gxf6 57.
Bxf6 {+9.93/19 0} Kf7 58. Bb2 {+11.40/16 0} Be6 59. Bc6 {+11.14/20 0} Kg6
60. Be8+ {+10.01/23 0} Kh6 61. Bb5 {+10.01/23 0} Bh3 62. Bc4 {+10.46/24 0}
Kg6 63. Bxb3 {+10.52/26 0} Kh6 64. Bc2 {+10.52/26 0} Kh5 65. Bf6 {+10.52/27
0} Bg2 66. Bd3 {+10.52/27 0} h3 67. Be5 {+10.07/24 0} Bd5 68. Bb5
{+11.58/28 0} Kg6 69. Be8+ {+11.58/33 0} Kh7 70. Kf5 {+11.58/34 0} Kg8 71.
Kf6 {+11.58/32 0} Kf8 72. Bd7 {+11.58/28 0} Bf3 73. Be6 {+11.91/32 0} Ke8
74. Bxh3 {+11.91/29 2} Be2 75. Bc7 {+19.43/22 1} Bd3 76. Be6 {+20.89/24 0}
Ba6 77. h4 {+20.89/20 0} Bf1 78. h5 {+M461/16 0} Bd3 79. Bg4 {+M458/17 0}
Be4 80. Bf5 {+M458/22 0} Bd5 81. Bf4 {+M458/19 1} Kd8 82. h6 Bg8 83. Bd6
{+M457/22 0} Ke8 84. Bd7+ {+M459/16 0} Kxd7 85. Kg7 {+M466/23 0} Bc4 86. h7
{+11.64/14 0} Kxd6 87. Kh6 {+M457/15 0} Bd3 88. h8=Q {+9.43/16 0} Kd5 89.
Qc3 {+9.77/21 0} Ke4 90. Kh5 {+M457/18 1} Be2+ 91. Kh4 {+212.39/17 0} Bf3
92. Qc6+ {+212.39/11 0} Ke3 93. Qc3+ {+166.49/16 0} Kf4 94. Kh3 Be4 95.
Qf6+ {+168.46/16 0} Ke3 96. Kg3 {+99.54/17 1} Bc2 97. Kg2 Kd3 98. Qb2
{+99.54/17 0} Bd1 99. Kg3 {+99.54/15 0} Bc2 100. Qb4 {+73.91/15 0} Ke3 101.
Qc3+ {+M471/19 0} Bd3 102. Qe5+ {+86.26/15 0} Be4 103. Qc5+ {+M470/18 0}
Kd3 104. Kf2 {+M454/20 0} Bh1 105. Qe3+ {+M453/21 0} Kc2 106. Qe6 {+M460/18
0} Kb2 107. Qe2+ {+M462/16 0} Ka3 108. Qc4 {+M458/20 0} Kb2 109. Ke1 Ka3
110. Kf2 {+M456/15 0} Bb7 111. Qc5+ {+M454/21 0} Ka4 112. Qa7+ {+M454/17 0}
Kb5 113. Qxb7+ {+M453/20 0} Kc5 114. Qa6 {+M448/18 0} Kd5 115. Qg6
{+M448/18 0} Ke5 116. Ke3 {+M448/17 1} Kd5 117. Kd2 Ke5 118. Ke3 {+M448/17
0} Kd5 119. Kd2 Ke5 120. Qa6 {+M448/16 0} Kd5 121. Qb5+ {+M448/17 0} Kd6
122. Qb8+ {+M448/15 0} Ke7 123. Qb7+ {+M448/16 0} Kd6 124. Kc1 Ke5 125. Qb6
{+M448/16 0} Kd5 126. Qg6 {+M448/16 1} Ke5 127. Kb1 Kf4 128. Qd6+ {+M448/16
0} Ke4 129. Kc2 {+M448/14 0} Ke3 130. Qd3+ {+M448/15 0} Kf4 131. Qh3
{+M448/17 0} Ke5 132. Kb1 Kd6 133. Qh6+ {+M448/16 0} Ke5 134. Ka1 Kf5 135.
Qb6 {+M448/17 0} Kg5 136. Kb2 {+M448/18 1} Kf5 137. Ka1 Ke5 138. Qa5+
{+M448/17 0} Kf6 139. Kb1 Kg6 140. Qd5 {+M448/18 0} Kf6 141. Qd6+ {+M448/18
0} Kg7 142. Ka1 Kh7 143. Qe7+ {+M448/19 0} Kh6 144. Qf6+ {+M455/17 0} Kh5
145. Qf5+ {+M448/20 0} Kh6 146. Kb1 {+M448/20 1} Kg7 147. Ka1 Kh8 148. Qd7
{+M472/20 0} Kg8 149. Kb1 Kf8 150. Qh7 {+M472/18 1} Ke8 151. Kb2 {+M13/24
0} Kf8 152. Qd7 {+262.76/17 0} Kg8 153. Kc3 {+M5/35 0} Kh8 154. Kd4 {+M4/51
0} Kg8 155. Ke5 {+M3/77 1} Kh8 156. Kf6 {+M2/77 1} Kg8 157. Ke5 Kh8 158.
Kf6 {+M2/78 1} Kg8 159. Ke5 {Stellungswiederholung} 1/2-1/2[/pgn]
Werner
User avatar
Sylwy
Posts: 5082
Joined: Fri Apr 21, 2006 4:19 pm
Location: IAȘI - the historical capital of MOLDOVA
Full name: Silvian Rucsandescu

Re: Gaia 4.1.0 — Back after 20 years

Post by Sylwy »

Werner wrote: Mon Feb 23, 2026 9:35 am We found a bug: Engine cannot mate with KQ - K:
3 men ? Syzygy enabled ? The engine can access it.
User avatar
Sylwy
Posts: 5082
Joined: Fri Apr 21, 2006 4:19 pm
Location: IAȘI - the historical capital of MOLDOVA
Full name: Silvian Rucsandescu

Re: Gaia 4.1.0 — Back after 20 years

Post by Sylwy »