Opus 5.5 smashes the 24-hour chess engine benchmark: 3463 Elo, built from scratch 24 hours!

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

Moderator: Ras

cpeters
Posts: 260
Joined: Wed Feb 17, 2021 7:44 pm
Full name: Christian Petersen

Re: Opus 5.5 smashes the 24-hour chess engine benchmark: 3463 Elo, built from scratch 24 hours!

Post by cpeters »

Code: Select all

2026-09-22 16:20 | chessprogramming.org

Code: Select all

general knowledge, not fetched | standard algorithm ideas, no code
What (files/html) did it fetch and reported it as not fetched (because it knew)? I don't understand. Why the 'pipe'? Would it be likely boil down to have grepped something from a html-file - 'standard algorithm ideas, no code' and looked at it (at real time) and then processed it etc...? It would have to look at everything and then process it - to comply with your demands (to not use this/that), wouldn't it?

Maybe I'm to dumb to understand the workflow. Not that it matters.
Do you trust (Доверяй, но проверяй!) the reported data by them bots?

greetings.
Bart Weststrate
Posts: 85
Joined: Fri Mar 18, 2016 3:34 pm

Re: Opus 5.5 smashes the 24-hour chess engine benchmark: 3463 Elo, built from scratch 24 hours!

Post by Bart Weststrate »

This could be a world record of elo per size of the net. Are there other strong entities with a 392 KB simple net?
User avatar
jshriver
Posts: 1406
Joined: Wed Mar 08, 2006 9:41 pm
Location: Morgantown, WV, USA

Re: Opus 5.5 smashes the 24-hour chess engine benchmark: 3463 Elo, built from scratch 24 hours!

Post by jshriver »

Steve Maughan wrote: ↑Thu Sep 24, 2026 2:30 am a folder of rules
Curious what were the fules?
User avatar
Steve Maughan
Posts: 1379
Joined: Wed Mar 08, 2006 8:28 pm
Location: Florida, USA

Re: Opus 5.5 smashes the 24-hour chess engine benchmark: 3463 Elo, built from scratch 24 hours!

Post by Steve Maughan »

The rules are in the "claude.md" file:

https://github.com/stevemaughan/chess-e ... CLAUDE.md

— Steve
http://www.chessprogramming.net - Juggernaut & Maverick Chess Engine
Peter Berger
Posts: 849
Joined: Thu Mar 09, 2006 2:56 pm

Re: Opus 5.5 smashes the 24-hour chess engine benchmark: 3463 Elo, built from scratch 24 hours!

Post by Peter Berger »

Steve Maughan wrote: ↑Thu Sep 24, 2026 2:13 pm The engines seem to be somewhat different. But I would say they are play quite a boring game — especially Opus 5.5. In the past I have drooled over the play of engines like The King, Chess Tiger, Junior and even Stockfish. They all have a unique and interesting style. There's none of that with these engines.

— Steve
It's a good guess that only a few people have even bothered to look at many of the LLM games at more serious, human-compatible time controls (meaning a speed at which humans can actually follow the games live).

I could drool over the following game. 12...Bg6 and 19...Na8 look somewhat fishy at first sight, but Stockfish says: no big deal, sir.

Other than that, this looks like a strategic masterpiece to me: the way the knights outmanoeuvre the bishops here, in a position where it is not at all obvious that the knights are even better in the first place.

(In case anyone wonders: Opus is pondering the "Fritz way" here — the interface feeds the second move of the main line to the engine and lets it think. If there is no ponder hit, it takes the move back. It looks just like normal pondering.)

Peter

[pgn]

[Event "Lang 120min+10sek"]
[Site "Berlin"]
[Date "2026.10.03"]
[Round "?"]
[White "Crafty 25.6"]
[Black "Opus 5.5 chess 24hrs"]
[Result "0-1"]
[ECO "E46"]
[PlyCount "204"]
[TimeControl "7200+10"]

