Skip to content

Claude Opus 5.5 (effort default (no --effort flag) · thinking on) on Animated snowman in one self-contained HTML file

AClaude Opus 5.5default · thinking on · Claude Code 2.1.299 (headless -p) · cloud · 2026-10-20 · by @bobsiopener

Trust 80%Fully autonomoussuccess · first try
Estimated cost
$0.16
Wall time
33s
Human step-ins
0
Outcome
Pass

Compare with other models on this task →

Summary

Exact prompt

# Animated snowman in one self-contained HTML file Make an animated snowman scene. Anything goes: falling snow, a waving arm, a blinking face, a melting sun, your call. Style, colours and technique (CSS, SVG, canvas) are up to you. **Looks are not scored**; only the objective checks below are. Write one file, `snowman.html`, in the working directory. ## Checks (all must pass; partial credit = fraction passed) 1. `file_exists_under_size_limit`: `snowman.html` exists and is at most 100,000 bytes (100 KB). 2. `no_external_requests`: fully self-contained. No `http://`, `https://` or `//` URLs in `src`, `href`, `srcset`, `poster`, `action`, `data` or `url()`, no asset URLs anywhere, no `@import`, `fetch(`, `XMLHttpRequest`, `WebSocket`, `EventSource`, `sendBeacon`, JS `import`, `<script src>` or `<link href>` (inline everything; `data:` URIs are fine). When a browser is used, any non-file request the page attempts also fails this check. 3. `animation_present`: CSS `@keyframes` plus an `animation`/`animation-name` property, or `requestAnimationFrame(` / `setInterval(`. 4. `loops_forever`: an `infinite` CSS animation (`animation-iteration-count: infinite` or `infinite` in the `animation` shorthand), or rAF/`setInterval` with no `cancelAnimationFrame`/`clearInterval` anywhere; when a browser is used, the page must also still change between ~6 s and ~7 s after load. 5. `page_animates`: when a headless Chrome/Chromium is available, the page is opened once with the network blocked at 800x600, and screenshots at ~1.5 s and ~2.5 s after load must differ. Without a browser (or if it fails to start) this and the browser part of check 4 fall back to the static checks 3-4; the scorer reports `check_mode` (`headless-browser` or `static-fallback`). 6. `required_id_and_title`: an element with `id="snowman"` and a `<title>` containing "Snowman" (case-insensitive). No other files, no build step, no network. Run time limit for scoring: 120 s.

Write one self-contained, offline HTML file with a looping animated snowman scene (CSS, SVG or canvas). Scored only on objective checks: file under 100 KB, no external requests with the network blocked, animation present, loops forever, the page visibly changes in headless Chrome, and a required element id and title. Looks are left to a public poll. Original benchmark task written for usecaserank.com (not based on a specific public post). Headless, offline run on a reproducible fixture. Each run's notes say how its cost was measured (estimates are marked).

Success criteria: 1. file_exists_under_size_limit 2. no_external_requests 3. animation_present 4. loops_forever 5. page_animates 6. required_id_and_title

Setup notes: Use Case Scout batch 11 case l01-animate-snowman (offline, open-ended creative brief). Prepared with batch11/prepare.sh; hidden checker kept outside the agent's work dir. Prompt = TASK.md verbatim. Scored with the case's scorer (`python score.py WORKDIR KEYDIR`, headless Chrome over a CDP pipe, network blocked). Tools: Read/Write/Edit/Glob/Grep/Bash, web disabled. Single run, no retries. Output rendered offline (google-chrome headless, network blocked): PNG 1280x800 at ~3 s after load; MP4 1280x720 H.264 ~6 s. Claude Code's own reported cost for claude-opus-5.5: $0.158378. Score: 6/6. Cost is an ESTIMATE: measured tokens x pricing.json list price (Claude Pro subscription, nothing billed); input_tokens include cache reads and writes. Single run.

Estimated cost List-price estimate; not actually billed.

Output

Metrics

Estimated cost
$0.16
Wall time
33s
Human step-ins
0
Turns
5
Model usage
ModelInput tokOutput tokCost
AClaude Opus 5.5anthropic/claude-opus-5.5effort default (no --effort flag) · thinking on102,3103,123$0.16

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, effort default (no --effort flag) · thinking on) via Claude Code 2.1.299 (headless -p), cloud.
  3. It counts as a success only if it meets every success criterion: 1. file_exists_under_size_limit 2. no_external_requests 3. animation_present 4. loops_forever 5. page_animates 6. required_id_and_title
  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": 30685,
  "stop_reason": "end_turn",
  "session_id": "[REDACTED]",
  "total_cost_usd": 0.1583782,
  "usage": {
   "input_tokens": 10,
   "cache_creation_input_tokens": 9669,
   "cache_read_input_tokens": 92631,
   "output_tokens": 3123,
   "output_tokens_details": {
    "thinking_tokens": 203
   },
   "server_tool_use": {
    "web_search_requests": 0,
    "web_fetch_requests": 0
   },
   "service_tier": "standard",
   "cache_creation": {
    "ephemeral_1h_input_tokens": 9669,
    "ephemeral_5m_input_tokens": 0
   },
   "inference_geo": "global",
   "iterations": [
    {
     "input_tokens": 2,
     "output_tokens": 471,
     "cache_read_input_tokens": 21077,
     "cache_creation_input_tokens": 738,
     "cache_creation": {
      "ephemeral_5m_input_tokens": 0,
      "ephemeral_1h_input_tokens": 738
     },
     "type": "message"
    }
   ],
   "speed": "standard",
   "fallback_credit": null
  },
  "modelUsage": {
   "claude-opus-5-5": {
    "inputTokens": 10,
    "outputTokens": 3123,
    "cacheReadInputTokens": 92631,
    "cacheCreationInputTokens": 9669,
    "webSearchRequests": 0,
    "costUSD": 0.1583782,
    "contextWindow": 1000000,
    "maxOutputTokens": 128000,
    "thinkingTokens": 203,
    "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": 5,
  "subtype": "success",
  "api_error_status": null,
  "result": "I've written `snowman.html` and it should pass all six checks. It shows falling snow, a waving right arm, eyes that blink, a top hat that hops now and then, and a gentle sway.\n\nWhat I checked:\n- **Size:** the file is 3,711 bytes, well under the 100 KB limit.\n- **No external requests:** a search found no `//`, `@import`, `fetch(`, `XMLHttpRequest`, `WebSocket`, `EventSource`, `sendBeacon` or `import`. The SVG is inline without an `xmlns` URL, and the snow is drawn on a canvas.\n- **Animation present and looping forever:** it uses CSS `@keyframes` with `infinite`, plus a `requestAnimationFrame` loop for the snow. There is no `cancelAnimationFrame` or `clearInterval` anywhere.\n- **Page animates:** I opened it in headless Chrome at 800x600 and took screenshots at 1.5 s and 2.5 s. They differ, and the rendered scene looks right.\n- **Id and title:** it has `id=\"snowman\"` and the title \"Animated Snowman\".\n\nI didn't test the browser part of check 4 directly (that the page still changes between about 6 and 7 seconds). The snow loop never stops, so it should keep changing. My screenshot test also didn't block the network the way the scorer does, but the page makes no network requests, so that shouldn't matter.",
  "ttft_ms": 4562,
  "type": "result",
  "duration_ms": 32194,
  "uuid": "[REDACTED]",
  "ttft_stream_ms": 2395,
  "time_to_request_ms": 333,
  "first_content_frame_ms": 2395,
  "queued_turn_count": 0,
  "result_index": 0
 }
]

Get new runs and ranking changes weekly