Play Zugwunder
A chess engine written from scratch in Swift by Erik Schmidt, running entirely in your browser.
Zugwunder is copyright © 2026 by Erik Schmidt, all rights reserved. Zugwunder, Wolfgang and the UCI engine for Linux can be downloaded free of charge here.
What the evaluation means
After each of its moves, Zugwunder shows how it judges the position, for example Evaluation −1.25 (White's view) · depth 14.
- Evaluation
- Who is better, measured in pawns and always seen from White's side. Positive numbers favour White, negative numbers favour Black. +1.00 is roughly an extra pawn for White, −3.00 roughly an extra knight or bishop for Black.
- Around 0
- Between −0.30 and +0.30 the position is about equal; small values also reflect the advantage of having the move.
- Large values
- From about ±2 the game is usually decided with correct play; values like −15.70 mean one side is overwhelmingly ahead, usually by a queen or more, or a mating attack is coming.
- Zugwunder sees mate in n
- Zugwunder has found a forced checkmate in n of its own moves, whatever you play.
- You could mate in n
- You have a forced checkmate in n moves, if you find it.
- Depth
- How many half-moves (one move by one side) Zugwunder looked ahead on its main line, with the most important replies followed further. Higher is more reliable; the lower strength levels search shallowly on purpose, so their evaluations are rougher.
The evaluation is Zugwunder's own opinion, not the truth: it can be wrong, especially at low depth.
Game results: checkmate ends the game, and draws are announced for stalemate (no legal move, but not in check), the fifty-move rule (50 moves by each side without a capture or pawn move), threefold repetition of the same position, and positions where neither side can mate (for example king against king and bishop).
About Zugwunder
Zugwunder is a chess program for the Mac: it solves chess problems, trains your tactics and plays against you. Its engine is also available as a stand-alone UCI engine for macOS and Linux, so it can be used in any other chess program. Everything, from move generation, search and evaluation to this page, was written from scratch by Erik Schmidt in Swift; no code or data from other engines is included.
The engine is a classical alpha-beta searcher with the usual techniques of strong engines. Positions are judged by a small neural network (NNUE) that learned chess only from Zugwunder itself: the engine played hundreds of thousands of fast games against itself, the positions were labelled with its own search results and the game outcomes, and each new network had to beat the old one before it was accepted. The current network is the fifth generation. No change to the engine is kept unless it wins thousands of test games against the previous version.
In 1000 games against Stockfish at calibrated strength levels, under the conditions of the CCRL blitz rating list (60 s + 0.6 s per move, one core), the program and the UCI engine reached an estimated 3006 ± 17 Elo. That is an estimate, not an official rating. This page runs the same engine as WebAssembly in your browser, on one thread and at about a third of the native speed, so it plays somewhat weaker here; at full strength it is still far stronger than almost any human player.
Download the app and the UCI engine: f97.be/zugwunder.html