{4096MB, DESKTOP-8OCGGEO} 1. d4 {[%emt 0:00:00]} Nf6 {[%eval 13,36] [%emt 0:06:55]} 2. c4 {[%emt 0:00:06]} e6 {[%eval 20,36] [%emt 0:04:17]} 3. Nc3 {[%emt 0:00:07] (Sf3)} Bb4 {[%eval 20,36] [%emt 0:04:46]} 4. e3 {[%emt 0:00:07]} O-O {[%eval 10,35] [%emt 0:02:48]} 5. Nge2 {[%emt 0:00:07] (Ld3)} d5 {[%eval 9,34] [%emt 0:02:17]} 6. a3 {[%emt 0:00:06]} Be7 {[%eval 6,36] [%emt 0:06:27]} 7. cxd5 {[%emt 0:00:08] (Sf4)} exd5 {[%eval 0,35] [%emt 0:01:56]} 8. g3 {[%emt 0:00:08] (Sg3)} Nbd7 {[%eval -28,38] [%emt 0:04:58]} 9. Bg2 {[%emt 0:00:08]} Nb6 {[%eval -28,40] [%emt 0:02:00]} 10. O-O {[%emt 0:00:06]} Re8 {[%eval -26,40] [%emt 0:06:19]} 11. b3 {[%emt 0:00:07] (Sf4)} Bf5 {[%eval -33,39] [%emt 0:02:24]} 12. f3 {[%emt 0:03:07] (a4)} Bg6 {[%eval -22,32] [%emt 0:03:12]} 13. Nf4 {[%emt 0:07:11]} c5 {[%eval 0,34] [%emt 0:00:01]} 14. Bh3 {[%emt 0:04:21] (Sce2)} a6 {[%eval -18,33] [%emt 0:03:03]} 15. Nxg6 {[%emt 0:09:28] (Sce2)} hxg6 {[%eval -35,35] [%emt 0:02:07]} 16. Ra2 {[%emt 0:16:59]} Bd6 {[%eval -24,38] [%emt 0:00:01]} 17. Rc2 {[%emt 0:01:46] (Kg2)} Qe7 {[%eval -50,35] [%emt 0:02:02]} 18. a4 {[%emt 0:00:50]} Rad8 {[%eval -32,34] [%emt 0:00:54]} 19. Kh1 {[%emt 0:01:02] (Se2)} Na8 {[%eval -12,36] [%emt 0:05:22]} 20. Ne2 {[%emt 0:02:03]} Nb6 {[%eval -21,38] [%emt 0:01:02]} 21. dxc5 {[%emt 0:00:34] (Kg2)} Bxc5 {[%eval -43,38] [%emt 0:01:17]} 22. Nd4 {[%emt 0:00:23]} Nbd7 {[%eval -22,40] [%emt 0:07:55]} 23. Bd2 {[%emt 0:00:06] (Lxd7)} Ne5 {[%eval -57,35] [%emt 0:01:05]} 24. Bc3 {[%emt 0:03:03] (Da1)} Nc6 {[%eval -63,32] [%emt 0:01:17]} 25. Re1 {[%emt 0:01:42] (Tff2)} Bxd4 {[%eval -58,38] [%emt 0:01:25]} 26. exd4 {[%emt 0:02:53]} Qa3 {[%eval -39,39] [%emt 0:00:39]} 27. Rce2 {[%emt 0:01:07]} Rxe2 {[%eval -33,37] [%emt 0:00:01]} 28. Rxe2 {[%emt 0:01:27]} b5 {[%eval -25,37] [%emt 0:01:13]} 29. axb5 {[%emt 0:01:27]} axb5 {[%eval -31,38] [%emt 0:00:01]} 30. Qc2 {[%emt 0:01:17] (Lb2)} Qd6 {[%eval -62,32] [%emt 0:01:11]} 31. Bb2 {[%emt 0:01:30]} Nh7 {[%eval -55,37] [%emt 0:00:01]} 32. Qd3 {[%emt 0:03:02] (Dc1)} Ng5 {[%eval -78,38] [%emt 0:01:06]} 33. Bf1 {[%emt 0:01:51]} b4 {[%eval -73,38] [%emt 0:00:01]} 34. Bg2 {[%emt 0:01:30]} Ra8 {[%eval -78,36] [%emt 0:00:16]} 35. Qd2 {[%emt 0:00:46] (De3)} Qd8 {[%eval -74,40] [%emt 0:01:22]} 36. Qc1 {[%emt 0:01:53]} Na5 {[%eval -74,43] [%emt 0:00:01]} 37. Qd1 {[%emt 0:02:07] (De3)} Nh7 {[%eval -72,38] [%emt 0:01:07]} 38. Bf1 {[%emt 0:00:24] (Lh3)} Nf8 {[%eval -74,36] [%emt 0:01:58]} 39. Qd3 {[%emt 0:01:43]} Qd7 {[%eval -77,41] [%emt 0:00:01]} 40. Kg1 {[%emt 0:07:09] (Tf2)} Nc6 {[%eval -74,42] [%emt 0:01:18]} 41. Rc2 {[%emt 0:00:45] (Tf2)} Qe6 {[%eval -65,40] [%emt 0:01:55]} 42. Kg2 {[%emt 0:00:06] (Te2)} Qf6 {[%eval -74,38] [%emt 0:01:42]} 43. Be2 {[%emt 0:01:06] (Kg1)} Ne7 {[%eval -105,33] [%emt 0:01:07]} 44. f4 {[%emt 0:01:13] (Kf2)} Qe6 {[%eval -119,36] [%emt 0:02:22]} 45. Bf3 {[%emt 0:00:44]} Nf5 {[%eval -129,32] [%emt 0:00:04]} 46. Re2 {[%emt 0:00:47]} Qd7 {[%eval -116,36] [%emt 0:00:03]} 47. Re5 {[%emt 0:00:28] (h4)} Ra5 {[%eval -160,33] [%emt 0:01:19]} 48. Kg1 {[%emt 0:01:42] (h4)} Qc6 {[%eval -141,32] [%emt 0:00:49]} 49. Qd2 {[%emt 0:01:14] (Te2)} Nd7 {[%eval -228,42] [%emt 0:00:42]} 50. Re2 {[%emt 0:00:07] (Te8+)} Nf6 {[%eval -228,47] [%emt 0:00:56]} 51. Qd3 {[%emt 0:00:17]} Ra2 {[%eval -228,55] [%emt 0:00:24]} 52. Rc2 {[%emt 0:00:06]} Qa8 {[%eval -228,56] [%emt 0:00:40]} 53. g4 {[%emt 0:00:32] (Te2)} Nh4 {[%eval -295,31] [%emt 0:00:53]} 54. Be2 {[%emt 0:02:30] (Ld1)} Ne4 {[%eval -271,36] [%emt 0:00:43]} 55. Bf1 {[%emt 0:00:23]} Qd8 {[%eval -324,35] [%emt 0:00:27]} 56. Bg2 {[%emt 0:00:40] (Le2)} Nxg2 {[%eval -409,32] [%emt 0:00:54]} 57. Kxg2 {[%emt 0:00:06]} Ra8 {[%eval -437,34] [%emt 0:00:50]} 58. Qf3 {[%emt 0:00:43] (Te2)} Rc8 {[%eval -490,33] [%emt 0:00:46]} 59. Rxc8 {[%emt 0:00:44] (De2)} Qxc8 {[%eval -551,36] [%emt 0:00:37]} 60. Qd1 {[%emt 0:00:09] (De2)} Qe6 {[%eval -593,32] [%emt 0:01:05]} 61. Qe2 {[%emt 0:00:21]} Qf6 {[%eval -602,34] [%emt 0:00:39]} 62. Qf3 {[%emt 0:00:06]} Qd6 {[%eval -639,31] [%emt 0:00:34]} 63. Qf1 {[%emt 0:00:24]} Nf6 {[%eval -668,32] [%emt 0:00:40]} 64. Bc1 {[%emt 0:00:51]} Qe6 {[%eval -678,32] [%emt 0:00:01]} 65. Qf3 {[%emt 0:00:35]} Qc8 {[%eval -687,30] [%emt 0:00:02]} 66. Qd1 {[%emt 0:00:23]} Qc3 {[%eval -711,29] [%emt 0:00:13]} 67. f5 {[%emt 0:00:24]} gxf5 {[%eval -725,27] [%emt 0:00:20]} 68. gxf5 {[%emt 0:00:29]} Qa1 {[%eval -749,27] [%emt 0:00:22]} 69. Qd2 {[%emt 0:00:40]} Qb1 {[%eval -843,27] [%emt 0:00:15]} 70. Qe3 {[%emt 0:00:28]} Qc2+ {[%eval -873,28] [%emt 0:00:13]} 71. Kg1 {[%emt 0:00:33]} Qd1+ {[%eval -961,29] [%emt 0:01:35]} 72. Kg2 {[%emt 0:00:38]} Qg4+ {[%eval -984,26] [%emt 0:00:06]} 73. Kh1 {[%emt 0:00:08]} Qxf5 {[%eval -1004,27] [%emt 0:00:34]} 74. Qe2 {[%emt 0:00:12] (Df4)} Qh3 {[%eval -1084,25] [%emt 0:00:41]} 75. Be3 {[%emt 0:00:20]} Ne4 {[%eval -1316,27] [%emt 0:00:56]} 76. Kg1 {[%emt 0:00:14]} Nc3 {[%eval -1361,27] [%emt 0:00:22]} 77. Qd2 {[%emt 0:00:46] (De1)} Qf3 {[%eval -1427,34] [%emt 0:00:29]} 78. Bf2 {[%emt 0:00:14] (Df2)} Ne4 {[%eval -2538,26] [%emt 0:00:35]} 79. Qe3 {[%emt 0:00:13]} Qxf2+ {[%eval -2978,25] [%emt 0:00:30]} 80. Qxf2 {[%emt 0:00:23]} Nxf2 {[%eval -3309,30] [%emt 0:00:36]} 81. Kxf2 {[%emt 0:00:06]} g5 {[%eval -3310,27] [%emt 0:00:23]} 82. Kg3 {[%emt 0:00:05] (Ke3)} Kh7 {[%eval -3331,27] [%emt 0:04:34]} 83. Kg4 {[%emt 0:00:05]} Kg6 {[%eval -4608,21] [%emt 0:00:15]} 84. Kf3 {[%emt 0:00:05] (Kg3)} Kh5 {[%eval -4608,22] [%emt 0:00:32]} 85. Kg3 {[%emt 0:00:07] (Kg2)} f5 {[%eval -4609,26] [%emt 0:01:12]} 86. Kh3 {[%emt 0:00:05] (Kf2)} f4 {[%eval -4633,28] [%emt 0:00:25]} 87. Kg2 {[%emt 0:00:05]} Kh4 {[%eval -4657,28] [%emt 0:00:19]} 88. h3 {[%emt 0:00:15] (Kf2)} f3+ {[%eval -4684,25] [%emt 0:00:44]} 89. Kxf3 {[%emt 0:00:12] (Kh2)} Kxh3 {[%eval -32733,41] [%emt 0:00:19]} 90. Ke3 {[%emt 0:00:06] (Kf2)} g4 {[%eval -32739,40] [%emt 0:00:21]} 91. Kf4 {[%emt 0:00:05]} g3 {[%eval -32741,41] [%emt 0:00:17]} 92. Ke5 {[%emt 0:00:06]} g2 {[%eval -32743,41] [%emt 0:00:21]} 93. Kxd5 {[%emt 0:00:06] (Kd6)} g1=Q {[%eval -32745,39] [%emt 0:00:20]} 94. Kc5 {[%emt 0:00:07]} Kg4 {[%eval -32747,41] [%emt 0:00:38]} 95. Kc4 {[%emt 0:00:11]} Kf5 {[%eval -32749,45] [%emt 0:00:29]} 96. d5 {[%emt 0:00:12] (Kxb4)} Ke4 {[%eval -32751,57] [%emt 0:00:40]} 97. d6 {[%emt 0:00:11] (Kxb4)} Qd4+ {[%eval -32753,73] [%emt 0:00:43]} 98. Kb5 {[%emt 0:00:06]} Qxd6 {[%eval -32755,81] [%emt 0:00:34]} 99. Ka4 {[%emt 0:00:06] (Kc4)} Kd5 {[%eval -32759,124] [%emt 0:00:00]} 100. Kb5 {[%emt 0:00:05]} Qb8+ {[%eval -32761,124] [%emt 0:00:00]} 101. Ka4 {[%emt 0:00:05] (Ka6)} Kc6 {[%eval -32763,124] [%emt 0:00:00]} 102. Ka5 {[%emt 0:00:05]} Qb5# {[%eval -32765,124] [%emt 0:00:00]} 0-1



