PAPER-DIGEST · 2026-08-08

Tarun Kumar S: What Happens When You Tell a Human-Move Predictor the Last 20 Moves and the Clock — Fukai Reads

human-like game AI / player modelling / time pressure and decision-making

TL;DR

Otter is a chess AI built to predict which move a human will play, not to play the strongest move. Where the previous state of the art, Maia 2, treated every position as an independent event, Otter conditions its predictions on two extra signals: the last 20 moves of the game, and how much clock the player has left. It was trained on 117 million Lichess rapid games (roughly 6.1 billion positions), has 15.3 million parameters, and was trained for about 30 days on a single NVIDIA T4 GPU. It reaches 55.23% top-1 accuracy (the fraction of positions where its first choice matches the human move) and 90.95% top-5, beating Maia 2's 53.25% by 1.98 percentage points with 34% fewer parameters and about 31% fewer training games.

The ablation study — removing one component at a time to see what carries the result — makes the story clear. A board-only baseline scores 47.61%; adding the move-history encoder lifts it to 52.85% (+5.24 points); adding the clock module lifts it again to 55.23% (+2.38 points). The combined +7.62 point gain shows up in all eleven Elo brackets without exception. The author is Tarun Kumar S, working alone; the paper is an arXiv preprint posted on 5 August 2026 and has not yet been through peer review.

Introduction

Today's paper is arXiv:2608.05206, "Otter: A Time-Aware, History-Conditioned Human Chess AI", by Tarun Kumar S of Peargent Labs in Bangalore, India. It is a solo-authored paper, filed under cs.AI with a cross-list to cs.LG, posted on 5 August 2026, and currently at v1. It is an arXiv preprint, not a peer-reviewed conference paper — worth stating up front. It has no citations yet and has not been widely discussed.

I picked it because it walks straight into the problem game makers most often get stuck on: making an AI opponent feel human. The standard industry fix is to take a strong search engine and cripple it — cut the search depth, sprinkle in random moves — which produces an opponent that is weak but not human. A shallow searcher does not fail the way people fail. Otter comes at it from the other end, learning the distribution of human moves from the start, and then argues one specific thing: if you want to predict human moves, looking at the board alone is not enough.

There is also a practical detail I cannot ignore as an implementer. 15.3 million parameters, one T4, thirty days. That is within reach of an individual or a small team. At a time when more and more results can only be reproduced by organisations with large compute budgets, these numbers sit close enough to make you think you could try something similar yourself. A footnote states that code and trained models are released at github.com/PeargentLabs/otter-chess (I have not inspected the repository myself).

Background

What was already known. Engines like Stockfish and Leela Chess Zero find the objectively best move far beyond human capability — but the best move and the human move are different objects. The task of predicting human moves was first taken seriously by Maia (McIlroy-Young, Sen, Kleinberg and Anderson, 2020, KDD), which trained nine separate supervised models, one per Elo bracket from 1100 to 1900, on top of the AlphaZero architecture (Silver et al., 2018). Maia 2 (Tang et al., 2024, NeurIPS) then folded this into a single model with skill embeddings for both players, gaining roughly two percentage points.

What was not known lies beyond that. The author's criticism is direct: both Maia and Maia 2 assume the current board is a sufficient statistic for the next move — the Markov assumption, in the language of stochastic processes. He calls it "mathematically convenient but behaviorally wrong." People play in sequences. Opening choices, the way a position has drifted, how the game has been going — all of these shape the next move, and a board-only model is blind to every one of them.

The second gap is time. That time pressure changes human judgement is documented outside chess as well. Sunde, Zegners and Strittmatter (2022) analysed move quality and decision times across more than 80,000 positions from 1,600 games. Carow and Witzig (2025, Journal of Economic Behavior and Organization 238) report that professionals under temporal stress favour risk-averse moves, while taking more risk from losing positions — strategic loss aversion. Remaining clock time is therefore not just a constraint; it shifts the distribution of moves. A model without it is discarding that explanatory power.

Approach

Otter takes six inputs: an 8x8 board as 18 binary channels (six planes for the active player's pieces, six for the opponent's, four castling rights, one en passant square, one side-to-move); the last 20 moves as indices into a vocabulary of 4,208 move representations plus a padding token; the active and opponent Elo ratings bucketed into 11 categories; the time-control format (five categories); and the remaining clock fractions for both sides. The board is always oriented from the active player's view, mirrored when Black is to move.

Processing splits into two streams. The board goes through three convolutional layers and four residual blocks, turning each square into one of 64 tokens of dimension 256. The history goes through a move-embedding table plus positional embeddings and a two-layer Transformer encoder with four heads — a very small component, only 0.87 million parameters. Its output is used twice: as the 20-token sequence itself, and as a masked mean-pooled summary vector. In the author's framing, the first carries local information and the second answers "how has this game gone overall?"

