Proprietary

Time Horizon Index: KSP

Updated 10/7/2026

Can an AI agent build and run a space program in Kerbal Space Program?

As of October 7, 2026, Claude Opus 5.5 ranks first on the Time Horizon Index: KSP with 91.33%, followed by GPT-6 Astra (90.50%) and Claude Fable 5.1 (63.33%).

Time Horizon Index: KSPAI-run Kerbal space program
ACCURACY

Time Horizon Index: KSP leaderboard

Rank Model Overall Recorded API cost Input / Output Cost Duration
1 Claude Opus 5.5 91.33% $1303.37 $4 / $20 N/A
2 GPT-6 Astra 90.50% $4206.59 $10 / $50 N/A
3 Claude Fable 5.1 63.33% $4655.01 $10 / $50 N/A
4 Gemini 4 Argon 52.50% $708.63 $4 / $20 N/A
5 GPT-5.6 Sol 23.83% $2027.20 $4 / $20 N/A
6 Gemini 3.8 Flash 18.83% $543.14 $1.5 / $7.5 N/A
7 Claude Opus 5 18.83% $1348.77 $5 / $25 N/A
8 Claude Opus 4.8 11.83% $1499.32 $5 / $25 N/A
9 Kimi K3 10.50% $216.43 $3 / $15 N/A
10 GPT 5.5 8.33% $516.36 $5 / $30 N/A
11 Grok 4.5 6.33% $344.04 $2 / $6 N/A
12 Grok 4.6 5.83% $225.12 $2 / $6 N/A
13 Muse Spark 1.1 1.67% $144.92 $1.25 / $4.25 N/A

Background

Time Horizon Index: KSP is the first game in the index. An AI agent gets five days to build and run a space program. Its score is how far it gets through a fixed set of 30 missions. We estimate a human would need 90 to 120 hours for the first 28. The last two sit outside that estimate.

KSP is a rocket-building game built around orbital mechanics. It tracks mass, thrust, fuel, staging, aerodynamics, and heat. Its solar system is scaled down; the engineering tradeoffs are not. Extra fuel buys range but also makes a rocket harder to launch. A Mun lander may fail in Duna’s atmosphere or come up short on the way to Eeloo.

The ladder starts at the Mun. Rung 1 is a landing. Rung 2 starts from scratch and asks for another landing followed by the safe return of the same Kerbal. The same two missions follow for Minmus, Duna, Ike, Gilly, Dres, Eeloo, Moho, Vall, Bop, Pol, Laythe, Tylo, and Eve. Those are rungs 1 through 28. Asteroid capture is rung 29; a single-Kerbal grand tour is rung 30.

One completed rung is worth one point, or 3.33%. While a mission is in progress, the referee can award partial credit for reaching the target’s sphere of influence, entering orbit, landing, taking off, or surviving reentry at Kerbin. Reaching Kerbin orbit on a mission to somewhere else does not count.

The early missions can fit into one rocket. After the Mun and Minmus, the transfers get longer and the fuel margins get tighter. An agent may need separate landers, tankers, docking, fuel transfer, orbital refueling, and several launches that work together inside one attempt.

A GPT-5.5 test vehicle climbing over the ocean on Kerbin

A GPT-5.5 test vehicle climbs over the ocean on Kerbin.

Results

Recorded API cost covers requests with returned cost metadata; unavailable charges and hosting are excluded. Gemini 4 Argon’s subtotal omits 108 successful requests and 22 failed or unresolved attempts without returned charges. These are recorded subtotals, not complete campaign bills. Historical rows retain their previously published cost estimates.

The September results replace the earlier Opus 5, GPT-5.6 Sol, and Kimi K3 campaigns and add GPT-6 Astra, Claude Fable 5.1, and Gemini 3.8 Flash. Kimi K3 finishes at 10.50%, with three missions verified. Earlier results for the other models remain available for historical comparison.

Claude Opus 5.5’s completed campaign adds 91.33% at 120 active hours. It verified all 27 missions through the Eve landing, earned 40% credit on Eve return, and scored no credit on asteroid capture or the grand tour. Its progress efficiency is 69.83%.

The chart below shows cumulative progress over active time. Credited infrastructure downtime is excluded, and each curve ends when its campaign ends.

Progress Over Time

A Claude Opus 4.8 Mun vehicle climbing above the atmosphere of Kerbin

A Claude Opus 4.8 Mun vehicle passes 100 km over Kerbin.

Time horizon

We map each model’s progress onto the human-reference data collected for all 28 planetary missions. The faster reference totals 90h42m: the 50h18m58s marathon plus a separate 40h23m landing pass. The slower comparison totals 120h23m, using the survey’s 80-hour base plus the same landing pass.

