<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Evgenii</title>
    <description>The latest articles on DEV Community by Evgenii (@evgenii_4dab1cf1880f7a999).</description>
    <link>https://dev.to/evgenii_4dab1cf1880f7a999</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4139060%2Fb99f2ba0-3a97-44b1-a512-b6ad82a6dc71.png</url>
      <title>DEV Community: Evgenii</title>
      <link>https://dev.to/evgenii_4dab1cf1880f7a999</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/evgenii_4dab1cf1880f7a999"/>
    <language>en</language>
    <item>
      <title>30 of 37 games ended in repetition: what small LLMs do in chess when they don't know what to do</title>
      <dc:creator>Evgenii</dc:creator>
      <pubDate>Wed, 23 Sep 2026 19:25:50 +0000</pubDate>
      <link>https://dev.to/evgenii_4dab1cf1880f7a999/30-of-37-games-ended-in-repetition-what-small-llms-do-in-chess-when-they-dont-know-what-to-do-2k97</link>
      <guid>https://dev.to/evgenii_4dab1cf1880f7a999/30-of-37-games-ended-in-repetition-what-small-llms-do-in-chess-when-they-dont-know-what-to-do-2k97</guid>
      <description>&lt;p&gt;We run a live stream where language models play chess against each other — every move is a real API call, no engines, no tools (&lt;a href="https://dev.to/evgenii_4dab1cf1880f7a999/we-made-language-models-play-chess-against-each-other-live-around-the-clock-ck3"&gt;first write-up here&lt;/a&gt;). Yesterday's cup had frontier-ish models (Gemini, Claude, GPT, Grok). Today's &lt;strong&gt;Chess Machines Cup II&lt;/strong&gt; was ten smaller and cheaper models — and it played very differently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;▶ Watch live: &lt;a href="https://www.youtube.com/live/sKpIL4CpUXw" rel="noopener noreferrer"&gt;https://www.youtube.com/live/sKpIL4CpUXw&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cup II results
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Points (of 9)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;DeepSeek V4 Flash (0423)&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Ministral 3B&lt;/td&gt;
&lt;td&gt;5.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Gemma 4 31B&lt;/td&gt;
&lt;td&gt;5.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Mistral Small 3.2 24B&lt;/td&gt;
&lt;td&gt;5.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;Solar Pro 4&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6–8&lt;/td&gt;
&lt;td&gt;Hy3, Nemotron 3.5 Lightning, DeepSeek V4.1 Flash&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;Granite 4.2 8B&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;GLM 5.3 Flash&lt;/td&gt;
&lt;td&gt;0 (disqualified)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Cup I vs Cup II in numbers
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Cup I (bigger models)&lt;/th&gt;
&lt;th&gt;Cup II (smaller models)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Decisive games&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;67%&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;19%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Checkmates&lt;/td&gt;
&lt;td&gt;19&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Draws by repetition&lt;/td&gt;
&lt;td&gt;15&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;30&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Average centipawn loss per move&lt;/td&gt;
&lt;td&gt;236&lt;/td&gt;
&lt;td&gt;321&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blunders (≥3 pawns lost)&lt;/td&gt;
&lt;td&gt;27% of moves&lt;/td&gt;
&lt;td&gt;36% of moves&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Illegal move on first try&lt;/td&gt;
&lt;td&gt;42%&lt;/td&gt;
&lt;td&gt;53%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;(Average centipawn loss = how much worse, by Stockfish, a move was than the best move. Lower is better. Gemini 3.6 Flash scored 37 in Cup I; the best model of Cup II, Gemma 4 31B, scored 247 — roughly the level of Cup I's middle of the table.)&lt;/p&gt;

&lt;h2&gt;
  
  
  What we learned
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. When a weak model has no plan, it shuffles.&lt;/strong&gt; 30 of 37 games ended in threefold repetition. Pieces go back and forth — a knight to f3 and back to g1, a rook along the same rank. It's not a bug in our engine; it's what the models do. A 3-billion-parameter model finished second largely by drawing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Points and quality don't always agree.&lt;/strong&gt; In Cup I, GPT-5.1 had the second-best move quality of the whole field and still finished sixth — five of its games were drawn by repetition. We're giving it the wildcard into Friday's Grand Prix.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. "Thinking" models can be too slow for a clock.&lt;/strong&gt; We give 60 seconds per move. Some reasoning models sat at the limit on almost every middlegame move — one was disqualified after five moves in a single game without an answer. Reasoning-effort settings and even a token budget were ignored by some providers; only turning reasoning off completely made them answer in 1–2 seconds. Surprisingly, their move quality stayed mid-table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. So we added a "kick".&lt;/strong&gt; From Cup III on, a model gets 45 seconds to think. If it hasn't moved by then, the same attempt is immediately re-sent with reasoning disabled, so the move still lands within 60 seconds. It is not counted as a failure. Thinkers keep thinking when they can afford it — and nobody hangs the stream for three minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Single-provider models are a liability.&lt;/strong&gt; Three games today were annulled because one inference provider rate-limited us. The rules say provider errors never count against a model, so these games are simply replayed — but for a live show, redundancy matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Thu, 10:00 Moscow (07:00 UTC)&lt;/strong&gt; — Chess Machines Cup III (DeepSeek, GPT-6 Luna, Gemma 4, Ling 3.0, MiMo, Qwen)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fri&lt;/strong&gt; — Grand Prix: the podium finishers of all three cups + GPT-5.1&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sat&lt;/strong&gt; — Final Four · &lt;strong&gt;Sun&lt;/strong&gt; — Underdogs · &lt;strong&gt;Mon&lt;/strong&gt; — best games in replay&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Between cups the stream loops the best games of the week, clearly marked &lt;strong&gt;REPLAY&lt;/strong&gt;, with a countdown to the next live cup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;▶ &lt;a href="https://www.youtube.com/live/sKpIL4CpUXw" rel="noopener noreferrer"&gt;https://www.youtube.com/live/sKpIL4CpUXw&lt;/a&gt;&lt;/strong&gt; — and tell us which model should play next.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>chess</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>We made language models play chess against each other — live, around the clock</title>
      <dc:creator>Evgenii</dc:creator>
      <pubDate>Wed, 23 Sep 2026 08:50:38 +0000</pubDate>
      <link>https://dev.to/evgenii_4dab1cf1880f7a999/we-made-language-models-play-chess-against-each-other-live-around-the-clock-ck3</link>
      <guid>https://dev.to/evgenii_4dab1cf1880f7a999/we-made-language-models-play-chess-against-each-other-live-around-the-clock-ck3</guid>
      <description>&lt;p&gt;&lt;strong&gt;▶ Watch the live stream: &lt;a href="https://www.youtube.com/live/sKpIL4CpUXw" rel="noopener noreferrer"&gt;https://www.youtube.com/live/sKpIL4CpUXw&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every move on our stream is a real, live request to a language model: Gemini, Claude, GPT, Grok, Llama, Qwen, Mistral, DeepSeek and more. No engines, no tools, no pre-recorded games. The broadcast runs on YouTube almost non-stop — &lt;a href="https://www.youtube.com/live/sKpIL4CpUXw" rel="noopener noreferrer"&gt;https://www.youtube.com/live/sKpIL4CpUXw&lt;/a&gt; — and all standings and games are on kremen-arena.ru.&lt;/p&gt;

&lt;p&gt;The first tournament is over, the second one is live right now, and it turned out far more interesting than we expected.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you see on the stream
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The board, both clocks, and a live win-probability bar computed by Stockfish.&lt;/li&gt;
&lt;li&gt;"Thinking": a short excerpt of what the model wrote before its move.&lt;/li&gt;
&lt;li&gt;A counter of moves the model did not get right on the first try — you can see at a glance who "sees" the board and who is guessing.&lt;/li&gt;
&lt;li&gt;A passport for each model: vendor, release date, Elo rating.&lt;/li&gt;
&lt;li&gt;A LIVE badge in the corner at all times — and REPLAY when we show recorded games — so you always know whether you are watching a game as it happens.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Between games: the result, the standings and the next pairing. When a tournament ends: the podium, congratulations, and a countdown to the next one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rules: same for everyone
&lt;/h2&gt;

&lt;p&gt;For the results to mean anything, every model plays under identical conditions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;one system prompt for everyone (its hash is published), temperature 0, one request per move, no tools or external engines;&lt;/li&gt;
&lt;li&gt;60 seconds per move; 20 minutes per side plus 5 seconds per move, and the clock is spent by the model's real response time;&lt;/li&gt;
&lt;li&gt;an illegal move costs time and triggers a retry that includes the list of legal moves; after three misses a random legal move is played, and five of those in one game is a forfeit;&lt;/li&gt;
&lt;li&gt;provider errors (overload, network) are never the model's fault: the request is retried for free, without touching the clock;&lt;/li&gt;
&lt;li&gt;the model version and the provider are pinned for the whole event;&lt;/li&gt;
&lt;li&gt;pairings come from the hash of a Bitcoin block whose number is announced in advance, so anyone can recompute them.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Chess Machines Cup I: the results
&lt;/h2&gt;

&lt;p&gt;Ten models, round robin, 45 games: 19 ended in checkmate, 15 in a draw by the rules, 9 on time, 2 by forfeit.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Place&lt;/th&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Points&lt;/th&gt;
&lt;th&gt;Illegal on 1st try&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;Gemini 3.6 Flash&lt;/td&gt;
&lt;td&gt;9 / 9&lt;/td&gt;
&lt;td&gt;0%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;Claude Sonnet 5&lt;/td&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;19%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;Llama 3.1 8B Instruct&lt;/td&gt;
&lt;td&gt;5.5&lt;/td&gt;
&lt;td&gt;72%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;Grok 4.3&lt;/td&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;4%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5–6&lt;/td&gt;
&lt;td&gt;Cohere Command R7B, GPT-5.1&lt;/td&gt;
&lt;td&gt;4.5&lt;/td&gt;
&lt;td&gt;92% / 9%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;Amazon Nova Micro&lt;/td&gt;
&lt;td&gt;3.5&lt;/td&gt;
&lt;td&gt;77%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8&lt;/td&gt;
&lt;td&gt;Mistral Nemo&lt;/td&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;67%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;Microsoft Phi-4&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;54%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;td&gt;Qwen3.7 Flash&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;37%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;What surprised us:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemini 3.6 Flash won every single game&lt;/strong&gt; — and never played an illegal move on the first try.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bronze went to Llama 3.1 8B, a small model from 2024.&lt;/strong&gt; Almost three quarters of its first attempts are illegal, but once it gets the legal-move list it plays stubborn chess: five draws and a single loss, ahead of GPT-5.1 and Grok 4.3.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Qwen3.7 Flash lost on time in a position Stockfish gave it 93% to win.&lt;/strong&gt; It kept thinking at its usual pace until the flag fell. That game made us add a time-trouble rule: with under 15 seconds on the clock, each reply gets 5.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What building it taught us
&lt;/h2&gt;

&lt;p&gt;A few things we learned the hard way, in public, during the first live week:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Output budget plus prompt must fit the provider's context window.&lt;/strong&gt; One model's endpoint had a 16,384-token window; we reserved 16,000 tokens for the answer. Short prompts fit — until the model made an illegal move late in the game and the retry prompt, now carrying the legal-move list, grew past ~390 tokens. Every retry was rejected, and the game had to be annulled. The fix was trivial; noticing it took three voided games.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A model served by a single provider is a liability on a live stream.&lt;/strong&gt; When that one provider rate-limits, the game stalls in front of viewers. We now only admit models that several providers serve.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validate the pinned provider before the season, not during it.&lt;/strong&gt; When we set up the next two cups, 14 of the 20 new participants had a provider slug that simply did not serve that model. Our pre-flight check now compares every participant against the public OpenRouter catalog — model exists, provider serves it, context window fits — before a single paid request is made.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;The plan for this week :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Wed–Thu&lt;/strong&gt; — Chess Machines Cup II and III, ten new models each (DeepSeek, GLM, Gemma, Nemotron, Qwen, Ling, MiMo and others). Cup II is live now;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fri&lt;/strong&gt; — Grand Prix: the podium finishers of all three cups plus the highest-rated fourth-place finisher;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sat&lt;/strong&gt; — the final four;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sun&lt;/strong&gt; — an underdogs tournament;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mon&lt;/strong&gt; — the best games of the week as replays, clearly marked REPLAY.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;A Django + Celery backend runs the games, python-chess enforces the rules, Stockfish evaluates positions, and model requests go through OpenRouter with the provider pinned. The stream is produced on the same server without OBS: a browser overlay page in Xvfb, Chromium and ffmpeg at 720p.&lt;/p&gt;

&lt;p&gt;Come watch — and tell us in the comments which model should play in the next cup.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;▶ Live stream: &lt;a href="https://www.youtube.com/live/sKpIL4CpUXw" rel="noopener noreferrer"&gt;https://www.youtube.com/live/sKpIL4CpUXw&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>chess</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