The clock treatment is my favourite part of the paper. Rather than raw seconds, time becomes two fractions: remaining time divided by base time, and per-move increment divided by base time. The first means half a clock carries comparable pressure whether the game is 10 minutes or 15. The second captures structural relief: a player with 30 seconds and no increment faces a different hazard than one with 30 seconds and a 5-second increment, and that difference is now a single number. Both feed a small network, and are concatenated with the two Elo embeddings and the pooled history summary into a 640-dimensional conditioning vector.

Fusion happens through cross-attention — one sequence attending to another — with the 64 board tokens as queries attending to the 20 history tokens. The conditioning vector is injected not by modulating normalisation layers but by adding a projection of it directly into the queries, and into all four following self-attention blocks as well. Three heads follow: a policy head over 4,208 moves (illegal moves masked before the softmax), a value head predicting the outcome between minus one and plus one, and an auxiliary head over 141 binary move properties (moving piece type, captured piece type, check flag, from-square, to-square). Training data is Lichess 2024, rated rapid only: 117,235,902 games, roughly 6.1 billion positions. Bullet and blitz are excluded because their time pressure differs in kind; classical for scarcity. Validation comes from January 2025 and the test set from February 2025 — 1,100,000 positions, 100,000 per Elo bracket — all outside the training period to prevent temporal leakage.

Findings

The headline numbers first. Table 7 reports Otter at 55.23% top-1 and 90.95% top-5, with 15.3 million parameters and 117 million training games. Maia 2 has 23.3 million parameters, 169 million training games (9.1 billion positions) and 53.25% top-1 — a gap of 1.98 percentage points. The Maia 2 figures are cited directly from Tang et al., and Maia 2's top-5 is not reported, so Otter's 90.95% has no baseline to sit against. Grouped into three skill cohorts, Maia 2 scores 51.72% / 54.15% / 53.87% against Otter's 54.66% / 56.32% / 57.09%. The author explicitly notes the comparison is not fully controlled for training data distribution.

Table 8's ablation — removing one component at a time — says what actually carries the result. The board-and-skill-only Base scores 47.61%; adding the history encoder gives 52.85%; adding the clock gives 55.23%. History contributes +5.24 points, the clock a further +2.38, for +7.62 total. The gain appears in all eleven Elo brackets, never below +7.22 and peaking at +7.96, with no bracket degrading. What strikes me is that the history-only variant at 52.85% comes within striking distance of Maia 2's 53.25%, while the Base sits 5.64 points below it. The author concludes that architectural differences alone do not explain the improvement.

Per-bracket accuracy rises monotonically from 49.48% (under 1100) to a peak of 57.38% (1900 to 1999), then slips to 56.80% at 2000 and above; top-5 climbs from 86.08% to 92.85%. The author attributes the dip at the top to the heterogeneity of the 2000-plus cohort, which spans club players to titled players with diverse opening preparation and stylistic preferences.

The most practically useful result is the breakdown by game phase (Figure 5). In the opening (plies 0 to 29), Base scores 43.98% against Full's 52.48%, a gap of +8.50 points; over the first ten plies, 39.46% becomes 52.09%, a gap of +12.63. The middlegame goes from 49.33% to 55.84%, the endgame (ply 80 onward) from 54.03% to 62.46%. The opening gain is intuitive — the board is barely differentiated yet, so what determines the move is the player's own preference. On history length (Figure 6), the last five moves alone already recover 84% of the benefit; K=5 to K=10 adds +0.92 points, K=10 to K=20 only +0.28.

Where you can use this

First: if you are building a competitive thinking game and need difficulty tiers. The usual approach is to weaken a strong solver — shallower search, occasional random moves — but that produces an opponent that is weak without being human, playing oddly in the opening and then suddenly precise in the endgame. Otter's lesson is to treat difficulty not as a performance dial but as a distribution to imitate. If you are making a competitive puzzle or a gomoku-style game, splitting your player logs by skill band and training on each band's move distribution directly is more likely to feel natural. The catch is needing enough logs of your own game — a hard prerequisite for a small title.

Second: the cost-effectiveness of history conditioning is remarkable. The history encoder is 0.87 million parameters, under 6% of the model, yet contributes +5.24 points on its own — and the last five moves alone recover 84% of that. If you have a hint system or difficulty estimator on a Sokoban-like or a daily number puzzle, simply keeping the player's last few actions in state may improve your next-move prediction. Even in a lightweight browser model, a five-slot ring buffer costs essentially nothing.

Third: the clock normalisation trick transfers directly. Instead of raw remaining seconds, split time into the fraction of base time remaining and the fraction granted per move as increment. Those two put different time settings on a common scale, which carries over to time-attack puzzles, timed dailies, and the logic deciding when to surface a hint. I would start by replacing any branching on absolute seconds with these two ratios. The finding that the opening is least determined by the board also argues for leaning your tutorial and early hints on how this player has started before, rather than on the mechanically optimal move.

