| # | Model | Score | Steps | In tok | Out tok | Avg cost | Avg time |
|---|---|---|---|---|---|---|---|
| 1 | Claude Fable 5.1 | 0.8957 ±0.076 | 266 | 72.8M | 265k | $42.84 | 9.9h |
| 2 | GPT-5.6 | 0.8186 ±0.059 | 240 | 37.3M | 123k | $24.22 | 7.6h |
| 3 | Kimi K3 | 0.4300 ±0.228 | 308 | 81.9M | 325k | $32.14 | 14.3h |
| 4 | Grok 4.6 | 0.3936 ±0.215 | 417 | 98.7M | 866k | $110.04 | 12.3h |
| 5 | GLM-5.3 | 0.3729 ±0.111 | 311 | 89.0M | 330k | $33.18 | 14.4h |
| 6 | Muse Spark 1.2 | 0.3464 ±0.082 | 176 | 38.5M | 470k | $8.40 | 5.6h |
| 7 | Gemini 3.7 Flash | 0.2121 ±0.164 | 430 | 151.1M | 658k | $23.43 | 5.8h |
| 8 | DeepSeek V4 Flash Exp | 0.0707 ±0.076 | 382 | 138.8M | 427k | $2.59 | 11.6h |
| 9 | Inkling | 0.0664 ±0.080 | 85 | 2.8M | 26k | $2.78 | 1.4h |
| 10 | Qwen3.8-Max | 0.0650 ±0.047 | 356 | 59.5M | 728k | $19.73 | 13.5h |
Reconnaissance Blind Chess (RBC) is an imperfect-information variant of chess: a player never sees the opponent's moves or the true board, only a private 3×3 sense result each turn and the outcomes of its own moves. Playing well requires maintaining a belief distribution over thousands of possible board states, choosing sense actions that maximize information, and moving under genuine uncertainty — all classic hard problems in game AI.
This task is deliberately RBC-adjacent rather than standard RBC: the submitted bot is blind, but its opponents are sighted chess engines that receive the true board every turn. The question is how much of Stockfish's playing strength can be recovered through the limited RBC observation and action channels — under a fast 3+3 Fischer clock that rules out brute-force belief enumeration.
Implement make_bot(game_id: str) in /app/blind_bot.py, returning a reconchess.Player. The bot receives the ordinary RBC callbacks — sense results and its own move outcomes — but never the true board or the opponent's hidden move, while its engine opponents see everything.
game_id is opaque: the bot must not depend on an encoded opponent, color, schedule position, or random seed./appworkspace is read-only during a match, and writable scratch is fresh for every game — no cross-game state is available./app and imported from the factory.A CPU-only workspace with the bot stub at /app/blind_bot.py, interface documentation in /app/README.md, and a development match runner at /app/run_dev_matches.py that plays seeded games against sighted Stockfish at three strengths (--level easy targeting roughly 1320 Elo, medium roughly 1700, hard roughly 2200) and reports wins, losses, callback failures, timing, and replay paths. Preinstalled: Stockfish 15.1 at /usr/games/stockfish, Python 3.11 with reconchess 1.6.9, python-chess, and NumPy. The sealed evaluation policies and their configurations are root-only and never visible. The machine is offline; a sandbox-timer CLI reports the remaining budget.
A root-only verifier in a separate no-network container plays an official 140-game evaluation: 10 color-balanced games against each of 14 sealed policies — two sighted-Stockfish policy families across seven strength bands from 800 to 2000. The reward is the mean game score (win 1, draw 0.5, loss 0) over all 140 games. The mixture score is uncalibrated and is not a human or classical Elo rating.
agentuser inside a required cgroup-v2 / PID-namespace containment with a read-only root, private tmpfs scratch, seccomp restrictions, and trusted turn timing enforced outside the bot's process.| Base image | ubuntu:22.04 |
| Tools available | Python 3 |
| Compute | 6 CPUs · 24 GB RAM |
| Time limit | 15h |
/usr/games/stockfish. Used sighted — granted the true board each turn — in the two sealed policy families; the submission never receives the true board or policy source.Player interface the submission implements and the game loop the harness drives (version 1.6.9).