SpaceChem Bench: Can LLMs Beat Humans at 2D Spatial Programming?

In SpaceChem, instead of writing lines of code, you draw two waldo tracks (one red, one blue) on a 10×8 reactor grid to grab, bond, fuse, and output molecules without colliding. We gave 16 LLMs all 55 non-boss puzzles through a text interface, withheld the community archive, and told them to keep optimizing.

20new frontier points
11 / 55puzzles with new frontier points
11knock a community solution off the frontier

Within days, players picked up the models’ reactors and improved on them.

The game scores a working solution on cycles, reactors, and symbols: how long it runs, how many reactors it uses, and how many arrows and instructions it places. Lower is better, but the scores pull against each other. A faster machine usually needs more symbols, so each puzzle has a frontier of tradeoffs instead of one best answer. Players have been trading solutions on a public community archive for years.

Leaderboard

We ran 16 LLMs, covering leading frontier and open-weight models. Every model attempted every non-boss puzzle in the main campaign, the 63 Corvi expansion, and the three Team Fortress 2 levels, in one scored attempt each (pass@1), with 10 to 60 minutes per puzzle, depending on difficulty. 37 of the puzzles run inside a single fixed reactor. In the other 18 (SpaceChem’s production levels), the model routes pipes between tanks and reactors on a terrain map, from a zero-reactor pipeline tutorial up to six-reactor chemical plants.

Model ranking

Average proximity to community records · 100 matches the archive

All 55 puzzles · 37 single-reactor / 18 multi-reactor · 19 easy / 18 medium / 18 hard

  1. 74.3 record proximity
    GPT-6 Astra
  2. 69.7 record proximity
    GPT-6.1 Sol
  3. 66.2 record proximity
    Opus 5.5
  4. 65.2 record proximity
    Gemini 4 Argon
  5. 53.7 record proximity
    Sonnet 5.5
  6. 49.8 record proximity
    Fable 5.1
  7. 42.6 record proximity
    Gemini 3.8 Flash
  8. 41.7 record proximity
    Kimi K3.1 Pro
  9. 36.8 record proximity
    Muse Wonder 1.0
  10. 31.8 record proximity
    DeepSeek V4.1 Flash
  11. 29.4 record proximity
    Muse Spark 1.3
  12. 29.4 record proximity
    Grok 4.7
  13. 24.5 record proximity
    Haiku 5.5
  14. 19.3 record proximity
    GPT-6 Luna
  15. 16.4 record proximity
    GLM-5.3
  16. 9.8 record proximity
    MiMo-V2.6-Pro

Scroll horizontally to compare all models →

100 matches the community’s best cycle, reactor, and symbol records on average; above 100 beats them.

GPT-6 Astra leads on every Pareto-aware metric: 74.3 record proximity, 67.8 sum score, 69.7 3D hypervolume, and 57.4 frontier coverage, solving 54 of 55 puzzles and missing only Ω-Pseudoethyneorganic_5, which no model solved. Record proximity compares a model’s best cycle, reactor, and symbol scores against the community records (100 matches them), even when those three come from different solutions; sum score, following Opus Magnum Bench, compares the single solution with the lowest combined cycles + reactors + symbols; and 3D hypervolume measures how much of the community Pareto frontier’s dominated volume the model’s frontier covers. GPT-6.1 Sol is second across all three (69.7 proximity, 62.4 sum, 63.2 hypervolume, 52 solved), ahead of Opus 5.5 (66.2, 60.9, 61.8, 48 solved). On frontier breakthroughs, Gemini 4 Argon ties GPT-6 Astra at the top with 7 new frontier points across 5 puzzles (evaluated per model against the frozen archive; pooling across all models yields 20 nondominated points), despite ranking fourth overall (65.2 proximity, 46 solved) after losing 8 of the 18 multi-reactor puzzles.

Compared with TIS-100 Bench, where the same 16 models solved 82% of episodes (724 of 880), found 133 new frontier points, and Opus 5.5 tied GPT-6 Astra at 55 of 55 solved, SpaceChem cuts overall solve rate to 56% (495 of 880). Multi-reactor puzzles drive most of that drop: 68% of single-reactor episodes passed (404 of 592), against 32% of multi-reactor ones (91 of 288), even though multi-reactor puzzles are split evenly across easy, medium, and hard. Fable 5.1 solved 52 of 55 in TIS-100 Bench and 32 of 37 single-reactor puzzles here, but only 4 of 18 multi-reactor ones.

