ECO Statistics
D45 | 315 | 4 | 1 |
D43 | 309 | 2 | 0 |
C11 | 230 | 6 | 2 |
D38 | 224 | 0 | 0 |
A00 | 221 | 0 | 0 |
B00 | 206 | 20 | 9 |
C02 | 201 | 3 | 1 |
That’s it! I’ve uploaded your ECO Statistics.csv file , selected the 10 highest priority lines (based on “Total Games”), and generated a PGN LS01 suite with each line limited to 8 full moves (16 plies) whenever possible.
Downloads
Note: Your CSV doesn’t include the movement sequence (there’s no column of moves); therefore, where I couldn’t reconstruct the line, I’ve left aplaceholder commentinside the PGN so you can paste the SAN you want to train (if you prefer, I can autocomplete main ones using standard ECO in another iteration).
How to train Phase 1
Objective: Initialize the Revolution experience file with stable self-learning and no rival bias.
- Matchmaking: Revolution vs Revolution (same build/options).
- Openings: file
LS01_training_suite.pgn
(10 lines). - Line limit: 8 full moves per game (already truncated in the PGN).
- Sessions: 10 total sessions for LS01.
In each session, run through all 10 lines (alternating colors), e.g., 4 games per line (2 with each color) → 40 games/session . Adjust if you want more samples. - ICU Options (suggested):
Experience Book = true
Experience Book Eval Importance = 2
Experience Book Min Depth = 27
Minimum Thinking Time = 10
(ms) if you use very short TCs.- Hash according to your RAM/concurrency (e.g., with 16 GB total and 8 threads, Hash=512–1024 MB per instance is reasonable).
Example with cutechess-cli (Windows)
:: === LS01 - Sesión 1 (ejemplo) ===
set CUTE=C:\cutechess\cutechess-cli.exe
set REV=C:\engines\Revolution\revolution.exe
set PGN=C:\suites\LS01_training_suite.pgn
set OUT=C:\runs\LS01_s01.pgn
"%CUTE%" ^
-engine cmd="%REV%" name="Revolution-A" option.Hash=1024 option."Experience Book"=true option."Experience Book Eval Importance"=2 option."Experience Book Min Depth"=27 ^
-engine cmd="%REV%" name="Revolution-B" option.Hash=1024 option."Experience Book"=true option."Experience Book Eval Importance"=2 option."Experience Book Min Depth"=27 ^
-openings file="%PGN%" order=seq format=pgn plies=0 ^
-each proto=uci tc=60+1 timemargin=500 ponder=off ^
-games 40 -repeat -draw movenumber=8 movecount=2 score=5 -resign movecount=3 score=800 ^
-pgnout "%OUT%" -srand 1 -concurrency 1
Key Notes
-openings ... order=seq
respects the order of the PGN (10 lines).- If you want 4 games per line with double alternating colors, put
-games 40
. plies=0
because I’ve already truncated you to 8 complete plays in the PGN itself.- Increase
-concurrency
if you want to parallelize (adjust Hash and number of experience file writers if your build requires it).
Fase 2 (LS02)
- Base:
LS02_candidates.csv
(next 10 ECO for “Total games” of the year). - Generate
LS02_training_suite.pgn
with those plays (I can prepare it if you pass me the SAN of each line or if it is okay for you to fill in the main ones by ECO). - Repeat the same pattern: 10 sessions; 40 games/session (or your preferred volume), alternating colors.
Why Revolution vs Revolution in LS01?
- In the initial phase of an experience file , it’s important to establish typical evaluations and transitions without rival-style noise . Self-play controls variables and accelerates convergence (especially at
Experience Book Min Depth
high speeds). - Already in LS02/LS03 you can introduce strong opponents (e.g. Stockfish, Berserk, Obsidian) in TB-heavy positions or critical branches to polish decisions in specific endgames and midgames.
Practical recommendations
- Random seeds: changes
-srand
per session (1..10) to avoid exact replicas. - Time control: start with
60+1
or30+0.5
. If you are going to bullet (10+0.1), go upMinimum Thinking Time
. - Incremental review: After each session, inspect nodes, depth, and the experience file footprint to confirm that entries are being added (and that odd branches are not becoming oversaturated).
- Backups: Version the experience file by LS01_s01…s10 (to revert if any session introduces “unlearning”).
Downloads
- LS01 (relleno) → LS01_training_suite_filled.pgn
- LS02 (relleno) → LS02_training_suite_filled.pgn
- Script Windows (10 sesiones) → run_revolution_LS_sessions.bat
How to use .BAT
- Copy the two PGNs to a folder, for example
C:\suites\
. - Edit
.bat
to fit:CUTE
→ route to yourcutechess-cli.exe
REV
→ route to yourrevolution.exe
SUITE=LS01
(or change toLS02
when you phase)PGN_DIR
,OUT_DIR
,HASH
,TC
,GAMES_PER_SESSION
,CONCURRENCY
, etc.
- Run the
.bat
. It will createLS01_s01.pgn
…LS01_s10.pgn
(or LS02) inOUT_DIR
.
PGNs are limited to8 full playsper line (approx. 16 plies), with Revolution vs Revolutionand ECO/Opening headers already ready for yourexperience filepipeline .
ready-to-run .bat that auto-distributes the total RAM budget across all engine instances when you use concurrency > 1 (two engines per game):
- Download: run_revolution_LS_sessions_auto_hash.bat
How it works
- You set
TOTAL_HASH_MB
to the overall memory you want to dedicate to Hash across the whole run (e.g.16384
for ~16 GB). - With
CONCURRENCY = N
, cutechess runs2 × N
engine instances (two engines per game). - The script computes:
INSTANCES = 2 × CONCURRENCY
HASH_PER_INSTANCE = floor(TOTAL_HASH_MB / INSTANCES)
- Enforces a floor min 16 MB per instance.
What to edit
Open the .bat and adjust:
CUTE
→ path tocutechess-cli.exe
REV
→ path torevolution.exe
SUITE=LS01
(switch toLS02
when you move to the next phase)PGN_DIR
→ folder containingLS01_training_suite_filled.pgn
/LS02_training_suite_filled.pgn
TOTAL_HASH_MB
andCONCURRENCY
to match your machine- Optionally tweak
TC
,GAMES_PER_SESSION
,EBEI
,EBMD
It prints a summary before running (instances and computed hash per instance), then executes 10 sessions with different seeds and writes
LS01_s01.pgn … LS01_s10.pgn
(or LS02) to your output folder.

Jorge Ruiz
connoisseur of both chess and anthropology, a combination that reflects his deep intellectual curiosity and passion for understanding both the art of strategic