How it works
Every highlight on the board has a source, and every item is labelled with it. Board facts follow from the position and the rules alone: attacks, pins, pawn structure, holes, space and so on. Engine items come from Stockfish's search. Ideas are plans worth testing that the engine hasn't confirmed. We never split the evaluation into made-up percentages.
Explanations are written from templates over those facts. No language model writes or changes them. The concepts and how each is drawn are documented in docs/position-understanding.md.
Game review
Every position of the game is searched by Stockfish in your browser, and each move is judged by how much of the mover's winning chances it gives up compared with the engine's best move. The bands follow Chess.com's published expected-points model, and winning chances use Lichess's win-percentage curve. Brilliant needs a real sacrifice: material left or put where it can be taken, checked with exchange arithmetic on the board, not guessed from the score. Moves that decide those labels are searched a second time, deeper, before the label is final. Accuracy uses Lichess's per-move formula, put on Chess.com's scale by fitting it to Chess.com's own reviews of real games.
Games you import from Chess.com or Lichess are fetched through this site from their free public APIs and aren't stored. Opening names come from the Lichess chess-openings dataset (CC0). How deep theory goes, and what strong players play in each position, comes from 1.84 million games between strong players: over-the-board games from the Lichess broadcast database (CC BY-SA 4.0; this site's book is a derived statistics table, shared under the same licence), and online games from the Lichess Elite Database by nikonoel, a selection of the CC0 Lichess database. The Brilliant and Great checks were informed by WintrChess (GPL-3.0); our version is written independently.
Privacy
Analysis and game review run entirely in your browser. Screenshots and photos are read on your device by a small neural network trained on open-source piece sets; they never leave your browser. Only if you choose the optional AI reader (for angled photos of a real board) is the cropped picture sent through this site's server to the configured vision API (the NUS SoCLaaS gateway, or Anthropic's API), held in memory for that request and discarded. FEN and hand setup never leave your device.
Stockfish
The engine is Stockfish.js (Stockfish 19, lite single-threaded WebAssembly build) by Nathan Rugg and Chess.com, based on Stockfish by the Stockfish developers. It's free software under the GNU General Public License v3, served from this site with its licence at /engine/COPYING.txt. Engine source is available from the Stockfish.js repository. This website's own source code is free software under the GPL v3 or later, at github.com/acunli/whatsthisposition.
Pieces, type and libraries
Piece set: “mpchess” by Maxime Chupin (GPL-3.0+), as distributed with Lichess. Type: Archivo by Omnibus-Type (SIL Open Font License). 3D: three.js and React Three Fiber (MIT). Move generation: chess.js (BSD-2-Clause).