{
  "assertions": [
    "no_motion",
    "responds(click)"
  ],
  "attempts": 3,
  "attribution": "\u201ca skyline that grows a new floor every time you press a key\u201d \u2014 sketchgen entry 1475, prompted by profcarroll, written by qwen3-coder:30b-a3b-q4_K_M under the treatment rules file. https://profcarroll.github.io/sketchgen-gallery/e/1475/ Licensed CC BY 4.0.",
  "brief": "The canvas displays a simplified urban skyline composed of solid, geometric shapes representing buildings. These structures are fixed horizontally across the screen. When the viewer presses any key, the skyline responds by incrementing its height, appearing as a new floor or segment that grows upward onto the existing structure. The new floors maintain the same solid colour and blocky profile as the preceding segments, extending the overall silhouette of the city against the background.",
  "completion_tokens": 1751,
  "created_utc": "2026-09-23T15:45:01Z",
  "entry_id": 1475,
  "executor": "qwen3-coder:30b-a3b-q4_K_M",
  "executor_prompt_version": "executor-v3",
  "gate": [
    {
      "assertions": {
        "no_motion": true,
        "responds(click)": false
      },
      "attempt": 1,
      "checks": {
        "audio_context_running": null,
        "console_clean": true,
        "frame_advancing": true,
        "frame_budget": true,
        "is_looping": true,
        "sound_lib_ok": null
      },
      "completion_tokens": 573,
      "evidence": "gate exit 1: assertions failed: responds(click)\n\nAssertions that failed:\n- responds(click): click at canvas centre, 30 frames after: mean abs diff 0.0000/255, 0 of 1152000 pixels changed\n\nRuntime state the gate read:\n- frame_advancing compares frameCount at frame 84 of the 120-frame idle window (86) with the end of it (122); at load it was 0\n",
      "exit": 1,
      "ghost": {
        "events": 16,
        "ms": 3320,
        "played": 16,
        "script": "click",
        "source": "default"
      },
      "given": null,
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 1.5,
      "num_ctx": 16384,
      "preload_s": 0.028,
      "prompt_tokens": 2381,
      "resources_loaded": [],
      "rules_file": "treatment",
      "source": "attempt-1",
      "total_s": 2.397,
      "wall_s": 41.737
    },
    {
      "assertions": {
        "no_motion": true,
        "responds(click)": false
      },
      "attempt": 2,
      "checks": {
        "audio_context_running": null,
        "console_clean": true,
        "frame_advancing": true,
        "frame_budget": true,
        "is_looping": true,
        "sound_lib_ok": null
      },
      "completion_tokens": 591,
      "evidence": "gate exit 1: assertions failed: responds(click)\n\nAssertions that failed:\n- responds(click): click at canvas centre, 30 frames after: mean abs diff 0.0000/255, 0 of 1152000 pixels changed\n\nRuntime state the gate read:\n- frame_advancing compares frameCount at frame 84 of the 120-frame idle window (86) with the end of it (122); at load it was 0\n",
      "exit": 1,
      "ghost": {
        "events": 16,
        "ms": 3320,
        "played": 16,
        "script": "click",
        "source": "default"
      },
      "given": {
        "kind": "previous",
        "lines": 67,
        "sha256": "d69c92d264c4ee409b0ecc3ac0b297ca445fd87ae0dd7a1efcde87169ea22fe0",
        "shown": true
      },
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 1.6,
      "num_ctx": 16384,
      "preload_s": 0.029,
      "prompt_tokens": 3003,
      "resources_loaded": [],
      "rules_file": "treatment",
      "source": "attempt-2",
      "total_s": 2.447,
      "wall_s": 52.978
    },
    {
      "assertions": {
        "no_motion": true,
        "responds(click)": false
      },
      "attempt": 3,
      "checks": {
        "audio_context_running": null,
        "console_clean": true,
        "frame_advancing": true,
        "frame_budget": true,
        "is_looping": true,
        "sound_lib_ok": null
      },
      "completion_tokens": 587,
      "evidence": "gate exit 1: assertions failed: responds(click)\n\nAssertions that failed:\n- responds(click): click at canvas centre, 30 frames after: mean abs diff 0.0000/255, 0 of 1152000 pixels changed\n\nRuntime state the gate read:\n- frame_advancing compares frameCount at frame 84 of the 120-frame idle window (86) with the end of it (122); at load it was 0\n",
      "exit": 1,
      "ghost": {
        "events": 16,
        "ms": 3320,
        "played": 16,
        "script": "click",
        "source": "default"
      },
      "given": {
        "kind": "previous",
        "lines": 72,
        "sha256": "e1123d3690d094666d0a8bba52b2044ea8f58ff0fc90835945d90bf2e317b937",
        "shown": true
      },
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 1.6,
      "num_ctx": 16384,
      "preload_s": 0.027,
      "prompt_tokens": 3024,
      "resources_loaded": [],
      "rules_file": "treatment",
      "source": "attempt-3",
      "total_s": 2.454,
      "wall_s": 52.832
    }
  ],
  "ghost": {
    "by": "default",
    "events": 40,
    "script": "wander"
  },
  "job_id": 1486,
  "last_error": null,
  "licence": "CC BY 4.0",
  "lineage": {
    "children": [
      1611
    ],
    "critique": null,
    "critique_by": null,
    "generation": 1,
    "inherits_source": false,
    "parent_entry_id": null,
    "root_entry_id": 1475
  },
  "loads": [],
  "note": null,
  "off_node": [],
  "planner": "gemma4:e4b",
  "planner_prompt_version": "planner-v2",
  "process": null,
  "prompt": "a skyline that grows a new floor every time you press a key",
  "prompt_tokens": 8408,
  "publish_commit": "7f06288fda9ecdd44fd4fc7119a73b7e27900998",
  "published_utc": "2026-09-24T01:15:28Z",
  "rules_file": "treatment",
  "seed": 1,
  "shape": "VM.Standard.A1.Flex 16/96",
  "source": {
    "attempts": [
      "attempt-1",
      "attempt-2",
      "attempt-3"
    ],
    "entry": "https://profcarroll.github.io/sketchgen-gallery/e/1475/",
    "index_html": "sketch/index.html",
    "repository": "https://github.com/profcarroll/sketchgen-gallery/tree/main/e/1475",
    "sketch_js": "sketch/sketch.js"
  },
  "state": "published",
  "statement": "This sketch presents a simplified urban skyline composed of geometric buildings that respond to user input. When a key is pressed, the skyline grows upward with new floors, each maintaining the solid color and blocky profile of the existing structures. The visual effect demonstrates a cumulative growth pattern where each press adds a horizontal layer across all buildings, extending their silhouette against the background. The interaction is immediate and visually distinct, creating a sense of architectural progression as the viewer controls the city's vertical expansion through keyboard input.",
  "submitted_by": "profcarroll",
  "wall_s": 147.547
}
