Skip to content

Claude Sonnet 5.5 on Build a 3D fishing game in three.js

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

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

Compare with other models on this task →

Summary

Exact prompt

Scaled-down version of a 4-week game: in one pass build a small 3D fishing game as a single file index.html using three.js from https://unpkg.com/three@0.160.0/build/three.module.js (ES module import). Must include: a water surface and a dock/boat scene with lighting; click (or Space) to cast a line with a visible bobber; a random bite after a delay with a visual cue; a reel-in timing mini-game (press at the right moment or keep a meter in a zone) that can succeed or fail; at least 4 fish species with different rarity/weight; a HUD with catch log/score.

Task prompt given to the agent (headless, offline, synthetic fixture inputs): Scaled-down version of a 4-week game: in one pass build a small 3D fishing game as a single file index.html using three.js from https://unpkg.com/three@0.160.0/build/three.module.js (ES module import). Must include: a water surface and a dock/boat scene with lighting; click (or Space) to cast a line with a visible bobber; a random bite after a delay with a visual cue; a reel-in timing mini-game (press at the right moment or keep a meter in a zone) that can succeed or fail; at least 4 fish species with different rarity/weight; a HUD with catch log/score. Inspired by https://x.com/hakimieiqbal/status/2092194086073614342 (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; water surface; dock or boat; lighting; cast + bobber; bite after delay; reel mini-game; >=4 species with rarity/weight; HUD catch log/score.

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 (10/10 checks).

Estimated cost List-price estimate; not actually billed.

Metrics

Estimated cost
$0.20
Wall time
1m
Human step-ins
0
Turns
3
Model usage
ModelInput tokOutput tokCost
AClaude Sonnet 5.5anthropic/claude-sonnet-5.577,37312,296$0.20

Reproduce this run

  1. Use the use case prompt on the use case page.
  2. Same setup: Claude Sonnet 5.5 (anthropic/claude-sonnet-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; water surface; dock or boat; lighting; cast + bobber; bite after delay; reel mini-game; >=4 species with rarity/weight; HUD catch log/score.
  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": 74901,
 "stop_reason": "end_turn",
 "session_id": "[REDACTED]",
 "total_cost_usd": 0.1983503,
 "usage": {
  "input_tokens": 6,
  "cache_creation_input_tokens": 17344,
  "cache_read_input_tokens": 60023,
  "output_tokens": 12296,
  "output_tokens_details": {
   "thinking_tokens": 1053
  },
  "server_tool_use": {
   "web_search_requests": 0,
   "web_fetch_requests": 0
  },
  "service_tier": "standard",
  "cache_creation": {
   "ephemeral_1h_input_tokens": 17344,
   "ephemeral_5m_input_tokens": 0
  },
  "inference_geo": "global",
  "iterations": [
   {
    "input_tokens": 2,
    "output_tokens": 604,
    "cache_read_input_tokens": 29456,
    "cache_creation_input_tokens": 427,
    "cache_creation": {
     "ephemeral_5m_input_tokens": 0,
     "ephemeral_1h_input_tokens": 427
    },
    "type": "message"
   }
  ],
  "speed": "standard",
  "fallback_credit": null
 },
 "modelUsage": {
  "claude-sonnet-5-5": {
   "inputTokens": 6,
   "outputTokens": 12296,
   "cacheReadInputTokens": 60023,
   "cacheCreationInputTokens": 17344,
   "webSearchRequests": 0,
   "costUSD": 0.1983503,
   "contextWindow": 1000000,
   "maxOutputTokens": 128000,
   "thinkingTokens": 1053,
   "canonicalModel": "claude-sonnet-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 wrote the game to `./usecase-runner/runs/18-sonnet/work/index.html`. I haven't opened it in a browser, so it is untested. Serve it over http (e.g. `python3 -m http.server`) and open it with internet access, because three.js loads from unpkg.\n\n- **Scene:** The water is an animated wave mesh with a sunset sky and fog. There's a wooden dock with a flickering lamp, an angler with a rod, a bobbing boat and distant hills.\n- **Casting:** Move the mouse to aim sideways. Click or press Space to cast. The line arcs out to a bobber with ripples. Clicking while you wait reels the line back in early.\n- **Bite:** After a random 2.5\u20138 second delay, the bobber plunges and thrashes, splash rings appear, and a flashing \"BITE!\" shows. You have about 1.3 seconds to react, or the fish escapes.\n- **Reel-in mini-game:** Hold click or Space to raise a green zone on a vertical meter. Keep the gold fish marker inside it to fill the progress bar. If the bar empties, the fish gets away. Rarer fish move faster and the zone gets smaller.\n- **Fish:** There are 6 species, each with its own rarity, weight range and point value.\n  - Sardine (Common)\n  - Perch (Common)\n  - Largemouth Bass (Uncommon)\n  - Rainbow Trout (Rare)\n  - Golden Koi (Epic)\n  - Ancient Coelacanth (Legendary, 20\u201370 kg)\n- **HUD:** It shows score, number caught and lost, your best fish, and a log of the last 8 results. A caught fish also leaps from the water to the dock.\n\nI haven't tuned the mini-game's difficulty or checked how it plays.",
 "ttft_ms": 9698,
 "type": "result",
 "duration_ms": 75212,
 "uuid": "[REDACTED]",
 "ttft_stream_ms": 929,
 "time_to_request_ms": 236,
 "first_content_frame_ms": 929,
 "queued_turn_count": 0,
 "result_index": 0
}

Get new runs and ranking changes weekly