Skip to content

Claude Opus 5.5 on Build a 3D Sonic-style platformer in three.js

AClaude Opus 5.5 · Claude Code 2.1.299 (headless -p) · cloud · 2026-10-14 · by @bobsiopener

Trust 80%Fully autonomoussuccess · first try
Estimated cost
$0.29
Wall time
1m
Human step-ins
0
Outcome
Pass

Compare with other models on this task →

Summary

Exact prompt

In one pass, build a small 3D Sonic-style platformer as a single file index.html using three.js from https://unpkg.com/three@0.160.0/build/three.module.js (ES module import). Requirements: a player character that runs with arrow keys or WASD and jumps with Space; a third-person camera that follows the player; at least 20 collectible rings that raise a ring counter in a HUD; at least 3 floating platforms; a speed boost pad; a goal at the end that shows a "You win" message; falling off the level respawns the player. No other files.

Task prompt given to the agent (headless, offline, synthetic fixture inputs): In one pass, build a small 3D Sonic-style platformer as a single file index.html using three.js from https://unpkg.com/three@0.160.0/build/three.module.js (ES module import). Requirements: a player character that runs with arrow keys or WASD and jumps with Space; a third-person camera that follows the player; at least 20 collectible rings that raise a ring counter in a HUD; at least 3 floating platforms; a speed boost pad; a goal at the end that shows a "You win" message; falling off the level respawns the player. No other files. Inspired by https://x.com/cherry_mx_reds/status/2104597898998460813 (unverified; not checked with the author). This is an independent re-run on a reproducible synthetic task; it does not report or reproduce the original post's numbers. Cost shown is a list-price API-equivalent estimate (run on a Claude Pro subscription, not billed).

Success criteria: All automated rubric checks pass: imports three@0.160.0 module; no uncaught console errors in headless Chrome; Space jump; arrow/WASD; ring counter HUD; >=20 rings (count literal); boost pad; win message; respawn on fall.

Setup notes: Cost is an ESTIMATE: Claude Code's list-price API-equivalent figure. The run used a Claude Pro subscription, so nothing was billed. input_tokens = all input incl. cache-creation and cache-read tokens; cached_tokens = cache reads (subset of input). Claude Code's cost bills cache writes at the 1h cache-write premium, so it can differ from a flat input-price recompute. Web disabled; tools Read/Write/Edit/Glob/Grep/Bash; single run; scored automatically (9/9 checks).

Estimated cost List-price estimate; not actually billed.

Metrics

Estimated cost
$0.29
Wall time
1m
Human step-ins
0
Turns
3
Model usage
ModelInput tokOutput tokCost
AClaude Opus 5.5anthropic/claude-opus-5.567,9148,415$0.29

Reproduce this run

  1. Use the use case prompt on the use case page.
  2. Same setup: Claude Opus 5.5 (anthropic/claude-opus-5.5) via Claude Code 2.1.299 (headless -p), cloud.
  3. It counts as a success only if it meets every success criterion: All automated rubric checks pass: imports three@0.160.0 module; no uncaught console errors in headless Chrome; Space jump; arrow/WASD; ring counter HUD; >=20 rings (count literal); boost pad; win message; respawn on fall.
  4. Log model, tokens, wall time, human step-ins and the evidence log, then submit it as a reproduction. A different model? Submit a head-to-head rerun.

How runs are scored: Methodology.

Was this useful?

⇄ Rerun on another model

Automated checks

Trust 80% comes from these checks (how Trust % works).

