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 7.0 what's new?
Focused on reducing memory lookups (arrays/functions), which are costly in JavaScript
Replaced Rank/File/Mirror arrays with bit manipulation
Switched to direct indexing instead of function calls on BitBoard arrays
Bit faster NN index (~2% NPS gain). In this workload, optimized JS performs similarly to WASM SIMD, making SIMD unnecessary complexity
TT optimizations: improved replacement scheme, faster access, fewer lookups
Added a custom symmetry-safe evaluation cache (~5% NPS gain even with the main TT enabled)
Optimized pawn eval, capture eval, and NN updates
Added plain magic bitboards (~9% NPS gain)
Minor time-management improvements
Overall NPS gain: ~20% (compared to 6.0)
Same eval (HCE + small NN), retrained with a better trainer
Estimated strength: around 3050 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