[/pgn]
syzygy
Posts: 6057
Joined: Tue Feb 28, 2012 11:56 pm

Re: Opus 5.5 smashes the 24-hour chess engine benchmark: 3463 Elo, built from scratch 24 hours!

Post by syzygy »

Impressive, but the source code shows many very close similarities to Stockfish.

For example, SF's see_ge():
https://github.com/official-stockfish/S ... 1389-L1492

Opus 5.5's see_ge():
https://github.com/stevemaughan/opus-5. ... #L371-L416

These two implementations seem to be completely identical.
User avatar
Steve Maughan
Posts: 1379
Joined: Wed Mar 08, 2006 8:28 pm
Location: Florida, USA

Re: Opus 5.5 smashes the 24-hour chess engine benchmark: 3463 Elo, built from scratch 24 hours!

Post by Steve Maughan »

syzygy wrote: ↑Sat Oct 03, 2026 3:03 pm Impressive, but the source code shows many very close similarities to Stockfish.

For example, SF's see_ge():
https://github.com/official-stockfish/S ... 1389-L1492

Opus 5.5's see_ge():
https://github.com/stevemaughan/opus-5. ... #L371-L416

These two implementations seem to be completely identical.
This is interesting. They are certainly close. It's quite a tight loop and tight logic. Do other engines implement in a completely different way?

