{
  "assertions": [
    "motion(idle)",
    "uses(webgl)"
  ],
  "attempts": 2,
  "attribution": "\u201ca stack of books being eaten by a book eating machine Revise: add mor\u2026\u201d \u2014 sketchgen entry 1991, prompted by profcarroll, written by qwen3-coder:30b-a3b-q4_K_M under the treatment rules file. https://profcarroll.github.io/sketchgen-gallery/e/1991/ Licensed CC BY 4.0.",
  "brief": "The scene depicts a substantial stack of books suspended above an open, complex mechanical shredder apparatus. The viewer observes visible internal gears and tearing plates actively engaging with the literature, resulting in sudden sparks, plumes of fine dust, and sharp splinters of wood and paper pulp. As the mechanical process continues, steam vents from friction points, and the ejected material accumulates rapidly into a dense, swirling vortex of particulate matter. This accumulated waste, colored like rust on sheet steel, mimics the appearance of a geological abyssal hydrothermal vent plume.",
  "completion_tokens": 4838,
  "created_utc": "2026-10-11T22:18:48Z",
  "entry_id": 1991,
  "executor": "qwen3-coder:30b-a3b-q4_K_M",
  "executor_prompt_version": "executor-v3",
  "gate": [
    {
      "assertions": {
        "motion(idle)": true,
        "uses(webgl)": true
      },
      "attempt": 1,
      "checks": {
        "audio_context_running": null,
        "console_clean": true,
        "frame_advancing": true,
        "frame_budget": false,
        "is_looping": true,
        "revised": true,
        "sound_lib_ok": null
      },
      "completion_tokens": 2409,
      "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 132)\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 142)\npreflight: `box()` 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 153)\n\ngate exit 1: checks failed: frame_budget\n\nFixed checks that failed:\n- frame_budget = false\n    frame_budget: 141.3 ms per frame over 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\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": "parent",
        "lines": 204,
        "sha256": "385b5e254d4b02d578a99be1fcfce522ed82a8503a4ea9edea4a0459dcd1ec3f",
        "shown": true
      },
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 141.3,
      "num_ctx": 16384,
      "preload_s": 0.047,
      "prompt_tokens": 4165,
      "resources_loaded": [],
      "rules_file": "treatment",
      "source": "attempt-1",
      "total_s": 75.792,
      "wall_s": 232.65
    },
    {
      "assertions": {
        "motion(idle)": true,
        "uses(webgl)": true
      },
      "attempt": 2,
      "checks": {
        "audio_context_running": null,
        "console_clean": true,
        "frame_advancing": true,
        "frame_budget": true,
        "is_looping": true,
        "revised": true,
        "sound_lib_ok": null
      },
      "completion_tokens": 2429,
      "evidence": null,
      "exit": 0,
      "ghost": {
        "events": 40,
        "ms": 4000,
        "played": 40,
        "script": "wander",
        "source": "default"
      },
      "given": {
        "kind": "previous",
        "lines": 291,
        "sha256": "04b1a6c856a6048a8b0bf542738ebb42dd23b2c0a4bcf822555e91aa0ee8fa9a",
        "shown": true
      },
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 13.1,
      "num_ctx": 16384,
      "preload_s": 0.049,
      "prompt_tokens": 5203,
      "resources_loaded": [],
      "rules_file": "treatment",
      "source": "attempt-2",
      "total_s": 9.026,
      "wall_s": 265.704
    }
  ],
  "ghost": {
    "by": "default",
    "events": 40,
    "script": "wander"
  },
  "job_id": 2004,
  "last_error": null,
  "licence": "CC BY 4.0",
  "lineage": {
    "children": [],
    "critique": "carry: dense, swirling particulate matter given to an abyssal hydrothermal vent plume, made of rust on sheet steel",
    "critique_by": "gemma4:e4b",
    "generation": 15,
    "inherits_source": false,
    "parent_entry_id": 1200,
    "root_entry_id": 406
  },
  "loads": [],
  "note": null,
  "off_node": [],
  "planner": "gemma4:e4b",
  "planner_prompt_version": "planner-v2",
  "process": null,
  "prompt": "a stack of books being eaten by a book eating machine\n\nRevise: add more books and a machine that eats them\n\nRevise: the same mechanical shredder consuming a stack of books, and this time the remaining stack of books must first lean and crack before collapsing into the machine.\n\nRevise: the same mechanical shredder consuming a stack of books, and this time the internal gears and plates of the shredder are visible and actively engage as the books fall into them.\n\nRevise: the same mechanical shredder consuming a stack of books, and this time visible sparks shoot out from the engaged internal gears.\n\nRevise: the same mechanical scene where a substantial stack of books rests above an open shredding apparatus, and this time the visible internal gears are actively tearing and shredding one of the books as it falls.\n\nRevise: the same mechanically active shredding scene, and this time wisps of steam vent from the friction points of the internal gears and shredding apparatus.\n\nRevise: the same mechanically active shredding scene, and this time fine plumes of shredded dust visibly hang suspended above the central gears.\n\nRevise: the same mechanically active shredding scene, and this time the rapid movement of the internal gears throws off sharp, visible splinters of wood and paper pulp.\n\nRevise: the same mechanically active shredding scene, and this time the flying splinters of wood and paper pulp strike and embed themselves visibly into the books remaining above the apparatus.\n\nRevise: the same mechanically active shredding scene, and this time wisps of steam vent from the friction points of the internal gears and shredding apparatus\n\nRevise: the same mechanically active shredding scene, and this time visible splinters of wood and paper pulp are ejected from the central gears.\n\nRevise: the same mechanically active shredding scene, and this time scorch marks and residue build up visibly on the metal gears and plates.\n\nRevise: the same mechanically active shredding scene, and this time the ejected pulp and splinters accumulate rapidly to form a dense, swirling plume below the apparatus.\n\nRevise: the same mechanically active shredding scene, and this time the ejected pulp and splinters accumulate rapidly to form a dense, swirling plume below the apparatus.\n\nRevise: carry: dense, swirling particulate matter given to an abyssal hydrothermal vent plume, made of rust on sheet steel",
  "prompt_tokens": 9368,
  "publish_commit": "176e8d138d1481f4421ccf14b12e5f07e8cb19cd",
  "published_utc": "2026-10-11T23:25:03Z",
  "rules_file": "treatment",
  "seed": 1,
  "shape": "VM.Standard.A1.Flex 16/96",
  "source": {
    "attempts": [
      "attempt-1",
      "attempt-2"
    ],
    "entry": "https://profcarroll.github.io/sketchgen-gallery/e/1991/",
    "index_html": "sketch/index.html",
    "repository": "https://github.com/profcarroll/sketchgen-gallery/tree/main/e/1991",
    "sketch_js": "sketch/sketch.js"
  },
  "state": "published",
  "statement": "This sketch depicts a mechanical shredder in action, processing a stack of books into particles of debris, steam, and sparks. The scene is rendered using WebGL for immersive depth and motion. A central book stack feeds material into an industrial shredder apparatus containing rotating gears and tearing plates. As the machinery operates, it generates multiple particle systems: falling debris from paper and wood, rising steam from friction points, and sharp sparks from metal contact. These particles accumulate into a swirling vortex at the base of the shredder, colored like rusted steel to evoke the appearance of an underwater hydrothermal vent. The viewer observes this mechanical destruction through a slowly orbiting camera perspective that captures both the chaotic motion and the steady buildup of waste material. The entire scene operates within strict performance limits to ensure smooth animation even in constrained environments.",
  "submitted_by": "profcarroll",
  "wall_s": 498.354
}