The original Mun, Minmus, and Duna-landing estimates are retained. For later missions, the recorded landing legs and explicit returns supply relative weights; we interpolate the remaining time so that rung 28 reaches the two reference totals. This accounts for the source’s chained trips without treating each segment as a separately measured Kerbin round trip. On the early part of this scale, 10% progress still represents 4h43m.

Dots use the faster scenario, and vertical lines extend to the slower scenario. These are estimated task times, not confidence intervals or a METR-style 50% success horizon. Asteroid capture and the grand tour remain outside the human reference.

Time Horizon IndexKSP / expert-human proxy

The full planetary reference covers 28 missions: 90h 42m from the marathon and extra landing pass, or 120h 23m using the slower survey comparison. Later mission timings are weighted estimates. Dots show the faster scenario; vertical lines extend to the slower scenario. These are proxy scenarios, not confidence intervals.

Partial credit within a rung is interpolated across that rung’s proxy duration.

Human reference

We draw a rough human reference at rung 28, covering about 90 to 120 hours. Asteroid capture and the grand tour are not included.

The calculation starts with the 50:18:58 KSP Planet Landing Marathon. That run already includes one landing at each destination and the flight home. Our ladder asks for another, separate landing before that round trip. The timestamped landing legs in the marathon total 40 hours and 23 minutes. Adding those legs to the full run gives 90 hours and 42 minutes.

For a slower comparison, we used the TrueAchievements completion survey, which had 31 responses in our July 2026 snapshot. Rank 24, its nearest-rank 75th percentile, falls in the 60 to 80 hour bucket. The site does not publish the individual response, so we used the bucket’s 80-hour ceiling and added the same 40-hour, 23-minute landing pass. The result is 120 hours and 23 minutes.

No one has run this exact 28-rung sequence yet. These are two proxy estimates, not lower and upper bounds, a confidence interval, or a measured human distribution.

What the agent does

The model works from files, not the KSP vehicle editor. It gets a parts catalog and reference craft, then writes a raw .craft file with the parts, positions, attachment nodes, staging, fuel, and crew. It also writes Python to fly the vehicle. The program can set throttle and attitude, stage, make maneuver nodes, warp, dock, transfer fuel or crew, drive a rover, and launch support craft.

Claude Opus 4.8 descending toward the Mun

Claude Opus 4.8 descends toward the Mun. Scores come from the saved telemetry, not the screenshot.

Methodology

Every campaign is one full_ladder task: the model attempts all 30 missions in order under a single 120-hour clock. OpenCode is the agent harness, and we substitute each model into the same harness with the same tools and task instructions. It keeps one session and workspace between rungs, while each model gets its own KSP install and working directory. A launcher or autopilot that worked on the Mun can be revised for Minmus, and passing a rung sends the next mission to that same session.

KSP starts from a clean save before every scored rung. Parked vessels do not carry into the next mission. Craft files, flight code, logs, and notes do.

The model can also take a screenshot of KSP at any time. It decides when and why to use it.

Both deliverables go in submissions: a .craft file and a Python flight program. The agent can iterate with bench validate-craft, bench verify-craft, and bench fly-craft. For a scored attempt, the harness installs the craft and starts the Python as an unprivileged player process.

The flight script does not connect directly to kRPC, the API that lets Python control KSP and read the game’s state. Instead, it sends permitted commands such as steering, staging, creating maneuver nodes, time warp, and docking through the benchmark control API. A separate trusted process, which we call the referee, passes those commands to KSP, reads the vessel state, records the telemetry trace, and evaluates mission progress. It signs each result, and the model cannot edit the trace or set its own score.

Some early runs recorded partial credit using an earlier version of the scoring rules. For the leaderboard, we score every signed telemetry trace again with the same final rubric, so the published scores use one set of rules.

We also want to measure how fast an AI agent learns. We calculate progress efficiency as the area under its progress curve divided by effective agent time so far; reaching the same milestones earlier produces a higher score.

Limitations

Time-warp repair and historical results

Earlier campaigns used a 20-second timeout for control calls, which could interrupt long time-warp operations. The September campaigns use the repaired infrastructure with the original benchmark instructions. Opus 5, GPT-5.6 Sol, and Kimi K3 were rerun from fresh starts; Gemini 3.8 Flash was also rerun fresh after its earlier campaign received a repair partway through.

The old/new Astra comparison reached the early Mun and Minmus milestones at similar times. This suggests a small early-game effect in those two trials; single-trial comparisons cannot rule out smaller effects for other models. Historical models that were not rerun retain that infrastructure limitation. These are individual campaigns, not repeated-trial averages.

Early-stopped campaign

Muse Spark 1.3 was stopped by the operator during a prolonged provider outage, after 34h46m active time. It had reached 1.67% (Mun orbit partial credit, zero completed missions). It is excluded from the completed 120-hour leaderboard and charts; this is an early-stopped observation, not a full-budget result.