4 ENGINES · 4 CONSTRAINTS · 0 SHORTCUTS

Chess engines built at the edge of the possible

The Dragon series is a set of independent chess engines, each built around one deliberate constraint — a single line, 185 bytes, 87 lines, or a variant with over two million possible openings. Designed and built by Gokul Chandar.

See the engines ↓ GitHub profile ↗
tiny-dragon — 185 bytes — x86-16 DOS
rnbqkbnr
pppppppp
........
........
........
........
PPPPPPPP
RNBQKBNR
> e2e4

Four engines, four constraints

1LINE OF RUST

Rusty Dragon

7,376 bytes, one physical line, full FIDE rules, full UCI

Started as a normal 369-line Rust engine with complete legal move generation and a working UCI implementation. Then came the real experiment: how far could it be compressed before it stopped being a real chess engine? Four verified passes later, it's a single line — castling, en passant, promotion, check, checkmate, stalemate, the fifty-move rule, and threefold repetition all intact, with every iteration re-verified against the standard perft test suite up to ~194 million nodes.

RustWebAssemblyUCI protocolCode golf

Believed to be the first single-line Rust engine with full FIDE legality and UCI — an unfalsified claim, not a certified record. Full reasoning in the repo.

185BYTES, X86-16

Tiny Dragon

A 185-byte DOS chess program, smaller by byte count than the Guinness-certified record

Hand-golfed x86-16 assembly that boots straight into a playable board — real keyboard input, real video-memory rendering, real piece movement, no interpreter. Went from 237 bytes down to 185 across many rounds, including two genuine bugs caught along the way: a register-poisoning test that surfaced a memory-corruption risk before it ever touched hardware, and a same-square-move bug found through direct on-device testing.

x86-16 ASMNASMjs-dosByte golf

Smaller by raw byte count than every publicly known entry in the category, including the Guinness-certified 354-byte program — with an honest accounting of what it doesn't do (no legality checking, no check/mate detection).

87LINES OF PYTHON

Mini Dragon

Full legal chess in 87 lines — built to go head-to-head with Sunfish

No dependencies, no shortcuts on the rules: castling, en passant, and underpromotion all work, backed by negamax search, a transposition table, null-move pruning, and quiescence search. Runs entirely client-side via Pyodide, and ships with Sunfish — the well-known 111-line reference engine — bundled in for a direct, watchable, move-by-move comparison.

PythonPyodide0x88 boardNegamax
2.16MOPENING POSITIONS

Pet Dragon

An original chess variant with 2,162,160 legal starting positions

The king always starts on its home square — everything else is shuffled randomly across the back two ranks, mirrored for both sides. Powered by a purpose-built Rust engine with bitboards, magic-bitboard move generation, alpha-beta search with PVS, iterative deepening, and a Texel-tuned handcrafted evaluation — plus an experimental NNUE component, built and tested but kept off by default until it proves itself.

RustBitboardsChess variantGPL v3

Process

Direction

Gokul Chandar set the brief for every engine, decided what "done" looked like, did the real-device and real-browser testing that caught bugs no automated suite found, and pushed each project toward its record attempt.

Verification, always

Every size reduction — a renamed variable, a joined line, a byte shaved — was re-verified before it shipped. Nothing here is a record because it says so; it's a record because it was tested until it couldn't be broken.