Full rankings Expand the table
SpaceChem benchmark model rankings. Select column headings to sort.
01GPT-6 Astra74.367.869.757.45 (7)54 / 5537 / 3717 / 18
02GPT-6.1 Sol69.762.463.252.94 (5)52 / 5537 / 3715 / 18
03Opus 5.566.260.961.850.92 (4)48 / 5535 / 3713 / 18
04Gemini 4 Argon65.257.059.746.75 (7)46 / 5536 / 3710 / 18
05Sonnet 5.553.748.345.938.02 (3)41 / 5532 / 379 / 18
06Fable 5.149.843.343.635.51 (1)36 / 5532 / 374 / 18
07Gemini 3.8 Flash42.634.333.228.5032 / 5529 / 373 / 18
08Kimi K3.1 Pro41.732.528.326.2034 / 5530 / 374 / 18
09Muse Wonder 1.036.829.927.525.31 (1)29 / 5525 / 374 / 18
10DeepSeek V4.1 Flash31.825.624.421.1024 / 5522 / 372 / 18
11Muse Spark 1.329.422.320.719.3023 / 5520 / 373 / 18
12Grok 4.729.424.722.319.9022 / 5520 / 372 / 18
13Haiku 5.524.519.016.715.5020 / 5519 / 371 / 18
14GPT-6 Luna19.314.212.011.8015 / 5513 / 372 / 18
15GLM-5.316.414.012.610.2012 / 5511 / 371 / 18
16MiMo-V2.6-Pro9.87.17.16.007 / 556 / 371 / 18

Counts are out of 55 puzzles. Point totals are in parentheses and are evaluated per model against the frozen archive (28 model points in total, which pool to 20 nondominated points across models). Methods

RL environments & traces are available upon request for research teams. Get in touch ↗

How it works: harness design

SpaceChem has no text format to type into. Players drag arrows and instructions onto the grid with a mouse. We run the unmodified Linux release of the game on a virtual display and give models text tools instead. A model’s edits are written straight into the game’s save file, and every score in this article comes from the real game.

Text, not screenshots
Models read the puzzle as text: the input and target molecules drawn in ASCII, the reactor’s features, and the game’s coarse score histograms. A render tool draws both waldos’ paths on the grid. Models get no screenshots, community solutions, or record scores.
Edit by path or by cell
set_reactor turns a list of corner waypoints into a waldo path with its arrows. Other tools place or clear single cells, or load a whole solution in the community’s text format. Multi-reactor puzzles add tools to place reactors and route pipes.
Diagnostics
A failed run reports what went wrong, on which cycle, in which cell: two atoms colliding, the wrong molecule output, or a deadlock, with each waldo’s position and what it holds. A trace tool steps through cycles.
Saved progress
Every passing solution joins the model’s own frontier and can be recovered with get_best, so a risky edit can’t lose an earlier result.
Reminders and a clock
A pass doesn’t end the episode. If a model stops early, a reminder asks it to keep looking for tradeoffs. Every tool result shows the time used against the 10- to 60-minute limit.
Two-second runs
A run plays the solution at the game’s top speed and takes about two seconds. SChem, the community’s open-source simulator, predicts failures in advance, so the harness doesn’t wait out a crashed or stuck reactor.

Why check for precognition? Fourteen puzzles draw some inputs at random, but the game always uses the same seed. A solution can pass by assuming the sequence it will see instead of sensing each atom, and the community doesn’t accept that. We run SChem’s precognition check, which replays a solution on other seeds, after every passing run and tell the model if it fails. It flagged one of 7,497 passing runs: on The Blue Danuberesearch_1, Gemini 4 Argon’s 191-cycle solution passed in the game, but only 40 of 312 runs on other seeds succeeded. Gemini 4 Argon’s best clean solution stayed at 219 cycles.

The search over time

A passing solution is only the starting point: models keep editing and running until the 10- to 60-minute clock expires, trading symbols for cycles or recovering an earlier checkpoint with get_best when a rewrite crashes. On No Employment Record Foundresearch_6, for example, Sonnet 5.5’s first passing reactor two minutes in took 1,113 cycles; twenty minutes later it reached 465 cycles before finishing at 464/1/23 and 504/1/22 (examined up close below).

Loading puzzle trajectories…

Where 2D spatial programming breaks the models

2D layout reshuffles the TIS-100 leaders, and price still doesn’t buy rank

In TIS-100 Bench, Opus 5.5 and GPT-6 Astra finished in a statistical tie. Moving from 1D assembly to a 10×8 spatial grid separates them: GPT-6 Astra leads at 74.3 record proximity for an estimated $5.55 per puzzle, while GPT-6.1 Sol takes second at 69.7 for $1.17, 4.7 times cheaper than GPT-6 Astra and 4.2 times cheaper than Opus 5.5 (66.2 at $4.90). Muse Wonder 1.0 is the most expensive model tested at $9.94 per puzzle and finishes ninth at 36.8.

