TALOS - The Living Chess Studio TALOS  ·  The Living Chess Studio
1 / 1

September 2026  ·  version 2.4.0

TALOS - The Living Chess Studio

TALOS

The Living Chess Studio

A chess studio in the spirit of Lucas Chess, rebuilt from the board up: its own engine, an adaptive coach, 112,000 real puzzles, the Anarchchess house rules and the Anarchess board game — on Windows, Linux, macOS, Android and in a browser tab.

Nothing to install. From a clone, run python tools/build_web.py first — it writes the Python payload the page loads.

The idea

A studio, not just a board

Lucas Chess is the best chess teacher ever written for the desktop. TALOS keeps that feel — play, train, replay, repeat — and rebuilds the parts that age badly: the interface, the engine and the reach.

Familiar where it matters

Same rhythm as Lucas Chess: pick a level, play, get told where you went wrong, drill the position again.

Modern where it counts

Three palettes, a responsive layout, vector interface, no thousand-button toolbar. Dark, quiet, out of the way.

Yours, entirely

No accounts, no telemetry, no server. Everything — engine, database, gore, puzzles — runs on your machine.

Five editions, one core

Windows, Linux, macOS, a native Android APK and the browser all share the same chess core. The Android shell packages local web assets rather than just opening a hosted page.

Variants that are actually different

Anarchchess and full anarchy, plus Anarchess, a tile-laying strategy game from the same island as the studio.

Battle Chess when you want it

A switch, not an identity. Pieces walk, duel and shatter in procedural 3D — turn it on for the spectacle, off for study.

Playing strength

An engine that has to be respected

Search

  • iterative deepening, aspiration windows
  • principal variation search
  • transposition table with generations
  • static exchange evaluation
  • null move, reverse futility, razoring*
  • late move reductions + verification
  • check, singular & recapture extensions
  • killers, countermoves, continuation history
  • quiescence with delta pruning
  • triangular PV (exact, not reconstructed)

* razoring is measured and off: it prunes away sacrifices — 58.7 % → 73.3 % on the tactical suite when disabled.

Evaluation

  • tapered material & piece-square tables
  • pawn structure: doubled, isolated, passed
  • phalanx and connected pawns
  • mobility with safe squares, outposts
  • bishop pair, rooks on open files & 7th
  • trapped bishops and rooks
  • king safety: shield, attack units, ring
  • threats, space, tempo, smooth phase

Measured

109 / 150 (72.7 %) on the 150-position tactical suite (avg depth 3.9, ~5,700 nodes/second, pure Python).

Opponents

15 levels from 800 to 2550

LevelEloDepthTime
Pawn8001120 ms
Pawn+9501200 ms
Wood11002300 ms
Wood+12002400 ms
Stone13003600 ms
Stone+14003800 ms
Club150051000 ms
Club+165061500 ms
Expert180072000 ms
Expert+195083000 ms
Master210094000 ms
Master+2250106000 ms
Master++2350118000 ms
Grandmaster24501210000 ms
Grandmaster+25501415000 ms

Levels are personalities, not just depths

Every level carries its own depth cap, thinking time and a deliberate blunder rate, so “Pawn” misses things the way a beginner does instead of playing a shallow perfect move.

Stockfish, when you want the truth

The in-app installer fetches a real Stockfish binary (about 113 MB, on demand, never in the repository) for analysis and for sparring far above the built-in levels.

Every variant, same engine

Move generation is delegated to the variant-aware board, so the engine also plays Chess960, Crazyhouse, Atomic, King of the Hill, Three-check, Horde, Racing Kings, Antichess and Anarchchess.

Variation 1

Anarchchess — 15 house rules, each a switch