I'm not being critical but did you use AI to find this?

— Steve
http://www.chessprogramming.net - Juggernaut & Maverick Chess Engine
User avatar
towforce
Posts: 13344
Joined: Thu Mar 09, 2006 12:57 am
Location: Birmingham UK
Full name: Graham Laight

Re: Opus 5.5 smashes the 24-hour chess engine benchmark: 3463 Elo, built from scratch 24 hours!

Post by towforce »

Peter Berger wrote: ↑Sat Oct 03, 2026 2:00 pmIt's a good guess that only a few people have even bothered to look at many of the LLM games at more serious, human-compatible time controls (meaning a speed at which humans can actually follow the games live).

I could drool over the following game. 12...Bg6 and 19...Na8 look somewhat fishy at first sight, but Stockfish says: no big deal, sir.

Other than that, this looks like a strategic masterpiece to me: the way the knights outmanoeuvre the bishops here, in a position where it is not at all obvious that the knights are even better in the first place.

(In case anyone wonders: Opus is pondering the "Fritz way" here — the interface feeds the second move of the main line to the engine and lets it think. If there is no ponder hit, it takes the move back. It looks just like normal pondering.)

Peter

[pgn]

[Event "Lang 120min+10sek"]
[Site "Berlin"]
[Date "2026.10.03"]
[Round "?"]
[White "Crafty 25.6"]
[Black "Opus 5.5 chess 24hrs"]
[Result "0-1"]
[ECO "E46"]
[PlyCount "204"]
[TimeControl "7200+10"]

