Author(s): Colin Jenkins (GBR)
Release Date: 2025-01-06
Language(s): JavaScript
Repo Owner: op12no2
Repo URL: https://github.com/op12no2/lozza
Lozza was primarily created for use in browsers, but can also be used with traditional chess UIs via Node.js and on pretty-much any platform (see below). Note however that Lozza is relatively slow compared to compiled engines of a similar design, which also makes her relatively weak.
This is a Lozza 4 re-release.
The original Lozza 4 release caused problems for some users. For those that ran it successfully, results (e.g. CCRL Blitz) can stand because no peformative changes have been made. However, please replace with this re-release anyway; thanks.
Please use a recent version of Node if possible (they are always improving performance). The latest stable version is 22.
Changes
Train generation 3 net.
Use ADJACENT, not DIST.
Simplify QS and don’t go into QS if in check.
Scale eval by 1.9. Scale UCI cp by 1.9.
Add perspective (currently unused).
Use the Mersene Twister from cwtch for randoms.
Move futility alpha test to move loop.
Use hash move in QS.
Optmise deferral of accumulator update a bit more.
Fix some web stuff. Add improving indicator (failed to get it to gain so far).
Prune QS with quickSee(). Only count nodes that iterate moves.
Put eval in TT before search.
Optimise castling a bit.
Simplify search recursion.
Allow successive NMP and beta pruning.
Bigger net 768x128x1 srelu.
Make sure all UE updates (e.g. castling) are a single accumulator loops.
Defer UE to after legal check (doh!) and don’t check pre-determined legal moves.
Minor tweaks for datagen + net command.
https://github.com/op12no2/lozza/releases/download/4/lozza4.zip
https://github.com/op12no2/lozza/archive/refs/tags/4.zip