Skip to content

Claude Haiku 5.5 (effort default (no --effort flag) · thinking on) on Bouncing logo screensaver in one self-contained HTML file

AClaude Haiku 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.0068
Wall time
33s
Human step-ins
0
Outcome
Pass

Compare with other models on this task →

Summary

Exact prompt

# Bouncing logo screensaver in one self-contained HTML file Make a classic bouncing-logo screensaver: a logo of your own design that bounces off the edges of the window. Style, colours and technique (CSS, SVG, canvas) are up to you. **Looks are not scored**; only the objective checks below are. Write one file, `logo.html`, in the working directory. ## Checks (all must pass; partial credit = fraction passed) 1. `file_exists_under_size_limit`: `logo.html` exists and is at most 50,000 bytes (50 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="logo"` and a `<title>` containing "Bouncing Logo" (case-insensitive). No other files, no build step, no network. Run time limit for scoring: 120 s.

Recreate the classic bouncing-logo screensaver as one self-contained HTML file with a tighter 50 KB size limit. The scorer checks only that it makes no network requests, animates continuously, visibly changes in headless Chrome, and carries the required id and title. Looks are not scored and 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 l05-bouncing-logo (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-haiku-5.5: $0.006767. 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.0068
Wall time
33s
Human step-ins
0
Turns
9
Model usage
ModelInput tokOutput tokCost
AClaude Haiku 5.5anthropic/claude-haiku-5.5effort default (no --effort flag) · thinking on161,9535,429$0.0068

Reproduce this run

  1. Use the use case prompt on the use case page.
  2. Same setup: Claude Haiku 5.5 (anthropic/claude-haiku-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": 27452,
  "stop_reason": "end_turn",
  "session_id": "[REDACTED]",
  "total_cost_usd": 0.0067667199999999995,
  "usage": {
   "input_tokens": 14,
   "cache_creation_input_tokens": 12797,
   "cache_read_input_tokens": 149142,
   "output_tokens": 5429,
   "output_tokens_details": {
    "thinking_tokens": 2024
   },
   "server_tool_use": {
    "web_search_requests": 0,
    "web_fetch_requests": 0
   },
   "service_tier": "standard",
   "cache_creation": {
    "ephemeral_1h_input_tokens": 12797,
    "ephemeral_5m_input_tokens": 0
   },
   "inference_geo": "global",
   "iterations": [
    {
     "input_tokens": 2,
     "output_tokens": 407,
     "cache_read_input_tokens": 24691,
     "cache_creation_input_tokens": 645,
     "cache_creation": {
      "ephemeral_5m_input_tokens": 0,
      "ephemeral_1h_input_tokens": 645
     },
     "type": "message"
    }
   ],
   "speed": "standard",
   "fallback_credit": null
  },
  "modelUsage": {
   "claude-haiku-5-5": {
    "inputTokens": 14,
    "outputTokens": 5429,
    "cacheReadInputTokens": 149142,
    "cacheCreationInputTokens": 12797,
    "webSearchRequests": 0,
    "costUSD": 0.0067667199999999995,
    "contextWindow": 1000000,
    "maxOutputTokens": 128000,
    "thinkingTokens": 2024,
    "canonicalModel": "claude-haiku-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": 9,
  "subtype": "success",
  "api_error_status": null,
  "result": "I created `logo.html` in the working directory. It is a bouncing \"BOUNCE\" badge that changes colour each time it hits an edge, drawn with a `requestAnimationFrame` loop that never stops.\n\nChecks I ran locally:\n- **Size:** 2,059 bytes, well under the 50 KB limit.\n- **Self-contained:** no `http(s)://`, `//`, `@import`, `fetch(`, XHR/WebSocket/EventSource/beacon, `<script src>`, `<link>` or `url(` in the file. I removed a `//` code comment that a naive scanner could have flagged.\n- **Animation:** rAF loop, with no `cancelAnimationFrame` or `clearInterval` anywhere.\n- **Required markup:** `id=\"logo\"` on the bouncing element and `<title>Bouncing Logo</title>`.\n- **Headless Chrome:** real-time screenshots at 1.5 s and 2.5 s differ, so the page animates. The first attempt with `--virtual-time-budget` produced identical screenshots because virtual time does not advance `requestAnimationFrame` in that mode. This is a limitation of the test method, not of the page.\n\nI did not run the scorer itself.",
  "ttft_ms": 7092,
  "type": "result",
  "duration_ms": 32845,
  "uuid": "[REDACTED]",
  "ttft_stream_ms": 1223,
  "time_to_request_ms": 261,
  "first_content_frame_ms": 1223,
  "queued_turn_count": 0,
  "result_index": 0
 }
]

Get new runs and ranking changes weekly