{4096MB, DESKTOP-8OCGGEO} 1. d4 {[%emt 0:00:00]} Nf6 {[%eval 13,36] [%emt 0:06:55]} 2. c4 {[%emt 0:00:06]} e6 {[%eval 20,36] [%emt 0:04:17]} 3. Nc3 {[%emt 0:00:07] (Sf3)} Bb4 {[%eval 20,36] [%emt 0:04:46]} 4. e3 {[%emt 0:00:07]} O-O {[%eval 10,35] [%emt 0:02:48]} 5. Nge2 {[%emt 0:00:07] (Ld3)} d5 {[%eval 9,34] [%emt 0:02:17]} 6. a3 {[%emt 0:00:06]} Be7 {[%eval 6,36] [%emt 0:06:27]} 7. cxd5 {[%emt 0:00:08] (Sf4)} exd5 {[%eval 0,35] [%emt 0:01:56]} 8. g3 {[%emt 0:00:08] (Sg3)} Nbd7 {[%eval -28,38] [%emt 0:04:58]} 9. Bg2 {[%emt 0:00:08]} Nb6 {[%eval -28,40] [%emt 0:02:00]} 10. O-O {[%emt 0:00:06]} Re8 {[%eval -26,40] [%emt 0:06:19]} 11. b3 {[%emt 0:00:07] (Sf4)} Bf5 {[%eval -33,39] [%emt 0:02:24]} 12. f3 {[%emt 0:03:07] (a4)} Bg6 {[%eval -22,32] [%emt 0:03:12]} 13. Nf4 {[%emt 0:07:11]} c5 {[%eval 0,34] [%emt 0:00:01]} 14. Bh3 {[%emt 0:04:21] (Sce2)} a6 {[%eval -18,33] [%emt 0:03:03]} 15. Nxg6 {[%emt 0:09:28] (Sce2)} hxg6 {[%eval -35,35] [%emt 0:02:07]} 16. Ra2 {[%emt 0:16:59]} Bd6 {[%eval -24,38] [%emt 0:00:01]} 17. Rc2 {[%emt 0:01:46] (Kg2)} Qe7 {[%eval -50,35] [%emt 0:02:02]} 18. a4 {[%emt 0:00:50]} Rad8 {[%eval -32,34] [%emt 0:00:54]} 19. Kh1 {[%emt 0:01:02] (Se2)} Na8 {[%eval -12,36] [%emt 0:05:22]} 20. Ne2 {[%emt 0:02:03]} Nb6 {[%eval -21,38] [%emt 0:01:02]} 21. dxc5 {[%emt 0:00:34] (Kg2)} Bxc5 {[%eval -43,38] [%emt 0:01:17]} 22. Nd4 {[%emt 0:00:23]} Nbd7 {[%eval -22,40] [%emt 0:07:55]} 23. Bd2 {[%emt 0:00:06] (Lxd7)} Ne5 {[%eval -57,35] [%emt 0:01:05]} 24. Bc3 {[%emt 0:03:03] (Da1)} Nc6 {[%eval -63,32] [%emt 0:01:17]} 25. Re1 {[%emt 0:01:42] (Tff2)} Bxd4 {[%eval -58,38] [%emt 0:01:25]} 26. exd4 {[%emt 0:02:53]} Qa3 {[%eval -39,39] [%emt 0:00:39]} 27. Rce2 {[%emt 0:01:07]} Rxe2 {[%eval -33,37] [%emt 0:00:01]} 28. Rxe2 {[%emt 0:01:27]} b5 {[%eval -25,37] [%emt 0:01:13]} 29. axb5 {[%emt 0:01:27]} axb5 {[%eval -31,38] [%emt 0:00:01]} 30. Qc2 {[%emt 0:01:17] (Lb2)} Qd6 {[%eval -62,32] [%emt 0:01:11]} 31. Bb2 {[%emt 0:01:30]} Nh7 {[%eval -55,37] [%emt 0:00:01]} 32. Qd3 {[%emt 0:03:02] (Dc1)} Ng5 {[%eval -78,38] [%emt 0:01:06]} 33. Bf1 {[%emt 0:01:51]} b4 {[%eval -73,38] [%emt 0:00:01]} 34. Bg2 {[%emt 0:01:30]} Ra8 {[%eval -78,36] [%emt 0:00:16]} 35. Qd2 {[%emt 0:00:46] (De3)} Qd8 {[%eval -74,40] [%emt 0:01:22]} 36. Qc1 {[%emt 0:01:53]} Na5 {[%eval -74,43] [%emt 0:00:01]} 37. Qd1 {[%emt 0:02:07] (De3)} Nh7 {[%eval -72,38] [%emt 0:01:07]} 38. Bf1 {[%emt 0:00:24] (Lh3)} Nf8 {[%eval -74,36] [%emt 0:01:58]} 39. Qd3 {[%emt 0:01:43]} Qd7 {[%eval -77,41] [%emt 0:00:01]} 40. Kg1 {[%emt 0:07:09] (Tf2)} Nc6 {[%eval -74,42] [%emt 0:01:18]} 41. Rc2 {[%emt 0:00:45] (Tf2)} Qe6 {[%eval -65,40] [%emt 0:01:55]} 42. Kg2 {[%emt 0:00:06] (Te2)} Qf6 {[%eval -74,38] [%emt 0:01:42]} 43. Be2 {[%emt 0:01:06] (Kg1)} Ne7 {[%eval -105,33] [%emt 0:01:07]} 44. f4 {[%emt 0:01:13] (Kf2)} Qe6 {[%eval -119,36] [%emt 0:02:22]} 45. Bf3 {[%emt 0:00:44]} Nf5 {[%eval -129,32] [%emt 0:00:04]} 46. Re2 {[%emt 0:00:47]} Qd7 {[%eval -116,36] [%emt 0:00:03]} 47. Re5 {[%emt 0:00:28] (h4)} Ra5 {[%eval -160,33] [%emt 0:01:19]} 48. Kg1 {[%emt 0:01:42] (h4)} Qc6 {[%eval -141,32] [%emt 0:00:49]} 49. Qd2 {[%emt 0:01:14] (Te2)} Nd7 {[%eval -228,42] [%emt 0:00:42]} 50. Re2 {[%emt 0:00:07] (Te8+)} Nf6 {[%eval -228,47] [%emt 0:00:56]} 51. Qd3 {[%emt 0:00:17]} Ra2 {[%eval -228,55] [%emt 0:00:24]} 52. Rc2 {[%emt 0:00:06]} Qa8 {[%eval -228,56] [%emt 0:00:40]} 53. g4 {[%emt 0:00:32] (Te2)} Nh4 {[%eval -295,31] [%emt 0:00:53]} 54. Be2 {[%emt 0:02:30] (Ld1)} Ne4 {[%eval -271,36] [%emt 0:00:43]} 55. Bf1 {[%emt 0:00:23]} Qd8 {[%eval -324,35] [%emt 0:00:27]} 56. Bg2 {[%emt 0:00:40] (Le2)} Nxg2 {[%eval -409,32] [%emt 0:00:54]} 57. Kxg2 {[%emt 0:00:06]} Ra8 {[%eval -437,34] [%emt 0:00:50]} 58. Qf3 {[%emt 0:00:43] (Te2)} Rc8 {[%eval -490,33] [%emt 0:00:46]} 59. Rxc8 {[%emt 0:00:44] (De2)} Qxc8 {[%eval -551,36] [%emt 0:00:37]} 60. Qd1 {[%emt 0:00:09] (De2)} Qe6 {[%eval -593,32] [%emt 0:01:05]} 61. Qe2 {[%emt 0:00:21]} Qf6 {[%eval -602,34] [%emt 0:00:39]} 62. Qf3 {[%emt 0:00:06]} Qd6 {[%eval -639,31] [%emt 0:00:34]} 63. Qf1 {[%emt 0:00:24]} Nf6 {[%eval -668,32] [%emt 0:00:40]} 64. Bc1 {[%emt 0:00:51]} Qe6 {[%eval -678,32] [%emt 0:00:01]} 65. Qf3 {[%emt 0:00:35]} Qc8 {[%eval -687,30] [%emt 0:00:02]} 66. Qd1 {[%emt 0:00:23]} Qc3 {[%eval -711,29] [%emt 0:00:13]} 67. f5 {[%emt 0:00:24]} gxf5 {[%eval -725,27] [%emt 0:00:20]} 68. gxf5 {[%emt 0:00:29]} Qa1 {[%eval -749,27] [%emt 0:00:22]} 69. Qd2 {[%emt 0:00:40]} Qb1 {[%eval -843,27] [%emt 0:00:15]} 70. Qe3 {[%emt 0:00:28]} Qc2+ {[%eval -873,28] [%emt 0:00:13]} 71. Kg1 {[%emt 0:00:33]} Qd1+ {[%eval -961,29] [%emt 0:01:35]} 72. Kg2 {[%emt 0:00:38]} Qg4+ {[%eval -984,26] [%emt 0:00:06]} 73. Kh1 {[%emt 0:00:08]} Qxf5 {[%eval -1004,27] [%emt 0:00:34]} 74. Qe2 {[%emt 0:00:12] (Df4)} Qh3 {[%eval -1084,25] [%emt 0:00:41]} 75. Be3 {[%emt 0:00:20]} Ne4 {[%eval -1316,27] [%emt 0:00:56]} 76. Kg1 {[%emt 0:00:14]} Nc3 {[%eval -1361,27] [%emt 0:00:22]} 77. Qd2 {[%emt 0:00:46] (De1)} Qf3 {[%eval -1427,34] [%emt 0:00:29]} 78. Bf2 {[%emt 0:00:14] (Df2)} Ne4 {[%eval -2538,26] [%emt 0:00:35]} 79. Qe3 {[%emt 0:00:13]} Qxf2+ {[%eval -2978,25] [%emt 0:00:30]} 80. Qxf2 {[%emt 0:00:23]} Nxf2 {[%eval -3309,30] [%emt 0:00:36]} 81. Kxf2 {[%emt 0:00:06]} g5 {[%eval -3310,27] [%emt 0:00:23]} 82. Kg3 {[%emt 0:00:05] (Ke3)} Kh7 {[%eval -3331,27] [%emt 0:04:34]} 83. Kg4 {[%emt 0:00:05]} Kg6 {[%eval -4608,21] [%emt 0:00:15]} 84. Kf3 {[%emt 0:00:05] (Kg3)} Kh5 {[%eval -4608,22] [%emt 0:00:32]} 85. Kg3 {[%emt 0:00:07] (Kg2)} f5 {[%eval -4609,26] [%emt 0:01:12]} 86. Kh3 {[%emt 0:00:05] (Kf2)} f4 {[%eval -4633,28] [%emt 0:00:25]} 87. Kg2 {[%emt 0:00:05]} Kh4 {[%eval -4657,28] [%emt 0:00:19]} 88. h3 {[%emt 0:00:15] (Kf2)} f3+ {[%eval -4684,25] [%emt 0:00:44]} 89. Kxf3 {[%emt 0:00:12] (Kh2)} Kxh3 {[%eval -32733,41] [%emt 0:00:19]} 90. Ke3 {[%emt 0:00:06] (Kf2)} g4 {[%eval -32739,40] [%emt 0:00:21]} 91. Kf4 {[%emt 0:00:05]} g3 {[%eval -32741,41] [%emt 0:00:17]} 92. Ke5 {[%emt 0:00:06]} g2 {[%eval -32743,41] [%emt 0:00:21]} 93. Kxd5 {[%emt 0:00:06] (Kd6)} g1=Q {[%eval -32745,39] [%emt 0:00:20]} 94. Kc5 {[%emt 0:00:07]} Kg4 {[%eval -32747,41] [%emt 0:00:38]} 95. Kc4 {[%emt 0:00:11]} Kf5 {[%eval -32749,45] [%emt 0:00:29]} 96. d5 {[%emt 0:00:12] (Kxb4)} Ke4 {[%eval -32751,57] [%emt 0:00:40]} 97. d6 {[%emt 0:00:11] (Kxb4)} Qd4+ {[%eval -32753,73] [%emt 0:00:43]} 98. Kb5 {[%emt 0:00:06]} Qxd6 {[%eval -32755,81] [%emt 0:00:34]} 99. Ka4 {[%emt 0:00:06] (Kc4)} Kd5 {[%eval -32759,124] [%emt 0:00:00]} 100. Kb5 {[%emt 0:00:05]} Qb8+ {[%eval -32761,124] [%emt 0:00:00]} 101. Ka4 {[%emt 0:00:05] (Ka6)} Kc6 {[%eval -32763,124] [%emt 0:00:00]} 102. Ka5 {[%emt 0:00:05]} Qb5# {[%eval -32765,124] [%emt 0:00:00]} 0-1[/pgn]
Yes - a very watchable game!
Human chess is partly about tactics and strategy, but mostly about memory
syzygy
Posts: 6057
Joined: Tue Feb 28, 2012 11:56 pm