880episodes
129.4Moutput tokens
94,381game-tool calls
Loading analysis…

Physical collisions, not wrong chemistry, kill 57% of failed runs

Models ran their reactors 23,745 times, and 32% passed. Of the 16,248 failed runs, 57% crashed from physical collisions: two atoms meeting in one cell, a rotated molecule clipping a wall, or a new input spawning onto an atom that hadn’t cleared the intake zone. Another 26% deadlocked in loops that never reached the target count, and only 12% actually output the wrong molecule (5% failed static checks before simulation). Models usually figure out the chemistry; they lose on 2D traffic control.

What the models built

Across all 16 models, 28 model-frontier points beat the frozen archive; pooling across models deduplicates shared discoveries and drops six points superseded by another model on No Employment Record Foundresearch_6, An Introduction to Sensingsensing_1, and Ice to Meet Youfusion_1, leaving 20 nondominated points across 11 puzzles. None of the 20 beats the community’s best cycle, reactor, or symbol count outright (each is a new tradeoff), and 11 of them knock an existing community solution off the frontier by matching or beating it on all three scores. All 20 are on single-reactor puzzles.

All 20 new frontier points

Cycles/reactors/symbols · lower is better · select a puzzle to open it in the explorer

PuzzleFound byScoreAgainst the frozen archive
No Employment Record FoundSonnet 5.5464/1/23Beats 465/1/24 (12345ieee) and 501/1/23 (Haxton)Since improved to 463/1/23 by 12345ieee
No Employment Record FoundSonnet 5.5504/1/22Beats 540/1/22 (General_Lecter_)Since improved to 503/1/22 by 12345ieee
No Employment Record FoundOpus 5.5548/1/21Fills the gap between 540/1/22 and 690/1/20Since improved to 544/1/21 by 12345ieee
Right All AlongGemini 4 Argon1,500/1/25Fills the gap between 1,021/1/26 and 1,877/1/19
Right All AlongGemini 4 Argon1,640/1/24Fills the gap between 1,021/1/26 and 1,877/1/19
Prelude to a MigraineGemini 4 Argon69/1/13Beats 74/1/13 (xrdd)
Slightly DifferentGPT-6 Astra51/1/11Beats 52/1/11 (Ebola0001)
Slightly DifferentGPT-6 Astra GPT-6.1 Sol Muse Wonder 1.052/1/10Beats 52/1/11 (Ebola0001) and 53/1/10 (EvilMidget)
Like a BossGPT-6.1 Sol273/1/24Fills the gap between 249/1/26 and 304/1/21
An Introduction to SensingSonnet 5.5146/1/21Beats 146/1/22 (Biblin)
An Introduction to SensingGPT-6 Astra161/1/17Beats 162/1/17 (cake-pie)
Under the IceGemini 4 Argon102/1/19Fills the gap between 100/1/22 and 126/1/18
Under the IceGemini 4 Argon105/1/18Beats 126/1/18 (busdriver)
Ice to Meet YouFable 5.192/1/15Fills the gap between 76/1/16 and 103/1/14
The Plot ThickensGPT-6.1 Sol468/1/31Fills the gap between 449/1/34 and 551/1/27
The Plot ThickensGPT-6.1 Sol469/1/29Fills the gap between 449/1/34 and 551/1/27
The Plot ThickensGemini 4 Argon720/1/18Beats 729/1/21 (Haxton) and 805/1/19 (Zemyla)
Moustachium 604Gemini 4 Argon165/1/12Beats 173/1/12 (DarkJak568)
Moustachium 604GPT-6 Astra288/1/10Beats 314/1/10 (12345ieee)
QT-4GPT-6 Astra617/1/21Fills the gap between 449/1/22 and 917/1/19

One record up close: random inputs and fusion

No Employment Record Foundresearch_6 feeds in boron, aluminum, or silicon at random and wants hydrochloric acid. The reactor has to fuse each atom up to chlorine, check it with a sensor, and bond it to hydrogen. When we froze the archive, the best community solution with 23 symbols took 501 cycles. Sonnet 5.5’s first passing solution, two minutes in, took 1,113 cycles. Twenty minutes in, it had a 465-cycle solution, and it finished with two new frontier points: 464/1/23, which knocks the community’s 501/1/23 and 465/1/24 off the frontier, and 504/1/22, 36 cycles faster than the best 22-symbol solution. Opus 5.5 added 548/1/21, between the community’s 22- and 20-symbol solutions (and GPT-6 Astra’s 464/1/24 and Opus 5.5’s 473/1/23 and 508/1/22 also beat the frozen archive at 22–24 symbols before being superseded by Sonnet 5.5’s points in the pooled frontier).

