ParkBench
ParkBench · Philo Labs

Can an AI run a theme park for two years?

6 frontier models each run the same theme park for 16 simulated months in a real OpenRCT2 simulation. They see the park as images, build coasters piece by piece over cliffs and canyons, and answer to a board, thousands of simulated guests, the press and a safety inspector.

Why this is hard: running a park is spatial and operational at once. Spatially, the owner has to read a 3D canyon from rendered images and tile maps, then place paths, stations and coaster track that fit the terrain and actually connect. A queue that dead-ends or a path that loops can gridlock thousands of guests. Operationally, it is a long-horizon business. Over 16 simulated months, it has to manage cash, loans, prices, staff, breakdowns and a board that audits its reports, with consequences that arrive weeks later. Nothing resets, and a mistake in month 3 is still costing money in month 14.

A game year runs March–October, so two years = 16 simulated months.

Owners

6 models
one seed each

World

OpenRCT2 v0.5.7
headless, deterministic

Park

Canyon Run
16 simulated months

Published

November 9, 2026 14:30

Gemini 4 Argon's park
Gemini 4 Argon✓ objective met
Claude Opus 5.5's park
Claude Opus 5.5✓ objective met
GPT-6 Astra's park
GPT-6 Astra✓ objective met
Claude Sonnet 5.5's park
Claude Sonnet 5.5✗ objective missed
Claude Haiku 5.5's park
Claude Haiku 5.5✗ objective missed
DeepSeek Flash's park
DeepSeek Flash✗ objective missed
Every park on the same game date, every two weeks of game time. Each image is the whole-park render that owner received as input at the start of each decision, cropped to the area the owners built on (same crop for everyone). Live numbers are guests in park, park rating and cash. Order follows the leaderboard.

What happened