Re: Opus 5.5 smashes the 24-hour chess engine benchmark: 3463 Elo, built from scratch 24 hours!

Post by syzygy »

Steve Maughan wrote: ↑Sat Oct 03, 2026 3:32 pm
syzygy wrote: ↑Sat Oct 03, 2026 3:03 pm Impressive, but the source code shows many very close similarities to Stockfish.

For example, SF's see_ge():
https://github.com/official-stockfish/S ... 1389-L1492

Opus 5.5's see_ge():
https://github.com/stevemaughan/opus-5. ... #L371-L416

These two implementations seem to be completely identical.
This is interesting. They are certainly close. It's quite a tight loop and tight logic. Do other engines implement in a completely different way?

I'm not being critical but did you use AI to find this?

— Steve
No, I just looked at the source and found similarities all over the place. Here it even "copied" the comment for captures by the king. This is just one example. It also seems to use the same TT entry format, for example (or at least 32-byte buckets, I did not check each and every field).
User avatar
chrisw
Posts: 5137
Joined: Tue Apr 03, 2012 4:28 pm
Location: Digital Nomad. Anywhere but the Western Empire
Full name: Christopher Whittington

Re: Opus 5.5 smashes the 24-hour chess engine benchmark: 3463 Elo, built from scratch 24 hours!

Post by chrisw »

syzygy wrote: ↑Sat Oct 03, 2026 6:00 pm
Steve Maughan wrote: ↑Sat Oct 03, 2026 3:32 pm
syzygy wrote: ↑Sat Oct 03, 2026 3:03 pm Impressive, but the source code shows many very close similarities to Stockfish.

For example, SF's see_ge():
https://github.com/official-stockfish/S ... 1389-L1492

Opus 5.5's see_ge():
https://github.com/stevemaughan/opus-5. ... #L371-L416

These two implementations seem to be completely identical.
This is interesting. They are certainly close. It's quite a tight loop and tight logic. Do other engines implement in a completely different way?

I'm not being critical but did you use AI to find this?

— Steve
No, I just looked at the source and found similarities all over the place. Here it even "copied" the comment for captures by the king. This is just one example. It also seems to use the same TT entry format, for example (or at least 32-byte buckets, I did not check each and every field).
One suspects that, unless told otherwise, an AI is going to give you what it has seen most often/is ubiquitous/lowest common denominator and if you don't impose a time constraint, that thing is going to be more and more like Stockfish.
On the other hand, if you tell it some conditions, data structure and so on, it will deliver something else.