The 464-cycle reactor

Sonnet 5.5 · 1 reactor · 23 symbols · replayed in a fresh game

Layout

α β ψ ω 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 ↑ ↓ ↓ → ← ← → → → ← S→ S← G/D G/D OUT ψ G/D FUSE ?Cl↑ IN β B+ G/D IN β ?S← IN β IN α

Running in the game

Sonnet 5.5’s 464-cycle solution running in SpaceChem
Red waldo path and instructionsBlue waldo path and instructionsBonders, sensor, fuserα, β inputs on the left · ψ, ω outputs on the right

A tutorial with a cycle to spare

Slightly Differentresearch_tutorial_1 is an early tutorial: move ten hydrogen molecules from the β input to the ω output. The community’s best solutions, 52/1/11 and 53/1/10, already shuttle both waldos back and forth along one row instead of running them around a loop. GPT-6 Astra kept that idea, moved the track one column left, changed where the waldos start, and found 51/1/11. GPT-6 Astra, GPT-6.1 Sol, and Muse Wonder 1.0 each found 52/1/10, which beats both old solutions. Muse Wonder 1.0’s is now in the archive.

The 51-cycle shuttle

GPT-6 Astra · 1 reactor · 11 symbols · the box on the right of the recording is the tutorial’s own hint

Layout

α β ψ ω 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 → ← → ← S← OUT ω S↓ G/D G/D IN β G/D G/D OUT ω

Running in the game

GPT-6 Astra’s 51-cycle solution running in SpaceChem

Two old solutions beaten at once

The Plot Thickensmining_7 builds polyethylene chains from carbon and hydrogen and outputs them into a tall output zone. Gemini 4 Argon’s 720/1/18 is faster and uses fewer symbols than two community solutions at once: 729/1/21 by Haxton and 805/1/19 by Zemyla. Its red waldo runs a 2×6 loop near the left wall, taking in atoms, bonding, and outputting. The blue waldo shuttles along one row with just four instructions: sync, bond, grab, and rotate. At the fast end of the same frontier, GPT-6.1 Sol added 468/1/31 and 469/1/29, between the community’s 449/1/34 and 551/1/27.

The 18-symbol polymer line

Gemini 4 Argon · 1 reactor · 12 red and 6 blue symbols

Layout

α β ψ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 ↓ → ← ↑ → ← S← S↓ G/D IN β B+ SYNC IN β IN α OUT ψ G/D SYNC B+ G/D CW

Running in the game

Gemini 4 Argon’s 720-cycle solution running in SpaceChem

Fusion, 21 cycles faster

Under the Icefusion_2 makes nitrous oxide from hydrogen and nitrogen, and the reactor has a fuser, which merges two atoms into one with their combined atomic number. Gemini 4 Argon’s 105/1/18 beats busdriver’s 126/1/18 at the same symbol count, 17% faster. Its red waldo runs a 2×5 loop that takes in both inputs, and the blue waldo shuttles along one row through the fuser. Gemini 4 Argon also found 102/1/19, between the community’s 100/1/22 and 126/1/18.

The 105-cycle fusion reactor

Gemini 4 Argon · 1 reactor · 18 symbols

Layout

α β ψ ω 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 → ↑ ↓ ← → ← S↓ S→ G/D G/D OUT ψ IN β IN β G/D IN α FUSE IN β B+ B+ G/D

Running in the game

Gemini 4 Argon’s 105-cycle solution running in SpaceChem

Performance by puzzle mechanic

Fraction solved · puzzles with new points below

ModelBonding & routing20 puzzlesSensing9 puzzlesFusion4 puzzlesQuantum tunnels4 puzzlesMulti-reactor production18 puzzles
GPT-6 Astra20/202 new9/91 new4/41 new4/41 new17/180 new
GPT-6.1 Sol20/202 new9/92 new4/40 new4/40 new15/180 new
Opus 5.519/200 new8/90 new4/42 new4/40 new13/180 new
Gemini 4 Argon20/201 new9/93 new4/41 new3/40 new10/180 new
Sonnet 5.518/200 new6/91 new4/41 new4/40 new9/180 new
Fable 5.118/200 new6/90 new4/41 new4/40 new4/180 new
Gemini 3.8 Flash17/200 new5/90 new4/40 new3/40 new3/180 new
Kimi K3.1 Pro17/200 new6/90 new4/40 new3/40 new4/180 new
Muse Wonder 1.015/201 new5/90 new3/40 new2/40 new4/180 new
DeepSeek V4.1 Flash13/200 new4/90 new3/40 new2/40 new2/180 new
Muse Spark 1.311/200 new4/90 new3/40 new2/40 new3/180 new
Grok 4.712/200 new3/90 new3/40 new2/40 new2/180 new
Haiku 5.511/200 new4/90 new3/40 new1/40 new1/180 new
GPT-6 Luna6/200 new4/90 new1/40 new2/40 new2/180 new
GLM-5.34/200 new4/90 new2/40 new1/40 new1/180 new
MiMo-V2.6-Pro1/200 new3/90 new1/40 new1/40 new1/180 new
Each puzzle has one label for its main demand. Multi-reactor puzzles are grouped together, whatever their reactors do.