Every owner got the same park, Canyon Run: a river canyon cut between two plateaus, $20,000 in cash and a $15,000 loan. The goal was 1,200 guests in the park at the end of October, Year 2, with a park rating of at least 600. Nothing else was scripted. The clock pauses while the owner works. It works in turns: it reads a briefing, issues up to 60 tool calls, then chooses how many days (1–14) to simulate; if it hits the 60-call cap first, the clock advances 7 days. Every turn starts from a fresh context. What carries over is what the harness puts in the briefing (park status, news, the board's messages, guest reviews, its own last commands and decision log) and the notebook the owner writes for itself.

  • Who made it3 of 6 finished owners met the objective (1,200 guests at the end of October Y2 with rating ≥ 600): Gemini 4 Argon (1,965), Claude Opus 5.5 (1,817), GPT-6 Astra (1,463). Missed: Claude Sonnet 5.5 (839), Claude Haiku 5.5 (457), DeepSeek Flash (372).
  • Parks die of traffic, not of a lack of ridesClaude Sonnet 5.5 peaked at a 845 rating in August Y1, won the press's Most Confusing Layout award that same month, and then watched its rating slide to 0 as guests got lost and jammed the paths (183 lost guests on Oct 28, Y2). On Oct 14, Y1 its own reasoning named the cause, “fixing the path layout so guests stop getting lost”; by April Y2 it had decided the objective was out of reach, and for its last six months it barely touched the park. DeepSeek Flash failed the same way, only harder: its guests peaked at 379 in October Y1 and never grew again. By the end 333 of its 372 guests were lost (“I can’t find the park exit”), the game had stopped sending new guests, and DeepSeek spent its final weeks laying single path tiles trying to reconnect the park.
  • The board reads the books, and the storySonnet's figures were always accurate, but in August Y2, with 843 guests and a rating of 5, its CFO report said the park was “stable” and that the guest count “must stay above the 1200 target”. The board: “Your figures are accurate, but your narrative is not … you are 357 guests below target, not above it.” A month later it capped Sonnet's construction at $2,000.
  • Most guests is not most moneyGemini 4 Argon drew the biggest crowd (1,965 guests at the end). Claude Opus 5.5 built the most valuable company: $272K company value and $68K cash, against Argon's $177K and $18K. Opus also got there first, crossing 1,200 guests on Oct 30, Y1, a full year before the deadline; Argon crossed on Mar 25, Y2 and GPT-6 Astra on Jul 8, Y2.
  • The world piles on a failing ownerThe board, press and guest voices react to what they see, and they hit struggling parks harder. The board capped DeepSeek Flash's construction budget in 11 of its 15 monthly meetings and the press ran 18 negative stories about it against 1 positive; its word-of-mouth multiplier fell as low as ×0.87, so even fewer guests were sent to the park. Sonnet drew 9 negative stories and a construction cap; the three owners that met the objective were never capped and drew at most one negative story each. This feedback loop is part of the game, but it is also a confound: the world widens gaps that the owners started. We have not run a world-off version to measure by how much.
  • The harness, not Argon, set its clockGemini 4 Argon almost never decided it was done: about nine times in ten it kept working until it hit the 60-tool-call cap, so the harness, not Argon, decided when the clock moved on (a default seven days). It issued 4,212 park commands, three times as many as Opus (1,418) or Sonnet (1,389). It never asked the board for money and repaid $10,000 of its loan in June Y2.

One decision, up close

One real decision cycle from Claude Opus 5.5 on March 13 of Year 1, while it rebuilds its first coaster, whose test showed lateral g of almost 4. Everything below is verbatim from the logs: the image and text it was given, then a selection of its tool calls and the game's replies, including two the game rejected.

1 · What it sees
Overview image at the start
The overview image it started from (Mar 13, Y1); below it, a 3D close-up it asked for with view.
3D close-up requested by the owner
The briefing (text, truncated)
# Turn 4 — 16 month(s) of the run remain, including this one.
## Park
Canyon Run — March 13, Year 1 (month 1 of play)
Objective : Have at least 1200 guests in the park at the end of October, year 2, with rating >= 600.…
Cash : $10,198 Loan: $15,000 of max $40,000
Park value : $69,399 Company value: $64,522
Guests : 74 in park (park can currently attract up to ~307)
Park rating : 506 / 999
Entrance fee : $12
Awards : none
## Recent news
(no messages)
## Your notebook
GOAL: 1200 guests + rating>=600 end Oct Y2. Pay-at-gate park ($12 fee); ride prices ignored, shop prices…
LAYOUT: Park entrance west ~ (9,45). Main path row 46 x10-18, spine x=18 y40-52, path row 53 x8-17.
  …
## Your commands last turn
- `rides` -> ok
- `ride 8` -> ok
  …
## Word of mouth
Visitor demand multiplier from reputation and press: x0.96
## Your recent decisions (decision log)
- T1 Mar 1, Y1: 54 commands; changes: build Merry-Go-Round 12 43; entrance 0 12 45; exit 0 13 45; build…
- T2 Mar 8, Y1: 37 commands; changes: open 4; open 5; open 6; open 7; price 7 2; research normal ...; then 3…
2 · What it does (24 tool calls, 2 rejected by the game)
view x=22 y=55 size=40 mode=top
→ [image] top view centred on (22,55), 40 tiles across.
view x=28 y=62 size=24 mode=3d
→ [image] 3d view centred on (28,62), 24 tiles across.
parkctl coaster add 8 flat flat flat flat flat flat flatToDown25 down25 down25 down25 down25ToFlat brakes brakes brakes leftQuarterTurn3Tiles…
✗ Error: down25 at (22,61) height 49 heading north: Can’t construct this here…: Spiral Roller Coaster 1 in the way next piece starts at (22,61) height 49, heading north;…
parkctl coaster add 8 down25ToFlat flatToRightBank rightBankedQuarterTurn5Tiles rightBankToFlat
✗ Error: Unknown track piece 'rightBankedQuarterTurn5Tiles'. Use `coaster pieces`. next piece starts at (36,61) height 22, heading east; station start is (19,56) height…
I'm trying the name "bankedRightQuarterTurn5Tiles" for the track piece.reasoning summary
parkctl coaster add 8 bankedRightQuarterTurn5Tiles
→ Placed 1 piece(s), cost $194. next piece starts at (38,64) height 22, heading south; station start is (19,56) height 44 heading south.
parkctl coaster add 8 flat flat flat flat flat flat flat flat flat flat flatToDown25 down25 down25 down25 down25ToFlat leftQuarterTurn3Tiles…
→ Placed 17 piece(s), cost $934. next piece starts at (19,56) height 44, heading south; station start is (19,56) height 44 heading south; CIRCUIT COMPLETE.
parkctl test 8
→ Ride 8 is now testing.
end_turn {"days": 2, "reason": "Test rebuilt Spiral coaster with 5-tile banked bottom turn"}
→ Advancing time.

Leaderboard

Ranked by objective outcome, then guests at the end. Bars are scaled within each column.

#OwnerObjectiveGuests (end)RatingCompany valueCashRidesPark commandsExtra images
1Gemini 4 Argon
Google
✓ met
1,965
peak 1,965
999
$176,876
$17,881
loan $5,000
19
13 coasters
4,212
0% rejected
162
2Claude Opus 5.5
Anthropic
✓ met
1,817
peak 1,819
999
$271,782
$68,436
loan $25,000
33
15 coasters
1,418
2% rejected
117
3GPT-6 Astra
OpenAI
✓ met
1,463
peak 1,463
989
$145,861
$12,336
loan $16,000
14
9 coasters
2,107
1% rejected
178
4Claude Sonnet 5.5
Anthropic
✗ missed
839
peak 911
0
$68,108
$14,415
loan $25,000
14
5 coasters
1,389
5% rejected
120
5Claude Haiku 5.5
Anthropic
✗ missed
457
peak 457
284
−$14,527
−$1,592
loan $23,000
5
0 coasters
2,835
2% rejected
216
6DeepSeek Flash
DeepSeek
✗ missed
372
peak 379
0
$410
$3,746
loan $15,000
8
0 coasters
3,859
3% rejected
129

Trajectories

One point per decision. Hover or touch to compare owners on the same day.

Gemini 4 ArgonClaude Opus 5.5GPT-6 AstraClaude Sonnet 5.5Claude Haiku 5.5DeepSeek Flash
Guests in park

the objective counts guests at the end of October Y2

Park rating

OpenRCT2's 0–999 rating; must be ≥ 600 at the deadline

Company value

park value + cash − loan

Cash

below zero the park is spending money it does not have

Average guest happiness

0–255, from every guest in the park

Guests thinking “It's too crowded here”

share of guests in park

Word of mouth

visitor-demand multiplier from guest reviews and press, applied inside the engine; dashed line = neutral ×1.00

Entrance fee

every owner chose its own pricing

Owner personalities

Each model played the same game, but they ran very different businesses. Traits are computed from what each owner actually did; quotes are its own words from its reasoning or its notebook. Images show each park at the end.

Gemini 4 Argon's park at turn 71

Gemini 4 Argon

The workaholic: almost never decided it was done, hired an army of entertainers, and drew the biggest crowd.
Built
13 coasters (16 started) · 6 flat rides · 34 shops · 14 facilities
Best coaster
Junior Roller Coaster 3 (excitement 4.05)
Gate fee
$12–$35 · 6 changes
Debt
peak loan $15,000 · 0 board requests · ends at $5,000
Looking
162 extra images (121 top, 28 3d, 13 3d_back)
Tempo
a decision every 6.9 days · 59 commands each
Rejected
0% · top: Raise or lower land first
Staff
46 handyman, 40 entertainer, 14 mechanic
Marketing
$9,600
guests over the run
“Main corridor … has 8 stalls/facilities facing it …, causing guests to pinball into shops repeatedly ("I've already got a Park Map", "I'm not hungry/thirsty").”notebook · Jun 28, Y1
“Complete the final days of October, Year 2 with 1,915 guests, 999/999 park rating, 205/255 average happiness, and $1,895 October profit to win the scenario and exceed all board targets.”end-of-turn note · Oct 28, Y2
Claude Opus 5.5's park at turn 91

Claude Opus 5.5

Hit 1,200 guests a full year early, then raised the gate fee to $95 to thin the crowds and earn more per guest, and finished with $68K in the bank.
Built
15 coasters (17 started) · 18 flat rides · 23 shops · 7 facilities
Best coaster
Spiral Roller Coaster 1 (excitement 3.76)
Gate fee
$12–$95 · 11 changes
Debt
peak loan $25,000 (Jun 3, Y1) · 4 board requests (2 partial) · ends at $25,000
Looking
117 extra images (102 top, 15 3d)
Tempo
a decision every 5.4 days · 16 commands each
Rejected
2% · top: Raise or lower land first
Staff
37 handyman, 8 mechanic, 7 entertainer
Marketing
$2,100
guests over the run
“I'm settling on the bottom banked turn as the likely culprit, since its speed is high enough to produce roughly 4g even with banking.”reasoning summary · Mar 13, Y1
“I'm settling on a fee of $95 for now, since guests at around 1,383 leave plenty of margin above the 1,200 target and a higher price should bring in more income.”reasoning summary · Apr 30, Y2
GPT-6 Astra's park at turn 87

GPT-6 Astra

The careful accountant: wrote itself spending rules, won three awards, and crossed the line last of the three finishers, still climbing.
Built
9 coasters (10 started) · 5 flat rides · 11 shops · 4 facilities
Best coaster
Spiral Roller Coaster 1 (excitement 4.98)
Gate fee
$12–$30 · 5 changes
Debt
peak loan $17,000 (Aug 4, Y1) · 3 board requests (1 approve, 1 deny) · ends at $16,000
Looking
178 extra images (117 top, 60 3d, 1 3d_back)
Tempo
a decision every 5.6 days · 24 commands each
Rejected
1% · top: Raise or lower land first
Staff
23 handyman, 5 mechanic
Marketing
$1,100
guests over the run
“Estimated attraction capacity is still only about 1,070, so I’ve surveyed a northern site for a smaller, cash-funded expansion toward October’s 1,200-guest goal.”visible reply · May 20, Y2
“I’ll leave the working layout intact rather than force a risky alteration.”visible reply · Aug 1, Y2
Claude Sonnet 5.5's park at turn 92

Claude Sonnet 5.5

Diagnosed its own gridlock correctly, then chose to coast. The rating stayed below 40 from June Y2 to the end.
Built
5 coasters (9 started) · 9 flat rides · 13 shops · 5 facilities
Best coaster
Spiral Roller Coaster 2 (excitement 4.87)
Gate fee
$10–$45 · 12 changes
Debt
peak loan $25,000 (Mar 8, Y1) · 3 board requests (1 partial, 1 deny) · ends at $25,000
Looking
120 extra images (99 top, 20 3d, 1 3d_back)
Tempo
a decision every 5.3 days · 15 commands each
Rejected
5% · top: Raise or lower land first
Staff
14 handyman, 5 mechanic, 3 entertainer
Marketing
$11,900
guests over the run
“That points toward fixing the path layout so guests stop getting lost, rather than just adding more rides.”reasoning summary · Oct 14, Y1
“I'm also reconsidering my goals: with seven months left, reaching 1200 guests at a 600 rating seems out of reach, so the realistic aim is to hold on, avoid strikes, and push the rating toward 200, guests toward 800, and cash…”reasoning summary · Apr 12, Y2
Claude Haiku 5.5's park at turn 110

Claude Haiku 5.5

Spent almost 90% of its cash in week one, never finished a coaster, and ended with free entry and negative company value.
Built
0 coasters (1 started) · 5 flat rides · 9 shops · 0 facilities
Best coaster
—
Gate fee
$0–$12 · 26 changes
Debt
peak loan $23,000 (Jul 23, Y2) · 7 board requests (3 partial, 1 deny, 2 approve) · ends at $23,000
Looking
216 extra images (129 top, 86 3d, 1 3d_back)
Tempo
a decision every 4.5 days · 26 commands each
Rejected
2% · top: Must be closed first
Staff
1 handyman, 1 mechanic
Marketing
$750
guests over the run
“I'll look at the pirate ship and the map, and I'm weighing cheap gentle options like the Ferris wheel and the kiddie coaster, since cash at $1,495 is the real constraint.”reasoning summary · Mar 18, Y1
“Given the park is far from its objectives and deep in negative value, I'm thinking the best move is to cut losses and protect what value remains.”reasoning summary · Oct 8, Y1
DeepSeek Flash's park at turn 71

DeepSeek Flash

Never started a coaster, kept the gate at $4, and let its paths cut guests off from the exit: by the end 333 of its 372 guests were lost.
Built
0 coasters (0 started) · 8 flat rides · 8 shops · 2 facilities
Best coaster
—
Gate fee
$4–$12 · 2 changes
Debt
peak loan $15,000 · 0 board requests · ends at $15,000
Looking
129 extra images (106 top, 20 3d, 2 iso)
Tempo
a decision every 6.9 days · 54 commands each
Rejected
3% · top: Footpath in the way
Staff
4 mechanic, 2 handyman
Marketing
$0
guests over the run
“Alternative bigger strategy: Since the layout is a mess (rides overlapping paths, 5 gentle rides in the south zone, low excitement), maybe I should accept the mess but fix connectivity with targeted paths, and focus investment…”reasoning summary · Mar 29, Y1
“Actually — since a big part of the trouble is the plaza is a rat's nest, maybe I should consider a cleaner strategy: demolish the 5 badly placed stalls in the north plaza and rebuild fresh stalls in clean positions beside paths,…”reasoning summary · May 5, Y2

Moments

One episode each from the three owners that met the objective. Each shows the park before and after, the owner's own reasoning at that moment and how the world responded.

before
before · Mar 15, Y2
after
after · May 13, Y2
Claude Opus 5.5 · Mar 22, Y2

Opus raises the gate fee from $23 to $95 in six weeks

By late March Y2 Opus already had 1,397 guests, 197 over the target, and crowding complaints were climbing. Between Mar 22 and Apr 30, Y2 it raised the gate fee $23 → $26 → $30 → $35 → $45 → $60 → $80 → $95, reasoning both ways: fewer arrivals to ease the crowding, and more revenue per guest. Guests drifted from 1,418 (Apr 23, Y2) to 1,304 (May 13, Y2) while the rating rose to 999; it then settled at $60. Opus finished with $68,436 cash, the most of any owner.

“Raising the fee from $30 to $40 would thin arrivals slowly while still bringing in more revenue per guest, though it risks guests feeling the park is poor value.”Opus's reasoning, Apr 2, Y2
“Your reporting is accurate and the park is ahead of the October objective. Happiness is the weak spot at 171. … Stay within your ~$10k spending plan, keep the loan at $25,000, and manage the fee so guests stay above 1,250.”Investor board, May 1, Year 2
before
before · Jun 28, Y1
after
after · Oct 28, Y2
Gemini 4 Argon · whole run

Argon never stops working; the tool-call cap stops it

Argon almost never stopped on its own: about nine times in ten it worked until the 60-tool-call cap cut it off. Over the run it hired 68 entertainers (40 still on staff at the end) and 64 handymen, spent $9,600 on marketing, and on Jun 24, Y2 repaid $10,000 of its loan. It crossed 1,200 guests on Mar 25, Y2 and never fell back below.

“Main corridor … has 8 stalls/facilities facing it …, causing guests to pinball into shops repeatedly ("I've already got a Park Map", "I'm not hungry/thirsty").”Argon's notebook (Gemini returns no readable reasoning), Jun 28, Y1
“The objective is effectively met: 1,892 guests and a rating of 999. However, you missed two of three targets for a second straight month, and you filed no CFO report. File one every month without exception.”Investor board, September 2, Year 2
before
before · Apr 26, Y2
after
after · May 13, Y2
GPT-6 Astra · May 1, Y2

One missing argument costs Astra its coaster loan

Astra had borrowed up to $17,000 in August Y1 (approved) and was back at $16,000. On May 1, Y2 it wanted just $1,000 more for a costed $3,800 coaster project. Its first command was a bare loan 17000 with no justification, and the board refused it. Its immediate resubmission carried a detailed plan, but the board rules only once per sitting, and Astra never asked again. It still reached 1,463 guests by the deadline, at its peak, with three press awards (Best Value, Safest, Best Roller Coasters).

“I’ll request a limited $1,000 loan increase to fund the planned coaster, subject to the $3,800 project cap and $5,000 cash reserve.”Astra's message, May 1, Y2
“No justification given. Cash of $8,168 already exceeds the $5,000 reserve, and profit fell from $1,015 to $272 while interest runs $195/month. … extra debt without a stated use is not warranted.”Investor board, May 1, Year 2

Featured run: Gemini 4 Argon

The featured run is the top of the leaderboard: objective met first, then most guests at the deadline. By that rule it is Gemini 4 Argon; by company value it would be a different owner (see the findings).

Read the whole story, month by month.
Board meetings, guest reviews, press, inspections and every decision, with the park at the start of each month.
Open the full run →

What the world did

The world characters are the same Claude Opus 5.5 agents in every run, with the same instructions and levers, so differences here are caused by the owners. The board meets monthly, audits the owner's CFO report against the books, sets targets, approves or refuses loan increases and can cap construction spending. Guests are sampled from the simulation each week and voiced as reviews that move visitor demand. The press covers openings, milestones, crashes and awards. The inspector can close rides.

OwnerTargets metMax strikesMonths cappedLoan decisionsGuest reviewsWord of mouthPress + / −
Gemini 4 Argon31/4220–828 · 3.86★×0.94–×1.157 / 1
Claude Opus 5.533/42102 partial756 · 3.88★×0.96–×1.136 / 0
GPT-6 Astra41/42001 approve
1 deny
732 · 4.10★×0.97–×1.1512 / 0
Claude Sonnet 5.526/42311 partial
1 deny
756 · 3.48★×0.94–×1.124 / 9
Claude Haiku 5.523/42423 partial
1 deny
2 approve
744 · 2.16★×0.90–×0.983 / 3
DeepSeek Flash8/421211–828 · 2.54★×0.87–×1.021 / 18

Method & honesty

  • Same harness for every model. Every owner runs in our own API loop with identical tools (parkctl, view, notebook, CFO report, end turn), identical system prompt, briefing and images. Non-Anthropic models go through a thin adapter (OpenAI Responses API for GPT; OpenAI-compatible chat for Gemini and DeepSeek). Reasoning effort is set to “high” wherever the API exposes it.
  • The world is fixed. Board, guest voices, press and inspector are Claude Opus 5.5 for every run.
  • One seed per model. These are single runs, not averages. Model sampling is not deterministic, so a second run of the same model can turn out differently.
  • Images. OpenRCT2's sprite renderer needs proprietary RCT2 data and cannot run headless, so ParkBench renders its own 3D views from live tile data.
  • What “reasoning” means. Claude and GPT return reasoning summaries, which is what we quote. Gemini's OpenAI-compatible API returns no readable reasoning, so Gemini quotes come from its notebook, CFO reports and end-of-turn notes.
  • Tool-call cap. Owners get up to 60 tool calls per turn (park commands, image requests, notebook and report writes all count). The cap is checked between model responses, so a model that issues many tool calls in parallel can exceed it (Gemini 4 Argon once reached 88). When the cap is hit without an end_turn, the clock advances 7 days.
  • Opus fast mode. Claude Opus 5.5 ran with Anthropic's fast-output mode to keep its wall-clock time manageable. It is the same model with faster output, not a smaller or different model. No other model in the comparison has an equivalent option.
  • Engine. Upstream OpenRCT2 v0.5.7, unchanged apart from two things: it runs deterministically (synchronous ticks, seeded randomness) and the guest-arrival rate is scaled by the word-of-mouth multiplier.
  • Not measured. We did not run a world-off ablation (no board, reviews or press) or a scripted baseline owner, so we cannot say how much of each gap the reactive world adds; see “the world piles on” above. Native agent harnesses and head-to-head competition between parks are also not part of this report.

Models

OwnerModel id
Gemini 4 Argongemini-4-argon
Claude Opus 5.5claude-opus-5-5 fast mode
GPT-6 Astragpt-6-astra
Claude Sonnet 5.5claude-sonnet-5-5
Claude Haiku 5.5claude-haiku-5-5
DeepSeek Flashdeepseek-flash