Claude Opus 5.5 on One-shot a Minecraft-style voxel game in three.js
AClaude Opus 5.5 · Claude Code 2.1.299 (headless -p) · cloud · 2026-10-14 · by @bobsiopener
- Estimated cost
- $0.56
- Wall time
- 2m
- Human step-ins
- 0
- Outcome
- Pass
Compare with other models on this task →
Summary
Exact prompt
In one pass, build a playable Minecraft-style voxel game as a single file index.html using three.js loaded from https://unpkg.com/three@0.160.0/build/three.module.js (ES module import). Requirements: a generated terrain of at least 32x32 columns with at least 3 block types; first-person WASD movement with mouse look (pointer lock); left click breaks the targeted block, right click places a block; number keys 1-3 select block type; a crosshair and a small HUD showing the selected block. No other files.
Task prompt given to the agent (headless, offline, synthetic fixture inputs): In one pass, build a playable Minecraft-style voxel game as a single file index.html using three.js loaded from https://unpkg.com/three@0.160.0/build/three.module.js (ES module import). Requirements: a generated terrain of at least 32x32 columns with at least 3 block types; first-person WASD movement with mouse look (pointer lock); left click breaks the targeted block, right click places a block; number keys 1-3 select block type; a crosshair and a small HUD showing the selected block. No other files. Inspired by https://x.com/notjazii/status/2075549898909622330 (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; pointer lock; WASD; raycast break/place (mouse buttons 0 and 2); block select keys 1-3; crosshair + HUD elements; terrain >=32x32 (size constant); no uncaught console errors in headless Chrome.
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 (8/8 checks). Case 13 was rescored after the run (no rerun): three rubric checks (crosshair id, voxel raycast, 1-3 key handling) were widened after manual review found false negatives; final score is the rescored one.
Estimated cost List-price estimate; not actually billed.
Metrics
- Estimated cost
- $0.56
- Wall time
- 2m
- Human step-ins
- 0
- Turns
- 7
| Model | Input tok | Output tok | Cost |
|---|---|---|---|
| AClaude Opus 5.5anthropic/claude-opus-5.5 | 188,388 | 16,863 | $0.56 |
Reproduce this run
- Use the use case prompt on the use case page.
- Same setup: Claude Opus 5.5 (anthropic/claude-opus-5.5) via
Claude Code 2.1.299 (headless -p), cloud. - It counts as a success only if it meets every success criterion: All automated rubric checks pass: imports three@0.160.0 module; pointer lock; WASD; raycast break/place (mouse buttons 0 and 2); block select keys 1-3; crosshair + HUD elements; terrain >=32x32 (size constant); no uncaught console errors in headless Chrome.
- 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?
Automated checks
Trust 80% comes from these checks (how Trust % works).
- Run date is not in the future : passed
- Model is in the dated pricing table : passed
- Cost recomputed from tokens matches : passed
- Cached tokens are consistent : passed
- Output throughput is plausible : passed
- Autonomy matches step-ins : passed
- Step-ins do not exceed turns : passed
- Retries agree with first-try result : passed
- Evidence log SHA-256 matches : passed
- Evidence log is substantial : passed
Evidence log
{
"duration_api_ms": 137157,
"stop_reason": "end_turn",
"session_id": "[REDACTED]",
"total_cost_usd": 0.556653,
"usage": {
"input_tokens": 12,
"cache_creation_input_tokens": 23291,
"cache_read_input_tokens": 165085,
"output_tokens": 16863,
"output_tokens_details": {
"thinking_tokens": 4858
},
"server_tool_use": {
"web_search_requests": 0,
"web_fetch_requests": 0
},
"service_tier": "standard",
"cache_creation": {
"ephemeral_1h_input_tokens": 23291,
"ephemeral_5m_input_tokens": 0
},
"inference_geo": "global",
"iterations": [
{
"input_tokens": 2,
"output_tokens": 628,
"cache_read_input_tokens": 35057,
"cache_creation_input_tokens": 380,
"cache_creation": {
"ephemeral_5m_input_tokens": 0,
"ephemeral_1h_input_tokens": 380
},
"type": "message"
}
],
"speed": "standard",
"fallback_credit": null
},
"modelUsage": {
"claude-opus-5-5": {
"inputTokens": 12,
"outputTokens": 16863,
"cacheReadInputTokens": 165085,
"cacheCreationInputTokens": 23291,
"webSearchRequests": 0,
"costUSD": 0.556653,
"contextWindow": 1000000,
"maxOutputTokens": 128000,
"thinkingTokens": 4858,
"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": 7,
"subtype": "success",
"api_error_status": null,
"result": "I've built the game as a single file, `index.html`, which loads three.js 0.160.0 from unpkg as an ES module. A headless Chrome screenshot shows the terrain, trees, textures, crosshair, hotbar and start screen all drawing correctly. I couldn't test the interactive parts that way: pointer lock, movement, and breaking and placing blocks still need a real play-through in a browser.\n\n**What's in it:**\n- **Terrain:** a 64\u00d764 world, 48 blocks tall, generated from layered noise. A new random seed is used each load. There are 6 block types: grass, dirt, stone, sand (on low ground) and trees made of wood and leaves.\n- **Graphics:** the block textures are pixel-art images drawn by the code itself, so no image files are needed.\n- **Movement:** click the start screen to lock the mouse, then use WASD to move, the mouse to look, Space to jump and Shift to sprint. The player collides properly with blocks and can't walk off the edge of the world. Esc pauses.\n- **Building:** left click breaks the targeted block and right click places one, up to 6 blocks away. A black outline marks the block you're aiming at. You can't place a block inside yourself, and only the part of the world around a change is redrawn.\n- **Block selection:** keys 1\u20133 select grass, dirt and stone as required. I added 4 for wood, 5 for sand and mouse-wheel scrolling.\n- **HUD:** a crosshair, a hotbar with a picture of each block, the selected block's name, and your position and seed in the top-left corner.\n\nThe first screenshot showed a tree right next to where you start, so I widened the tree-free area around the spawn point.\n\nTo play, open `index.html` in a browser with an internet connection (needed to load three.js) and click \"Click to play\".",
"ttft_ms": 46533,
"type": "result",
"duration_ms": 139143,
"uuid": "[REDACTED]",
"ttft_stream_ms": 896,
"time_to_request_ms": 283,
"first_content_frame_ms": 896,
"queued_turn_count": 0,
"result_index": 0
}