Crosshair-Bench: Evaluating Frontier Models on an Unseen Game
I wanted a board game to benchmark language models on that isn't sitting in their training data. So on October 25, 2026, I invented Crosshair and trained a tiny 114K-parameter AlphaZero net for it on my desktop GPU in six minutes. None of these models have ever seen a Crosshair board or read a strategy guide for it. Should be safe for a few generations yet!
This note walks through the results from the Crosshair LLM Benchmark.
How the tournament works
I ran a 480-game tournament (crosshair-bench) with 20 models from five labs (Flagship and Flash tiers, high and low thinking) plus four search engines from ai-crosshair. Model matchups are 4 games each with colors swapped, and the engines played more games against each other to anchor the rating scale at az-puct-1 = 1200 Elo. Each turn, the harness sends the rules, the 7×7 ASCII board, and the legal moves, and az-puct-400 scores the move in the background (AZ-400 Match in the chart below). Check it out:
| # | Model | ||||
|---|---|---|---|---|---|
| 1 | az-puct-4000engine | 2343 | 127–1 (99%) | 82.9% | — |
| 2 | az-puct-400engine | 1888 | 117–18 (87%) | 99.9% | — |
| 3 | gemini-4-argon@high | 1440 | 19–13 (59%) | 42.2% | $0.39 |
| 4 | gpt-6.1-sol@low | 1408 | 9–11 (45%) | 39.9% | $0.14 |
| 5 | gpt-6.1-sol@high | 1398 | 17–15 (53%) | 40.4% | $0.49 |
| 6 | gemini-3.8-flash@high | 1328 | 20–16 (56%) | 46.3% | $0.17 |
| 7 | gemini-4-argon@low | 1290 | 6–14 (30%) | 38.8% | $0.10 |
| 8 | claude-opus-5.5@high | 1259 | 14–18 (44%) | 36.0% | $0.55 |
| 9 | claude-haiku-5.5@low | 1255 | 5–11 (31%) | 38.3% | $0.01 |
| 10 | claude-haiku-5.5@high | 1223 | 16–20 (44%) | 38.0% | $0.02 |
| 11 | deepseek-v4.1-flash@high | 1211 | 18–18 (50%) | 35.1% | $0.04 |
| 12 | az-puct-1engine | 1200 | 12–45 (21%) | 54.2% | — |
| 13 | gpt-6-luna@high | 1158 | 13–23 (36%) | 36.5% | $0.02 |
| 14 | deepseek-v4-pro@high | 1148 | 11–21 (34%) | 38.7% | $0.32 |
| 15 | random-uct-50engine | 1135 | 46–83 (36%) | 29.0% | — |
| 16 | gemini-3.8-flash@low | 1135 | 3–13 (19%) | 32.2% | $0.04 |
| 17 | claude-opus-5.5@low | 1085 | 4–16 (20%) | 31.8% | $0.31 |
| 18 | qwen3.8-flash@high | 1036 | 11–25 (31%) | 28.1% | $0.01 |
| 19 | qwen3.8-max@high | 978 | 6–26 (19%) | 31.6% | $0.18 |
| 20 | gpt-6-luna@low | 970 | 2–14 (13%) | 29.5% | $0.01 |
| 21 | qwen3.8-flash@none | 909 | 2–14 (13%) | 21.9% | $0.01 |
| 22 | deepseek-v4-pro@none | 899 | 2–18 (10%) | 20.4% | $0.02 |
| 23 | qwen3.8-max@none | 866 | 3–17 (15%) | 30.1% | $0.17 |
| 24 | deepseek-v4.1-flash@none | 865 | 1–15 (6%) | 17.1% | <$0.01 |
Against the engines
Every model played 4 games each against the MCTS and AlphaZero baselines:
- Without tree search, top LLMs win:
gemini-4-argon@high(1440 Elo) andgpt-6.1-solsweptrandom-uct-504–0, and 9 of the 20 models finished ahead of the raw policy net (az-puct-1,1200 Elo). If the neural net isn't allowed to search ahead, a frontier model thinking in its scratchpad can beat it. - At 400 simulations (
az-puct-400,1888 Elo), the engine went79–1: 19 of the 20 models got swept0–4. Onlygemini-4-argon@hightook a game (1–3). - At 4,000 simulations (
az-puct-4000,2343 Elo), the engine went80–0: Even whengpt-6.1-sol@highspent 70 seconds and$0.49per game thinking through lines,az-puct-4000(0.28sper move) had the board locked by ply 16.
Thinking budget vs. model size
High thinking beat low thinking 25–15 (+149 Elo on average) on the same model. More interesting: I pitted each lab's smaller Flash @high model against its own Flagship @low/@none model, and the small models won 16–4:
| Flash @high | Flagship @low / @none | Score | Elo | Cost / Game |
|---|---|---|---|---|
| claude-haiku-5.5@high | claude-opus-5.5@low | 4–0 | 1223 vs 1085 | $0.02 vs $0.31(17× cheaper) |
| deepseek-v4.1-flash@high | deepseek-v4-pro@none | 4–0 | 1211 vs 899 | $0.04 vs $0.02 |
| qwen3.8-flash@high | qwen3.8-max@none | 4–0 | 1036 vs 866 | $0.01 vs $0.17(13× cheaper) |
| gemini-3.8-flash@high | gemini-4-argon@low | 2–2 | 1328 vs 1290 | $0.17 vs $0.10 |
| gpt-6-luna@high | gpt-6.1-sol@low | 2–2 | 1158 vs 1408 | $0.02 vs $0.14(7× cheaper) |
Not a single low-thinking Flagship won its mini-match. claude-haiku-5.5@high swept claude-opus-5.5@low 4–0 at 16× lower cost, and qwen3.8-flash@high swept qwen3.8-max@none 4–0 at 13× lower cost. On a game you haven't memorized, having tokens to actually work through moves matters way more than model size.
Flagship and Flash round-robins
In the 5-lab round-robins (4 games per pair):
- Flagship
@high:gpt-6.1-sol@high(12–4) took first in the head-to-head bracket, sweeping Opus and Qwen4–0and splitting2–2with Argon and DeepSeek.gemini-4-argon@high(11–5) finished one game back in the round-robin, though its win overaz-puct-400kept it#1overall on Elo. - Flash
@high:gemini-3.8-flash@high(13–3,1328 Elo) crushed the Flash bracket, hit the highestAZ-400 Matchrate in the entire tournament (46.3%), and rated higher than three of the five Flagship@highmodels. Apparently Flash didn't get the memo that it was supposed to stay in the budget bracket.
Walking through the best games
Here are four of the best games from the tournament. Pick a tab below to step through the board, the az-puct-400 eval bar, and what the model was thinking on each turn (or click any model on /benchmark to browse all of its games):
| 1. | ||
| 2. | ||
| 3. | ||
| 4. | ||
| 5. | ||
| 6. | ||
| 7. | ||
| 8. | ||
| 9. | ||
| 10. | ||
| 11. | ||
| 12. | ||
| 13. | ||
| 14. | ||
| 15. | ||
| 16. | ||
| 17. | ||
| 18. | ||
| 19. |