{
  "assertions": [
    "motion(idle)",
    "uses(webgl)"
  ],
  "attempts": 3,
  "attribution": "\u201crender a volcanic eruption\u201d \u2014 sketchgen entry 1411, prompted by profcarroll, written by qwen3-coder:30b-a3b-q4_K_M under the treatment rules file. https://profcarroll.github.io/sketchgen-gallery/e/1411/ Licensed CC BY 4.0.",
  "brief": "The canvas fills with a dramatic, fiery scene of a volcanic eruption. Rivers of molten lava flow down the sides of a dark, mountain-like structure, changing shades from bright orange to deep red. Smoke plumes rise rapidly from the crater, dissipating into dark gray clouds that slowly billow and expand across the top of the frame. The scene is constantly active, with lava continuously flowing and smoke perpetually rising and drifting, creating a sense of immense power and dynamic scale.",
  "completion_tokens": 3599,
  "created_utc": "2026-09-23T08:39:04Z",
  "entry_id": 1411,
  "executor": "qwen3-coder:30b-a3b-q4_K_M",
  "executor_prompt_version": "executor-v3",
  "gate": [
    {
      "assertions": {},
      "attempt": 1,
      "checks": {
        "audio_context_running": null,
        "console_clean": true,
        "frame_advancing": null,
        "frame_budget": false,
        "is_looping": null,
        "sound_lib_ok": null
      },
      "completion_tokens": 1258,
      "evidence": "Names this sketch shadows (checked before the gate ran):\npreflight: `sphere()` is called inside a loop inside `draw()`, so this sketch builds one lit mesh per item per frame; draw the items as one `beginShape(POINTS)` or build the mesh once in `setup()` with `buildGeometry()` (sketch.js line 89)\npreflight: `sphere()` is called inside a loop inside `draw()`, so this sketch builds one lit mesh per item per frame; draw the items as one `beginShape(POINTS)` or build the mesh once in `setup()` with `buildGeometry()` (sketch.js line 125)\n\ngate exit 1: checks failed: frame_budget\n\nFixed checks that failed:\n- frame_budget = false\n    frame_budget: 344.8 ms per frame over the first 42 frames of the 120-frame idle window, budget 100 ms \u2014 batch points and lines into one shape, no sphere() per particle, no all-pairs loop\n    frame_budget: the run stopped at 42 of the 120 idle frames and did not finish the probes or the assertions\n",
      "exit": 1,
      "ghost": null,
      "given": null,
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 344.8,
      "num_ctx": 16384,
      "preload_s": 0.046,
      "prompt_tokens": 2401,
      "resources_loaded": [],
      "rules_file": "treatment",
      "source": "attempt-1",
      "total_s": 22.713,
      "wall_s": 78.313
    },
    {
      "assertions": {
        "motion(idle)": false,
        "uses(webgl)": true
      },
      "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": 1182,
      "evidence": "gate exit 1: assertions failed: motion(idle)\n\nAssertions that failed:\n- motion(idle): idle 0->120 frames: 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": 40,
        "ms": 4000,
        "played": 40,
        "script": "wander",
        "source": "default"
      },
      "given": {
        "kind": "previous",
        "lines": 146,
        "sha256": "08adbfd969f37e46c7e7b743089c86c92b5a568b9fd2e0661507e713f3c4b983",
        "shown": true
      },
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 11.5,
      "num_ctx": 16384,
      "preload_s": 0.047,
      "prompt_tokens": 3815,
      "resources_loaded": [],
      "rules_file": "treatment",
      "source": "attempt-2",
      "total_s": 8.876,
      "wall_s": 106.905
    },
    {
      "assertions": {
        "motion(idle)": false,
        "uses(webgl)": true
      },
      "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": 1159,
      "evidence": "gate exit 1: assertions failed: motion(idle)\n\nAssertions that failed:\n- motion(idle): idle 0->120 frames: 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": 40,
        "ms": 4000,
        "played": 40,
        "script": "wander",
        "source": "default"
      },
      "given": {
        "kind": "previous",
        "lines": 139,
        "sha256": "5d69bc2aef2ee959b57a857e0409c1adb089744742ef8fe0eab9271b1e29c55f",
        "shown": true
      },
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 9.9,
      "num_ctx": 16384,
      "preload_s": 0.047,
      "prompt_tokens": 3623,
      "resources_loaded": [],
      "rules_file": "treatment",
      "source": "attempt-3",
      "total_s": 7.98,
      "wall_s": 100.022
    }
  ],
  "ghost": {
    "by": "default",
    "events": 40,
    "script": "wander"
  },
  "job_id": 1422,
  "last_error": "rejected by operator",
  "licence": "CC BY 4.0",
  "lineage": {
    "children": [],
    "critique": null,
    "critique_by": null,
    "generation": 1,
    "inherits_source": false,
    "parent_entry_id": null,
    "root_entry_id": 1411
  },
  "loads": [],
  "note": null,
  "off_node": [],
  "planner": "gemma4:e4b",
  "planner_prompt_version": "planner-v2",
  "process": null,
  "prompt": "render a volcanic eruption",
  "prompt_tokens": 9839,
  "publish_commit": "a11d902ecc0db7c876a79cea953e66ee80697c2e",
  "published_utc": "2026-09-24T02:09:16Z",
  "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/1411/",
    "index_html": "sketch/index.html",
    "repository": "https://github.com/profcarroll/sketchgen-gallery/tree/main/e/1411",
    "sketch_js": "sketch/sketch.js"
  },
  "state": "rejected",
  "statement": "This sketch depicts a volcanic eruption through dynamic particle systems that animate lava flows and smoke plumes. The scene features a dark mountain silhouette with molten lava particles streaming downward from the crater in varying orange to red hues, and smoke particles rising upward in gray tones. The continuous motion of both particle types creates an impression of immense geological force and constant activity, capturing the dramatic energy of volcanic eruption through carefully managed particle physics and color transitions.",
  "submitted_by": "profcarroll",
  "wall_s": 285.24
}