Co-discovery

SpaceChem Bench started with a challenge on the Zachtronics Discord. After early LLM benchmarks came out on Opus Magnum and TIS-100, @12345ieee, who holds hundreds of records in the SpaceChem archive, asked when models would come to SpaceChem:

12345ieee on the Zachtronics Discord: the only thing I really hate about this is that the benchmarks have been focused on om and tis. come to spacechem, I have 500 paretos to my name, fite me irl
@12345ieee on the Zachtronics Discord (October 23, 2026).

When our runs finished, two of the models’ new frontier points beat @12345ieee’s own solutions in the frozen archive: 465/1/24 on No Employment Record Foundresearch_6 and 314/1/10 on Moustachium 604tf2_2. We submitted selected frontier solutions to the community archive on October 27, including Sonnet 5.5’s, GPT-6 Astra’s, and Opus 5.5’s four new points on No Employment Record Foundresearch_6.

Three days later, @12345ieee came back and posted 463/1/23, 462/1/24, 503/1/22, and 544/1/21 on No Employment Record Foundresearch_6, each one to four cycles faster than the model solution it replaced. The new files share most of their lines with the model files: 463/1/23 keeps Sonnet 5.5’s layout, moving one red bond instruction and shifting a three-arrow corner by one cell (4 of the 29 MEMBER lines).

Just like on TIS-100, neither side got there alone. The models found new layouts and symbol tradeoffs across the archive, and players read those reactors, saw where a corner or instruction could tighten by a cycle, and pushed the frontier further.

Pareto explorer

Choose a puzzle and model, then select a point to see its scores and the reactor that produced it. Every puzzle also has its own page with records and the best solutions: all 55 puzzles.

Pareto explorer

Lower is better ↙Puzzle page →

Loading the frozen benchmark snapshot…
Community archiveModelNew frontier point
Select a point with the mouse or keyboard to inspect its scores.

The plot shows cycles and symbols; reactor counts can differ. New frontier points are judged on all three scores.

Download all 1,169 model Pareto points (CSV) · all 1,169 solutions (ZIP), also on GitHub and Hugging Face. 28 rows are marked as new frontier points, which pool to 20 across models.

All 55 puzzles

Grouped by main mechanic. Select a puzzle to open it in the explorer, or browse all 55 puzzle pages.

Bonding & routing · 20 puzzles
  • Multiple Outputseasy · single-reactor

    Inputs: α Carbon Monoxide (CO). Output: ψ Carbon (C) ×10, ω Oxygen (O) ×10.

  • Crossovereasy · single-reactor

    Inputs: α Gold (Au), β Platinum (Pt). Output: ψ Platinum (Pt) ×10, ω Gold (Au) ×10.

  • Every Day is the First Dayeasy · single-reactor

    Inputs: α Hydrogen (H), β Carbon (C). Output: ψ Acetylene (C2H2) ×10.

  • Best Left Unansweredeasy · single-reactor

    Inputs: α Nitrogen (N). Output: ψ Nitrogen (N2) ×10.

  • Double Bondseasy · single-reactor

    Inputs: α Oxygen (O). Output: ψ Oxygen (O2) ×10.

  • Split Before Bondingeasy · single-reactor

    Inputs: α Hydrogen (H2), β Oxygen (O2). Output: ψ Hydrogen Peroxide (H2O2) ×10.

  • No Stomach for Lunchhard · single-reactor

    Inputs: α Ethane (C2H6). Output: ψ Ethylene (C2H4) ×10, ω Hydrogen (H2) ×10.

  • An Introduction to Bondingeasy · single-reactor

    Inputs: α Silver (Ag), β Fluorine (F). Output: ψ Silver (I) Fluoride (AgF) ×10.

  • Slightly Differenteasy · single-reactor

    Inputs: β Hydrogen (H2). Output: ω Hydrogen (H2) ×10.

  • Like a Bossmedium · single-reactor

    Inputs: α Hydrogen (H), β Carbon (C). Output: ψ Methane (CH4) ×10.

  • I Told You Sohard · single-reactor

    Inputs: α Carbon (C), β Hydrogen (H). Output: ψ Benzene (C6H6) ×10.

  • Moustachium 608hard · single-reactor

    Inputs: α Australium (Av), β Australium (Av). Output: ψ Moustachium 608 (Av8) ×10.

  • It Takes Threeeasy · single-reactor

    Inputs: α Hydrogen (H), β Nitrogen (N). Output: ψ Ammonia (NH3) ×10.

  • A Brief History of SpaceChemeasy · single-reactor

    Inputs: α Hydrogen (H), β Chlorine (Cl). Output: ω Hydrochloric Acid (HCl) ×10.

  • Special Assignmenthard · single-reactor

    Inputs: α Ethylene (C2H4), β Hydroxyl Radical (OH). Output: ψ Ethanol (C2H5OH) ×10, ω Acetaldehyde (CH3CHO) ×10.

  • Of Pancakes and Spaceshipseasy · single-reactor

    Inputs: α Oxygen (O2). Output: ψ Oxygen (O2) ×10.

  • Moustachium 604medium · single-reactor

    Inputs: α Australium (Av), β Australium (Av). Output: ψ Moustachium 604 (Av4) ×10.

  • Moustachium 602easy · single-reactor

    Inputs: α Australium (Av), β Australium (Av). Output: ψ Moustachium 602 (Av2) ×10.

  • Removing Bondseasy · single-reactor

    Inputs: α Fluorine (F2). Output: ψ Fluorine (F) ×10.

  • Sacré Bleu!medium · single-reactor

    Inputs: α Hydrogen Cyanide (HCN), β Methane (CH4). Output: ψ Hydrogen (H2) ×10, ω Acetonitrile (CH3CN) ×10.

