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.
Four engines, four constraints
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.
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.
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.
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).
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.
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.
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.