The rules the community actually plays, collected from r/AnarchyChess, anarchychess.org and the bots. “Anarchchess” is the curated set; “Full anarchy” turns on all of them, including the ones that wreck a game.

  • En passant is forcedIf en passant is on the table, you must take it - declining is not a move.
  • KnooksMove a knight onto a friendly rook (or the other way round) and they fuse into a knook: rook and knight powers in one…
  • c4 is explosiveThe first piece to land on c4 detonates and kills everything in a one square radius - rooks and knooks shrug it off.
  • Double check is an instant winGive a double check and the game is over. (Pasta is optional.)
  • The king cannot go to c2c2 is simply not available to a king, on either side of the board.
  • Il VaticanoTwo friendly bishops three squares apart on a diagonal with enemy pieces between them swap places and everything in b…
  • Siberian SwipeAn unmoved rook may take the enemy rook directly across the board on the same file, jumping over everything in between.
  • Vertical castlingWith a rook on the king's file and a clear path, castle vertically.
  • Knight boostPromoting to a knight (or a knook) earns you an immediate extra move.
  • DismountAfter a knight has moved it may dismount and become a pawn.
  • Radioactive queen decayTaking a queen irradiates the square: everything next to it dies too.
  • Omnipotent pawnA pawn standing on h3 (white) or h8 (black) moves like any piece.
  • Promotion roulettePromotions are random - and one time in five you get an enemy pawn.
  • Hyper-accelerated BongcloudPlay Ke2/Ke7 as your second move and win on the spot by asserting dominance.
  • Random eventsEach turn something may happen: an earthquake, a conscription, a fireball or a revolution that topples a random piece.

Variation 2

Anarchess — the land before Chess

A real abstract strategy game by Dimitris Grammenos (ICS-FORTH, Heraklion). Two proud tribes, no kings yet, growing a landscape out of 32 light and 32 dark tiles. Implemented from the designer's own rulebook rather than reconstructed from a summary. The two further published games, Anarchess SOLO and Anarcheckers, are independent desktop entries and browser pages, not modes attached to this board.

A turn

  1. The die names a colour: that is the tile you must lay, and the tribe of the other colour plays it.
  2. Then one pawn action, if you want it: settle a pawn from your reserve onto the tile you just laid, step one square, or attack across a diagonal.
  3. A tile touching only one other must be of the opposite colour. Attacks need no support — a lone pawn can take one.

Scoring

An area is a maximal group of edge-connected tiles of one colour. Areas of two or more tiles score for whichever tribe holds most of them: 2 points a tile, 3 when the area matches its owner's colour or is held by a lone pawn, but only 1 in the largest area, which the rules tax. Single tiles are worth nothing, and every pawn left in the reserve costs 6.

SOLO is one player against a target of 192; Anarcheckers steps and captures on the diagonals, with forced jumps.

Feature

Battle Chess, on demand

A switch, not an identity

The studio is a study tool first. Battle Chess mode is a toggle in the toolbar: on for the spectacle, off for analysis.

  • Thirty original duels — every legal attacker/victim pair has a named approach, strike, impact and recovery. The idea is classic living chess; the geometry, choreography and foley are TALOS's own.
  • Each encounter leaves an appropriate stylised trace: dust, glass, rubble, sparks or optional fantasy blood.
  • Procedural geometry, physics and synthesised sound — no copied models, animation data or sound library, and no downloads for art.
  • Four pacing choices: Full stage, Combat only, Walks only and Still board. Study never has to wait for spectacle.
  • Input, analysis, engine replies and the result dialog wait for an active encounter instead of overwriting it.

Why procedural?

A hand-built arena, stage lights and piece silhouettes let the game feel theatrical while keeping it fast, local and original. The board focuses gently on a duel, then returns to a useful chess view.

Pieces that walk

Each rank crosses the board in its own way. The knight leaves the ground altogether; the rook takes two enormous paces and lands like a dropped wall; the bishop barely touches the floor; the king waddles. Six gaits, thirty original encounters.

Training

An adaptive coach over real Lucas data

112,198puzzles imported from Lucas Chess
182training sets, grouped by theme
10,000master games to replay
6categories: tactics, mates, endings, STS…

Not generated drills

Every puzzle is parsed out of the real Lucas Chess sets: tactics, mates in N, endgames, the Strategic Test Suite and positional collections. Nothing is procedurally invented.

A coach that schedules

Each puzzle you touch gets a box. Get it right and it drifts further away (half a day → two days → a week → a month). Miss it and it comes back tomorrow. Accuracy, streak and what is due are always visible.

