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.
It would be interesting to see what it would produce if it is specifically instructed not to search the internet.
I am not surprised that it implements a see() function, but at least to me it is clear that it retrieved the source code of Stockfish (or one of its many clones) and essentially transcribed it after convincing itself that this does not count as transcribing (see the "rules").
syzygy wrote: ↑Sat Oct 03, 2026 6:00 pmNo, 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).
If we ask for strength, we're going to get something that looks like Stockfish, because that's the received wisdom about what a strong engine is like.
If we tell it how to build the engine, we're not letting it solve the problem for itself: it will just be doing the donkey-work for what we've told it to do.
We need an AI that knows how to play chess, but which has not had any chess engine source code in its training data. Here's an AI overview on how to do this - link.
Human chess is partly about tactics and strategy, but mostly about memory
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.
It would be interesting to see what it would produce if it is specifically instructed not to search the internet.
I am not surprised that it implements a see() function, but at least to me it is clear that it retrieved the source code of Stockfish (or one of its many clones) and essentially transcribed it after convincing itself that this does not count as transcribing (see the "rules").
I'm reasonably confident that it does not go search the internet in response to a prompt, unless you ask it to. It already had 'searched the internet' and from its 'memory' constructed the engine. Its memory had seen SF code or clones of SF code in enormous quantities and its memory was quite probably refreshed from all the times humans have prompted it, possibly SF specific prompts, to write or interpret SF code snippets or full. Problem, if there is one, is that SF has been seared into its internal memory whatever or wherever that is, so SF tends to come out.
chrisw wrote: ↑Sat Oct 03, 2026 8:46 pm
<snip>I'm reasonably confident that it does not go search the internet in response to a prompt, unless you ask it to. It already had 'searched the internet' and from its 'memory' constructed the engine. Its memory had seen SF code or clones of SF code in enormous quantities and its memory was quite probably refreshed from all the times humans have prompted it, possibly SF specific prompts, to write or interpret SF code snippets or full. Problem, if there is one, is that SF has been seared into its internal memory whatever or wherever that is, so SF tends to come out. </snip>
You're spot on. The instructions says the LLM cannot copy and paste code. But it can use its memory or find concepts that it can implement.
chrisw wrote: ↑Sat Oct 03, 2026 8:46 pm
I'm reasonably confident that it does not go search the internet in response to a prompt, unless you ask it to. It already had 'searched the internet' and from its 'memory' constructed the engine. Its memory had seen SF code or clones of SF code in enormous quantities and its memory was quite probably refreshed from all the times humans have prompted it, possibly SF specific prompts, to write or interpret SF code snippets or full. Problem, if there is one, is that SF has been seared into its internal memory whatever or wherever that is, so SF tends to come out.
No, ChatGPT searches the internet all the time and I'm sure other LLMs do that too, at least starting from medium thinking mode. And in this experiment the LLM was in fact specifically told to search the internet.
Again, I'm not talking about the general SF-based chess-engine template. But if you can't be bothered to check the example I gave, then I can't be bothered to try to convince you. So bye.
chrisw wrote: ↑Sat Oct 03, 2026 8:46 pm
<snip>I'm reasonably confident that it does not go search the internet in response to a prompt, unless you ask it to. It already had 'searched the internet' and from its 'memory' constructed the engine. Its memory had seen SF code or clones of SF code in enormous quantities and its memory was quite probably refreshed from all the times humans have prompted it, possibly SF specific prompts, to write or interpret SF code snippets or full. Problem, if there is one, is that SF has been seared into its internal memory whatever or wherever that is, so SF tends to come out. </snip>
You're spot on. The instructions says the LLM cannot copy and paste code. But it can use its memory or find concepts that it can implement.
No, you told it to search the internet. It just convinced itself that it did a bit more than the forbidden directly transcribing when it took see_ge() from Stockfish. Indeed it did not "copy and paste".
Use Occam's razor. LLMs aren't a gigantic code repository.
syzygy wrote: ↑Sun Oct 04, 2026 2:24 am
No, you told it to search the internet. It just convinced itself that it did a bit more than the forbidden directly transcribing when it took see_ge() from Stockfish. Indeed it did not "copy and paste".
Use Occam's razor. LLMs aren't a gigantic code repository.
I also asked it to record which internet resources it used. You can see them here:
It only used chessprogramming.org but it mentions SEE. Ave that page doesn't have threshold SEE code. So either it knows the concept and coded it, or it could be lying — but why lie?