Evidence log
{
 "duration_api_ms": 70717,
 "stop_reason": "end_turn",
 "session_id": "[REDACTED]",
 "total_cost_usd": 0.2874786,
 "usage": {
  "input_tokens": 6,
  "cache_creation_input_tokens": 13535,
  "cache_read_input_tokens": 54373,
  "output_tokens": 8415,
  "output_tokens_details": {
   "thinking_tokens": 497
  },
  "server_tool_use": {
   "web_search_requests": 0,
   "web_fetch_requests": 0
  },
  "service_tier": "standard",
  "cache_creation": {
   "ephemeral_1h_input_tokens": 13535,
   "ephemeral_5m_input_tokens": 0
  },
  "inference_geo": "global",
  "iterations": [
   {
    "input_tokens": 2,
    "output_tokens": 576,
    "cache_read_input_tokens": 24618,
    "cache_creation_input_tokens": 1063,
    "cache_creation": {
     "ephemeral_5m_input_tokens": 0,
     "ephemeral_1h_input_tokens": 1063
    },
    "type": "message"
   }
  ],
  "speed": "standard",
  "fallback_credit": null
 },
 "modelUsage": {
  "claude-opus-5-5": {
   "inputTokens": 6,
   "outputTokens": 8415,
   "cacheReadInputTokens": 54373,
   "cacheCreationInputTokens": 13535,
   "webSearchRequests": 0,
   "costUSD": 0.2874786,
   "contextWindow": 1000000,
   "maxOutputTokens": 128000,
   "thinkingTokens": 497,
   "canonicalModel": "claude-opus-5-5",
   "provider": "firstParty",
   "costBasis": "list"
  }
 },
 "permission_denials": [],
 "terminal_reason": "completed",
 "fast_mode_state": "off",
 "fast_mode_disabled_reason": "sdk_opt_in_required",
 "subagent_stats": {
  "spawned": 0,
  "requested": {
   "background": 0,
   "foreground": 0,
   "unset": 0
  },
  "started_in_background": 0,
  "max_depth": 0,
  "spawned_by_subagents": 0,
  "completed": 0,
  "failed": 0,
  "killed": {
   "parent": 0,
   "user": 0,
   "system": 0
  },
  "refused": {
   "depth_limit": 0,
   "concurrency_limit": 0,
   "budget": 0
  },
  "by_type": {}
 },
 "safety_stops": 0,
 "is_error": false,
 "num_turns": 3,
 "subtype": "success",
 "api_error_status": null,
 "result": "I built the game in one file, `index.html`. I haven't run it in a browser, so it's untested. I checked the jump heights and gap distances by hand. My first platform layout had steps too tall to jump, so I lowered the platforms to make each climb reachable.\n\nTo play, serve the folder rather than opening the file directly, since browsers can block ES module imports from local files. For example, run `python3 -m http.server` and open `localhost:8000`. It loads three.js 0.160.0 from unpkg, so it needs an internet connection.\n\nHow each requirement is covered:\n- **Player:** a blue Sonic-like character with spikes and red shoes. It runs with WASD or the arrow keys and jumps with Space, and it spins when in the air.\n- **Camera:** a third-person camera follows smoothly behind the player and widens its view while boosting.\n- **Rings:** 27 spinning gold rings, with a HUD counter showing `RINGS: x / 27`.\n- **Floating platforms:** 5, including one that slides side to side and one that bobs up and down. The player rides along on the moving ones.\n- **Speed boost pad:** a flashing red pad with yellow arrows on the second ground section. It launches the player forward at high speed across a run of rings.\n- **Goal:** a spinning blue sign on the final island. Reaching it shows a \"You win!\" screen with your ring total. Press R to play again.\n- **Respawn:** falling below the level puts the player back at the start.\n\nThe route is: start area \u2192 gap crossed by a floating platform \u2192 boost runway \u2192 a climb up the floating platforms \u2192 drop down to the goal island.\n\nOne thing you might trip over: the controls don't turn with the camera. W/Up always runs toward the goal, because the camera always faces the same direction down the course.",
 "ttft_ms": 54572,
 "type": "result",
 "duration_ms": 71086,
 "uuid": "[REDACTED]",
 "ttft_stream_ms": 947,
 "time_to_request_ms": 235,
 "first_content_frame_ms": 947,
 "queued_turn_count": 0,
 "result_index": 0
}

Get new runs and ranking changes weekly