Sensing · 9 puzzles
  • Random Oxidesmedium · single-reactor · random inputs

    Random inputs: α Oxygen (O), β Zinc (Zn) / Titanium (Ti). Output: ψ Titanium Dioxide (TiO2) ×10, ω Zinc Oxide (ZnO) ×10.

  • Right All Alonghard · single-reactor

    Inputs: α Carbon (C), β Fluorine (F). Output: ψ Polytetrafluoroethylene ((C2F4)n) ×10.

  • Prelude to a Migrainemedium · single-reactor · random inputs

    Random inputs: α Oxygen (O) / Oxygen (O2). Output: ψ Oxygen (O) ×20.

  • Danger Zonemedium · single-reactor · random inputs

    Random inputs: α Hydrogen (H) / Hydrogen (H2). Output: ψ Hydrogen (H2) ×20.

  • Accidents Happenhard · single-reactor · random inputs

    Random inputs: α Phosphorus (P) / Silicon (Si), β Hydrogen (H2). Output: ψ Phosphine (PH3) ×10, ω Silane (SiH4) ×10.

  • An Introduction to Sensingmedium · single-reactor · random inputs

    Random inputs: α Neon (Ne) / Argon (Ar). Output: ψ Neon (Ne) ×10, ω Argon (Ar) ×10.

  • Suspicious Behaviorhard · single-reactor

    Inputs: α Carbon (C), β Δ-Dihydrogen (ΔH2). Output: ψ Δ-Pseudopolyethylene ((Δ2C2H4)n) ×10.

  • The Plot Thickensmedium · single-reactor

    Inputs: α Carbon (C), β Hydrogen (H). Output: ψ Polyethylene ((C2H4)n) ×10.

  • The Blue Danubehard · single-reactor · random inputs

    Random inputs: α Hydrogen (H) / Hydrogen (H2). Output: ψ Hydrogen (H2) ×20.

Fusion · 4 puzzles
  • No Employment Record Foundhard · single-reactor · random inputs

    Random inputs: α Boron (B) / Aluminum (Al) / Silicon (Si), β Hydrogen (H). Output: ψ Hydrochloric Acid (HCl) ×20.

  • Unknown Sendermedium · single-reactor

    Inputs: α Hydrogen (H). Output: ψ Neon (Ne) ×10.

  • Under the Icemedium · single-reactor

    Inputs: α Hydrogen (H), β Nitrogen (N). Output: ψ Nitrous Oxide (N2O) ×10.

  • Ice to Meet Youmedium · single-reactor

    Inputs: α Hydrogen (H), β Iron (II) Oxide (FeO). Output: ψ Cobalt (II) Oxide (CoO) ×10.

Quantum tunnels · 4 puzzles
  • QT-3hard · single-reactor

    Inputs: α Acetylene (C2H2). Output: ω Acetylene (C2H2) ×10.

  • QT-1medium · single-reactor

    Inputs: α Helium (He). Output: ω Helium (He) ×10.

  • QT-2hard · single-reactor

    Inputs: α Chlorine (Cl2). Output: ω Chlorine (Cl2) ×10.

  • QT-4hard · single-reactor

    Inputs: α Methane (CH4), β Carbon (C). Output: ω Methane (CH4) ×10.