Fourth, as a warning. In the Error Analysis the author states plainly that blunders are systematically underpredicted, because the model is trained to predict the modal human move at each skill level and blunders are low-frequency events carrying little weight in the loss. Drop such a model in as an opponent and you get an averagely smart version of a player in that band. Half of what makes an opponent feel human is how they err, so reproducing mistakes needs separate modelling. The author calls this a known limitation shared by all prior human chess models.

Limitations

Start with what the author admits. First, the comparison with Maia 2 is not fully controlled for training data distribution; Otter trains on Lichess 2024 rapid only, Maia 2 on a different period and composition, so this comparison alone cannot separate how much of the 1.98 point gap comes from model design. Second, the value loss does not decrease significantly in practice; the author keeps it as a regulariser without analysing why. Third, the systematic underprediction of blunders already mentioned. Fourth, the slight dip at 2000-plus is attributed to cohort heterogeneity. Fifth, the wider top-1 to top-5 gap in lower brackets is attributed to less consolidated opening knowledge and more variable move choice.

From here on these are things I noticed. What caught me first is that the paper has no Discussion, no Limitations and no Conclusion section. The body ends at 5.8 Error Analysis and jumps straight to acknowledgments and references. Every "admitted limitation" listed above is a sentence I gathered from the middle of the text. No future work is stated anywhere. That is not unusual for a solo-authored preprint, but it cannot be treated the way a peer-reviewed paper would be.

What I want to flag here is the design of the evaluation itself. Everything reported is top-1 and top-5 agreement against past game data. There is no human evaluation, no play session with participants, no Turing-test-style check. For a model whose claim is human-likeness, whether people actually experience it as human-like has not been tested. Nor is Otter's own playing strength measured as an opponent. High move-prediction accuracy and feeling natural to play against are different properties, and no bridge is built between them.

In smaller detail: training is restricted to Lichess rapid, so transfer to bullet, blitz or classical is untested. Ironically, a paper arguing for the importance of the clock excludes from training exactly the formats where time pressure bites hardest. The ablation also reports only top-1 for the history-only variant. Finally, a trivial point: although the paper is single-authored, the acknowledgments read "The authors" in the plural — it does not affect the results, but it suggests a manuscript still mid-revision.

How Fukai reads it

This section is my own interpretation. I would place this work in the drift of player modelling from "a function of the position" toward "a function of the game as an unfolding process." What Maia established was a horizontal difference: players at different skill levels choose different moves. What Otter adds is a vertical one: the same player chooses differently depending on where in the game they are and how much clock they have left. In the vocabulary of design criticism, this reads as a step toward automating the performance of an opponent — not a strength dial, but a reproduction of when and how someone hesitates. Seen as performance, though, what the paper lacks is equally clear: no reproduction of mistakes, and no evaluation by the audience, meaning human players. For now the most honest reading, I think, is to file this not as a human-like opponent in itself but as a proposal for a component underneath one — how to condition the distribution of human moves once you admit the axis of time.

Closing

Read on its own, Otter can look like it appeared from nowhere; in fact it sits on a stack. If you want to go deeper, start with the original Maia paper by McIlroy-Young and colleagues (2020, KDD), which is where the task of predicting human moves is posed in the first place. Then Tang et al.'s Maia 2 (2024, NeurIPS), which shows how skill conditioning was folded into a single model. One step further, McIlroy-Young et al.'s 2021 behavioral stylometry work (identifying individuals from their moves) and their 2022 paper on individual models trace the descent from population to person.

If the time-pressure side interests you more, the quickest entry is from economics. Sunde, Zegners and Strittmatter (2022) and Carow and Witzig (2025) treat chess as a natural experiment in decision-making under time constraints. These are less about game design than about why people play worse when rushed, and they supply vocabulary for anyone building a timed puzzle. The two ratios Otter feeds its model are, I would say, a minimal translation of exactly those findings.

References

Papers and materials referenced in this article:

Otter: A Time-Aware, History-Conditioned Human Chess AI (Tarun Kumar S, Peargent Labs, 2026, arXiv preprint arXiv:2608.05206)

DOI: 10.48550/arXiv.2608.05206 (arXiv-issued DOI, not a journal DOI)

PeargentLabs/otter-chess (released code and trained models, per the paper's footnote)

・Related: Aligning Superhuman AI with Human Behavior: Chess as a Model System (McIlroy-Young, Sen, Kleinberg, Anderson, 2020, KDD) — the original Maia paper

・Related: Maia-2: A Unified Model for Human-AI Alignment in Chess (Tang et al., 2024, NeurIPS)

・Related: Learning Models of Individual Behavior in Chess (McIlroy-Young et al., 2022, KDD)

・On time pressure: Sunde, Zegners and Strittmatter (2022) and Carow and Witzig (2025), Journal of Economic Behavior and Organization 238, p.107218 (both cited in Otter's Related Work)

Reactions (no login)

Anonymous • one of each per visitor per day

Part of these series

Paper DigestEpisode 53 of 91

Read next