TomitankChess - JavaScript Chess Engine (UCI)
Author - Tamás Kuzmics
Rating Chess Engines Diary CEDR=2982
TomitankChess (with node.js) run in Arena, in WinBoard and in Cutechess as well.
- Example for Arena GUI with node.js
+ Comand line: direct acces to node.exe (C:\Program Files\nodejs\node.exe)
+ Command line parameters: direct acces to tomitankChess.js (C:\Program Files\nodejs\tomitankChessUCI.js)
This is quite different from the SF solution.
network is only 768x16x1. Smaller than I've seen before.
it does not replace evaluation, it only compensates that.
trained only with 2.7M example.
The network is not compatible with other engines (*) and it's integrated into the code. (hardcoded)
I wrote the network from scratch. I don't use machine learning platform.
I have around 10 elo better net (768x32x1) in fix depth test, but JavaScript is too slow, and don’t have AVX or similar methode in JavaScript (so i use vanilla approach). Essentially the smaller net has nearly the same strength in both short and long TC tests.
TomitankChess 6.0 what's new?
use Math.clz32 when available
own native popcount64 wasm code when wasm is supported
improve move sorting (use see only inside the move picker)
use Typed Array rest of the code
improve see a little bit
more agressive nmp and razoring
fix memory overflow after "ucinewgame" command (don't realloc tt table)
fix "forfeits on time" in short time control (substract 50ms for lag)
revisited and refactored code (would be better rewrite from scratch..)
fix en-passant hash key update -> only when sq attacked by opponent
main eval is not changed (boring for me), still use HCE + small NN
60% faster NPS, so tomitankChess play full of strength with same eval
bit better draw detection
Known issues:
Fifty-move repetition may incorrectly ignore mate positions
Stop and quit commands are ignored in the Node.js environment
Future improvements aka TODOs: better time management
Estimated strength: Senpai 1.0 (around 3000 elo)
TomitankChess 5.3 JA vs other engines
| Rhetoric 1.4.3 | 8/14 | +2 | 14 Games |
| Eubos 3.7 JA | 5.5/6 | +5 | 6 Games |
| CT800 1.46 | 2.5/6 | -1 | 6 Games |
| HypnoS 220824bis | 0.5/6 | -5 | 6 Games |
| Yuliana 5.50 | 0/6 | -6 | 6 Games |
| Integral v5 | 0/6 | -6 | 6 Games |
| Big Yuli GM 221024 | 0/6 | -6 | 6 Games |
| Stockfish 17 | 0/6 | -6 | 6 Games |
| Donut dev.38ee0c6 JA | 0/6 | -6 | 6 Games |
| Toad 1.1.0 | 4/4 | +4 | 4 Games |
| Freda 1.0 | 4/4 | +4 | 4 Games |
| Brogle 0.1.0 | 4/4 | +4 | 4 Games |
| Hardfiskur rev 66b215f | 4/4 | +4 | 4 Games |
| Schoenemann 0.3.0 | 2/4 | +0 | 4 Games |
| Perseus 0.9-alpha | 2/4 | +0 | 4 Games |
| Inanis 1.5.0 | 2/4 | +0 | 4 Games |
| EveAnn 2.1 | 1.5/4 | -1 | 4 Games |
| Priessnitz 2.0 | 0.5/4 | -3 | 4 Games |
| ShashChess 37 | 0/4 | -4 | 4 Games |
| Obsidian 14.0 | 0/4 | -4 | 4 Games |
| Heimdall 1.1.1 | 0/4 | -4 | 4 Games |

Comments
Post a Comment