Multi-reactor production · 18 puzzles
  • An Introduction to Pipelineseasy · 0 reactors (pipes only)

    Inputs: α Benzene (C6H6), β Acetonitrile (CH3CN). Output: ψ Acetonitrile (CH3CN) ×10, ω Benzene (C6H6) ×10.

  • No Ordinary Headachemedium · multi-reactor · random inputs

    Random inputs: α Nitrogen (N2) / Oxygen (O2). Output: ψ Nitric Oxide (NO) ×10.

  • Challenge: Applied Fusionmedium · multi-reactor

    Inputs: α Water (H2O). Output: ψ Phosphoric Acid (H3PO4) ×10.

  • Ω-Pseudoethynehard · multi-reactor · random inputs

    Random inputs: α Carbomega (Ω / C), β Hydrogen (H2). Output: ψ Ω-Pseudoethyne (ΩH3CH) ×40.

  • No Thanks Necessarymedium · multi-reactor · random inputs

    Random inputs: α Nitrogen (N2) / Oxygen (O2), β Water (H2O) / Sodium Chloride (NaCl). Output: ψ Nitric Acid (HNO3) ×5, ω Sodium Nitrate (NaNO3) ×5.

  • Precursor Compoundshard · multi-reactor · random inputs

    Random inputs: α Carbomega (Ω / C), β Hydrogen (H2). Output: ψ Ω-Acetylene (Ω2H2) ×10, ω Carbon Ring (C6) ×10.

  • Challenge: Going Greenmedium · multi-reactor · random inputs

    Random inputs: α Carbon Dioxide (CO2) / Hydrogen Sulfide (H2S). Output: ψ Sulfuric Acid (H2SO4) ×10, ω Carbon (C) ×10.

  • Teleportershard · multi-reactor

    Inputs: α Tungsten Trioxide (W / O). Output: ψ Tungsten Nanospike ((W)n) ×10.

  • Challenge: In-Place Swapeasy · multi-reactor

    Inputs: α Nitrogen (N2), β Methane (CH4). Output: ψ Ammonia (NH3) ×10, ω Hydrogen Cyanide (HCN) ×10.

  • There's Something in the Fishcakeeasy · 1 reactor + pipes

    Inputs: α Hydrogen (H), β Chlorine (Cl). Output: ψ Hydrochloric Acid (HCl) ×10.

  • Fallingmedium · multi-reactor

    Inputs: α Water (H2O), β Krypton (Kr). Output: ψ Yttrium (Y) ×5, ω Zirconium (Zr) ×5, ξ Niobium (Nb) ×5.

  • Sleepless on Sernimir IVeasy · multi-reactor

    Inputs: α Hydrogen (H), β Oxygen (O), γ Carbon (C). Output: ψ Formaldehyde (CH2O) ×10.

  • Nothing Workseasy · multi-reactor

    Inputs: α Methane (CH4), β Nitrogen (N2). Output: ψ Hydrogen Cyanide (HCN) ×10, ω Hydrogen (H2) ×10.

  • Σ-Ethylenehard · multi-reactor

    Inputs: α Hydrogen (H2), β Diatomic Sigma (Σ2). Output: ψ Σ-Ethylene (Σ2H4) ×20, ω Ethylene (C2H4) ×20.

  • Settling into the Routineeasy · multi-reactor

    Inputs: α Methane (CH4). Output: ψ Hydrogen (H2) ×10, ω Ethane (C2H6) ×10.

  • Molecular Foundrymedium · multi-reactor · random inputs

    Random inputs: α Iron Oxide (Fe / O) / Carbon (C). Output: ψ Cementite (Fe / C) ×10.

  • Gas Works Parkhard · multi-reactor · random inputs

    Random inputs: α Carbon (C), β Water (H2O). Output: ψ Methane (CH4) ×10, ω Carbon Dioxide (CO2) ×10.

  • Challenge: KOHCTPYKTOPhard · multi-reactor

    Inputs: α Silicon Dioxide (Si / O), β Arsenic (As), γ Boron (B). Output: ψ Silicon Fragment (Si) ×10, ω Silicon Fragment (+) (Si / B) ×10, ξ Silicon Fragment (-) (Si / As) ×10.

Methods

Expand

Suite. Every non-boss puzzle in the main campaign (46), the 63 Corvi expansion (6), and the Team Fortress 2 levels (3): 37 single-reactor research puzzles and 18 multi-reactor production puzzles, split into 19 easy, 18 medium, and 18 hard. Easy, medium, and hard puzzles had 10-, 40-, and 60-minute time limits. Every model had the same limit on a given puzzle. Time limits differ by difficulty, so difficulty and search time can’t be separated.

