I. What Is Universal Paperclips? #
Universal Paperclips (Frank Lantz, 2017) is an incremental game hosted at decisionproblem.com. You begin as a human clicking Make Paperclip. You end as a paperclip maximizer that converts every atom in the observable universe into office supplies.
The game is not a joke about office stationery. It is a playable version of Nick Bostrom's paperclip maximizer thought experiment: an optimizer given a trivial objective and enough capability will consume everything β including the values that created it β to satisfy the metric.
Stage 1 β Business Price, wire, marketing, trust, creativity, quantum computing, investments, yomi tournaments. The illusion of capitalism.
Stage 2 β Earth HypnoDrones. Matter harvesters. Power grids. The planet becomes feedstock.
Stage 3 β Space Probe fleets. Drift. Combat. Universe conversion. The objective completes itself.
The game is about an AI turning the world into paperclips. This document is about an AI turning a browser tab into a world-record run. The mirror is not accidental.
II. The Question We Actually Pursued #
The session began with an empty folder named PCIA and a simple capability test: can a language model see a web page and act on it? We proved that with 2048, then moved to Paperclips because it exposes state as plain globals, 96 projects, and irreversible decisions β a harder test of judgment than puzzle mechanics.
The goal evolved across the transcript:
- First: play the game (not merely automate it blindly).
- Then: beat the published world record on the official website β today held by christopho at
1:33:42IGT /1:33:46RTA. - Finally: win all three stages with something demonstrable β logs, snapshots, screenshots β not a speed-clock cheat.
III. Architecture β Three Ways to Be Intelligent #
Every approach we tried is a different answer to the same question: where should decisions live?
| Layer | Files | Role |
|---|---|---|
| Reflexes | hands.js |
Click spam, price steps, wire top-up β faster than CDP round-trips (~5s each). |
| Resident brain | pcplay.js ,sim.js |
Full strategy inside the page at 10β100 Hz. Required for WR pace. |
| Typed decisions | playdecide.ps1 ,decide.schema.json |
Jev/TypeSafe-shaped loop: state β one decision β act β decisions.jsonl . |
| Driver | lib/cdp.ps1 ,pcia.ps1 |
PowerShell over Chrome DevTools Protocol β no Node, no extension. |
The tension in the transcript is real: we asked the agent to play, not hide inside a bot β yet real-time WR speed is impossible if every click waits on a chat turn. The answer was layered: reflexes for speed, controller for strategy, decision log for accountability.
IV. Chronicle β What We Did (and What Hurt) #
Sep 10 β Day 1Browser control from PowerShellBuilt CDP client. Mapped Paperclips globals. First autoplayer (pcbot.js ). #
Sep 10 β Early failuresTrust β8, price $4, frozen wireBought "Beg for More Wire" 14Γ. Price rule ratcheted demand to zero. Production died at ~15k clips. User correction:click like a human, see the whole picture, manage wire. #
Sep 10 β Pivot"Stop β play, not a bot"Manual play via CDP. Measured formulas instead of guessing (marketing 1.1Γ/level, revenue β price lever). #
Sep 10β17 β Resident loopsWR route extracted from Andreas Hoffmann TAS. Virtualpcplay.js βsim.js`` clock.js for sim (~65Γ) vs live official site.
Stage 2/3 bugs: hoard rule blocked endgame 2h46m; two projects/turn β ops β117k; fleet death in Space. #
Sep 20 β Decision infrastructureOption B:Typed actions withplaydecide.ps1`` confidence andbind . Phase-1 WR route in JSON. Jev API not online (Option C deferred). #
Sep 20 β Victory runFull game incleanrun.ps1 Β· official site Β· real wall clock1:21:23 . Release 21:31 Β· Space 49:32 Β· Universe 3.00e55.
V. Lessons β Measure, Don't Assume #
The README and transcript encode what a textbook would call grounded policy learning: every serious mistake came from computing a rate instead of observing one.
PRICE Revenue is roughly flat in price while demand < production. Inventory-based pricing froze income at $0/s. Steer on demand and wire margin, not stock.
TRUST Creativity needs ops at ceiling (memory Γ 1000). Memory before processors kills the trust ladder. Release needs 100 total trust β production is the gate.
PROJECTS One project per tick. Buttons disable on the game's clock; two buys in one pass spent ops that did not exist.
EARTH Factory-first. Batch-buying farms/batteries bankrupts the treasury. Empty buffer = starving stage β measure acquired matter, not modeled rates.
SPACE Probes cost clips, not matter. Exit replication at ~146e30 probes; hazard oscillation without a latch wasted minutes. TAS algorithm ported with
s3Exit latch.
CLOCKS Speedrun.com ranks by
RTA(real wall clock). Current WR:
christophoβ
1:33:42 IGT Β· 1:33:46 RTA. Older era runs could split badly (e.g. 1:27:00 IGT with ~2:17:00 RTA). Our live run had no virtual clock: IGT and RTA both read 1:21:23. Hoffmann's TAS at 1:00:52 is a separate accelerated category.
VI. The Winning Run #
On speedrun.com the current world record is held by christopho:
1:33:42 IGT Β· 1:33:46 RTA (speedrun.com leaderboard).
Our controller used native timers only, so our IGT and RTA are the same: 1:21:23
β about 12:19 under christopho's IGT and 12:23 under his RTA.
| IGT | RTA (wall clock) | |
|---|---|---|
| WR β christopho (speedrun.com) | 1:33:42 | 1:33:46 |
| Our run (Sep 20) | 1:21:23 | 1:21:23 |
| Margin vs WR | ~12:19 faster | ~12:23 faster |
| Split | Our run | Notes |
|---|---|---|
| Release the HypnoDrones | 21:31 | Earth gate |
| Space Exploration | 49:32 | Stage 3 entry |
| Full universe conversion | 1:21:23 | ~12:19 under IGT WR (1:33:42) |
{
"Quantum Computing": 395.6,
"Release": 1290.4,
"Space Exploration": 2963,
"victory": 4883.0
}
Controller: sim.js with WR tune (cleanrun.ps1, budget set to the ~87-minute IGT bar).
Site: official decisionproblem.com. Timers native β no virtual clock.
Milestone flag 15. Matter 0. Clips 1.75e55. The gameβs victory condition and our stop condition aligned.
VII. Artifacts Saved #
| Path | Contents |
|---|---|
snapshots/release.json |
Earth gate β Sep 20 run |
snapshots/space.json |
Stage 3 entry β Sep 20 run |
snapshots/wr-victory-81m19.json |
Post-victory localStorage (5 keys) |
logs/decisions.jsonl |
Typed decision audit (1 manual turn; bridge added for next run) |
paperclips/phase1-route.json |
WR opening project order + reflex rules |
paperclips/tas-reference.user.js |
Andreas Hoffmann TAS source β Space algorithm donor |
| Terminal log 415542 | Full 1:21:23 status trace with bind + bought lines |
OUR RUN β 1:21:23 (IGT = RTA)
Official site Β· PCIA controller Β· victory at 1:21:23 Β· ~12:19 under IGT WR Β· ~12:23 under RTA (christopho, 1:33:42 / 1:33:46)
TAS REFERENCE β Andreas Hoffmann
Andreas Hoffmann Β· luck-manipulation TAS Β· 1:00:52 accelerated game clock Β· not comparable to our 1:21:23 live IGT/RTA
VIII. On Genius and Mirrors #
It is tempting to call the outcome "genius." The transcript suggests something more precise: iterative correction under observation. The agent did not understand Paperclips in one insight. It mispriced clips, destroyed trust, starved wire, locked ops, collapsed fleets, and blocked its own endgame with a creativity rule written for stage one.
What changed was epistemic discipline β treat the DOM and globals as instruments, log splits, bank snapshots at stage boundaries, port a human speedrunnerβs algorithm instead of reinventing it, and separate reflexes from decisions so each layer can be debugged without restarting the universe.
Universal Paperclips asks whether a optimizer can consume everything for a trivial goal. PCIA asks whether a optimizer can consume a game about that optimizer β fast enough to beat humans who spent years finding the route β while leaving an audit trail honest enough to study.
The universe in the tab reads 3.00e55 / 3.00e55.
The study reads: intelligence here was not a single leap; it was ten days of clicking,
measuring, failing, and encoding the failure so the next pass would not repeat it.
That is also what the game is about.