StyleMate Human-like chess, at the rating and style you choose
Maia-3
—
—
You
—
—

Promote to

How StyleMate works

StyleMate is a chess opponent that plays like a person at the rating you pick, not like an engine. It runs Maia-3, a neural network trained on millions of human games to predict the move a player at a given rating would actually make, mistakes included. Everything runs in your browser: the model (about 20 MB) downloads once and is cached, and there is no server or account.

Opponent settings

Model
Maia-3 is the human-like opponent. Placeholder bot is a simple rule-based bot kept for testing; it is not human-like.
Opponent rating
The rating Maia imitates (600–2600, Lichess blitz scale). A 1200 opponent plays the kinds of moves, and makes the kinds of mistakes, typical of 1200 players. It is the rating it imitates, not a measured strength.
Your rating
Maia is also told who it is playing against, because people play a little differently against stronger or weaker opponents. It also feeds the eval bar. It doesn't change your side of the game.
Playstyle
Balanced is plain Maia: the moves real players at that rating choose, in the same proportions.
Aggressive leans toward checks, captures, pushing forward and attacking the king, and is more willing to leave pieces loose.
Solid leans toward castling and safe squares, and avoids leaving pieces hanging.
Style strength
How hard the style pulls (0–100%). At 0% it's plain Maia; higher values make the style more noticeable. Maia still only picks from moves a human at that rating might plausibly play; the style just changes which of those it prefers. Not used with Balanced.
You play / Clock
Choose White, Black or Random, and a time control or no clock. Take-back is off in timed games. Maia wasn't trained on clock times, so it doesn't speed up or panic in time trouble.

Opponent settings start a new game when changed, so a game record always matches one setup. Display settings (eval bar, sounds) apply immediately.

What the panels show

Eval bar
Maia's predicted score for White, for players at these two ratings: a win chance, not an engine evaluation. A big rating gap moves it a lot even in an equal position. Hover or tap the bar for details.
Opponent's last decision
The moves Maia considered and how often players at that rating would choose each one. The highlighted row is the one it played. It picks at random according to these odds, which is why it doesn't always play its top choice.
Style report
How the opponent's moves differ from plain Maia's in the same positions: captures, checks, king pressure, forward moves, loose pieces and castling. Style cost (KL divergence) measures how far the style pulled it from typical human play: 0 means no pull, under about 0.1 is a light nudge, over about 0.4 is a strong pull. Avg. human probability is how often players at that rating would have chosen its moves.
Export
Download or copy the game as PGN to analyze it on Lichess or Chess.com. The decision log (JSONL) records every opponent move with its probabilities, for anyone who wants to analyze the data.

Controls

Click or drag pieces. While dragging, right-click or press Esc to cancel the move. Flip board turns the board around without changing sides.

Limits

The style weights are hand-tuned starting points, not learned from real players. The rating slider sets what Maia imitates; it is not a calibrated playing strength.

Maia-3 © CSSLab (University of Toronto), AGPL-3.0 · TypeScript port: maia3-ts (AGPL-3.0) · Rules: chess.js (BSD-2). This app is AGPL-3.0; download the full source from the header link.