Availability

One codebase, five editions

EditionWhat you installEngineOffline
WindowsInno Setup installer, or a portable zip. Adds .pgn file associations. Python core + optional Stockfishyes
LinuxOne-folder build + install.sh into ~/.local; ships a .desktop file and AppStream metadata.Python core + optional Stockfishyes
macOSPyInstaller .app bundle in a ZIP. Unsigned until a maintainer adds Apple signing. Python core + optional Stockfishyes
AndroidA native Capacitor APK packages the local web payload. Every tag builds an installable debug APK; signed release APKs use a maintainer-owned key. Python core under Pyodideafter first runtime boot
BrowserNothing at all. https://mylittlestories.github.io/talos/ → play. A service worker caches the whole studio. Python core under Pyodideafter first load

Battle Chess mode (real-time 3D) and Stockfish are desktop-only; everything else — engine, levels, puzzles, Anarchchess, Anarchess SOLO, Anarcheckers and the coach — is shared across the supported editions.

Architecture

The same Python, in a tab

The real modules

tools/build_web.py copies engine.py, anarchchess.py, anarchess/rules.py, anarchess/ai.py and vendored python-chess into web/python/. No rewrites, no ports.

A worker runs them

Pyodide boots in a Web Worker, mounts those files and imports bridge.py: a JSON-in / JSON-out API. The UI never blocks while the engine thinks.

Everything is cached

A service worker stores the shell, the Python core and the sets. The 2 MB puzzle file is fetched only when you open a set, then cached. Second visit: works with the wifi off.

1.1 MB

Python core, vendored and ready.

89 checks

tools/web_smoke.mjs boots the payload in Node and plays a game, a puzzle and an Anarchess turn on every push.

0 requests

to any TALOS server, ever. There is no TALOS server.

Identity

A mark made of both parents

TALOS - The Living Chess Studio
  • The knight — Lucas Chess' own silhouette, drawn as a vector so it survives being 16 pixels wide.
  • The loose tiles — Anarchess' board before it was squeezed into the rigid chessboard: light and dark squares, floating free, no 8×8 grid yet.
  • The amber plate — the Cretan light the studio was built in, and the accent colour of the whole interface.

17 files

from a 16 px favicon to a 1024 px master, plus maskable and Apple touch variants.

Drawn, not prompted

tools/make_icon.py rasterises real glyphs and lays out the tiles, so the set can be regenerated exactly.

Readable at 16 px

Measured: the knight fills 61 % of the mark and the tiles stay legible down to the favicon.

Shipping

Tag it, and everything updates

CI, on every push

Self-tests on Linux, macOS and Windows across three Python versions, a packaging smoke build, and the browser smoke test.

Tag v2.4.0

Three build jobs produce a Windows zip, a Linux tarball and a macOS app zip, and a release job lifts that version's section out of CHANGELOG.md.

Draft release + Pages

A draft release appears with the notes and a SHA256SUMS.txt; publishing it publishes the site too: the deck as the landing page, the playable app at /web/.

Reproducible

Every artefact is built from a clean checkout by the same script you can run locally.

Verifiable

sha256sum -c against the checksums attached to the release.

Reversible

Releases open as drafts — nothing goes out until somebody reads it and presses publish.

Next

What is left, honestly

Soon

  • Deeper search: the bench suite is at 109 / 150 (72.7 %); the next wins are in move ordering and the endgame tables.
  • More of the Lucas corpus: openings trainer and the replay database in the browser edition.
  • Optional richer Battle stage variants without compromising its original procedural asset policy.
  • A signed Android release APK and macOS notarised build — both need maintainer-owned signing identities, not fabricated CI keys.

Contributing

  • ./tools/setup_env.sh, then python run.py.
  • python tools/selftest.py must stay at 100 %, and every change adds a check.
  • Engine changes must quote tools/bench.py numbers in the pull request.
  • GPL v2 or later, like Lucas Chess.

TALOS is named for the bronze guardian of Crete: made on the island, for the island, and for anyone who wants a chess studio that is theirs.