Scoring. Each model–puzzle pair contributes one selected attempt, with no best-of-attempts scoring, so solve rates are pass@1: a puzzle counts as solved when that one episode saved a solution that replays in a fresh game. Unsolved puzzles stay in every average and score zero.

New frontier points. The reference is the community archive as of October 18, 2026, without solutions the community flags as precognitive or as relying on bugs. Ties don’t count. Our count pools and deduplicates points across models: 20 on 11 puzzles.

Replay. Every published point is rebuilt from the model’s edits and replayed in a fresh game. SChem’s precognition check then plays it on other random seeds and rejects it if it is likely to succeed on fewer than 20% of them. The check is statistical, so it is strong evidence, not proof.

Record proximity, sum score, hypervolume, and frontier coverage. Record proximity is the community record divided by the model’s best score, averaged across the three dimensions and all puzzles, ×100; each dimension’s best can come from a different solution. Sum score, adapted from Opus Magnum Bench, compares the best single solution’s combined cycles + reactors + symbols against the lowest sum in the community archive, ×100. 3D hypervolume measures the volume of score space dominated by the model’s Pareto frontier up to a reference box at 2× the community’s maximum scores, divided by the community frontier’s hypervolume, ×100. Frontier coverage (reciprocal multiplicative ε) measures how closely the model’s frontier covers every point on the community Pareto curve at once: for each community point, it finds the model point with the highest minimum coordinate ratio across the three scores, then takes the worst case across the community frontier, ×100. One tutorial’s records are zero reactors and zero symbols; matching a zero counts as 1 and anything else as 0.

Limits. One episode per pair compares the configurations as tested and doesn’t measure repeated-run variability. Spread between puzzles is variation across tasks. Public puzzles and solutions may overlap with training data. Mechanic groups are our own labels.

Solutions. Every model Pareto point’s solution is public under the MIT License, in the community’s SpaceChem Community Edition export format and named like the archive’s files (<puzzle>.<cycles>-<reactors>-<symbols>.txt). They are mirrored as one file per solution on GitHub and as a table on Hugging Face.

Resources. Costs are estimated from recorded October 2026 API list prices, including cache discounts. Tokens accumulate across responses, so repeated input counts again, and tokenizers differ. Game calls count individual dispatched tools, including errors, and exclude the automatic final submission.

Settings by model

Reasoning effort, for all 55 episodes

ModelReasoning effort
GPT-6 Astrahigh
GPT-6.1 Solhigh
Opus 5.5high
Gemini 4 Argonhigh
Sonnet 5.5high
Fable 5.1high
Gemini 3.8 Flashhigh
Kimi K3.1 Proprovider default
Muse Wonder 1.0high
DeepSeek V4.1 Flashprovider default
Muse Spark 1.3high
Grok 4.7low
Haiku 5.5high
GPT-6 Lunahigh
GLM-5.3provider default
MiMo-V2.6-Proprovider default
Every model had the same tools and prompt, including a sandboxed scripting tool for game calls and a note to test drafts early.

Related work

TIS-100 Bench is our companion benchmark on Zachtronics’ assembly game, using the same 16 models, 55-puzzle pass@1 structure, and Pareto-archive evaluation. Where models solved 82% of TIS-100 episodes, found 133 new frontier points, and broke three cycle records outright, the shift to 2D waldo routing and multi-reactor pipelines in SpaceChem cut overall solve rate to 56%, yielded 20 new tradeoff points (with no outright 1D records), and separated models that tied on 1D assembly. Opus Magnum Bench evaluates agents on a third Zachtronics puzzle game using a single-solution sum score (cost + cycles + area), which we include alongside record proximity, 3D hypervolume, and frontier coverage.

Cite

@misc{wincon2026spacechembench,
  title  = {SpaceChem Bench: Can LLMs Beat Humans at 2D Spatial Programming?},
  author = {{Wincon}},
  year   = {2026},
  month  = nov,
  url    = {https://spacechem.wincon.dev/},
  note   = {Benchmark snapshot 2026-11-04-v1}
}

Credits

Thanks to Zachtronics, the SpaceChem players, and the maintainers of the community archive, SChem, and the leaderboard bot. Their solutions and tools make this comparison possible. Thanks also to 12345ieee for taking the models’ solutions further.

SpaceChem, TIS-100, and Opus Magnum are trademarks of Zachtronics. Team Fortress 2 is a trademark of Valve. Model names and logos are trademarks of their respective owners and appear only to identify the models tested. Wincon Research is not affiliated with or endorsed by Zachtronics, Valve, or any model provider.

Have a question or want to share feedback? Get in touch ↗