{
  "assertions": [
    "motion(idle)",
    "uses(webgl)"
  ],
  "attempts": 2,
  "attribution": "\u201cdeep inside a cauldron of bacteria and microbes, but no circles allow\u2026\u201d \u2014 sketchgen entry 374, prompted by profcarroll, written by qwen3-coder:30b-a3b-q4_K_M under the control rules file. https://profcarroll.github.io/sketchgen-gallery/e/374/ Licensed CC BY 4.0.",
  "brief": "The canvas depicts a dense, churning biological environment, simulating the microscopic activity within a heated cauldron. Swarms of abstract, irregular microbes move and cluster in complex formations. The scene is dominated by organic, sickly shades of green, purple, and ochre, constantly reforming as if caught in a slow, viscous flow. The shapes are jagged, filamentous, and crystalline, evoking the structure of bacterial biofilms and cellular processes. The overall effect is one of vibrant, contained decay and restless, unseen life.",
  "completion_tokens": 2649,
  "created_utc": "2026-09-16T02:10:36Z",
  "entry_id": 374,
  "executor": "qwen3-coder:30b-a3b-q4_K_M",
  "executor_prompt_version": "executor-v2",
  "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": 1125,
      "evidence": "Names this sketch shadows (checked before the gate ran):\npreflight: `line()` inside a loop inside `draw()` is immediate mode in WEBGL \u2014 every call builds and uploads its own vertex buffer; batch them into one `beginShape(LINES)` with `vertex()` per point (sketch.js line 78)\npreflight: this is an all-pairs loop inside `draw()`: every item is compared with every other one, so the work grows with the square of the count; use a spatial hash, or compare squared distances over a capped neighbour list (sketch.js line 85)\npreflight: `line()` inside a loop inside `draw()` is immediate mode in WEBGL \u2014 every call builds and uploads its own vertex buffer; batch them into one `beginShape(LINES)` with `vertex()` per point (sketch.js line 94)\n\ngate exit 1: checks failed: frame_budget\n\nFixed checks that failed:\n- frame_budget = false\n    frame_budget: 217.6 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": 217.6,
      "num_ctx": null,
      "preload_s": null,
      "prompt_tokens": 1560,
      "resources_loaded": [],
      "rules_file": "control",
      "source": "attempt-1",
      "total_s": 12.178,
      "wall_s": 97.774
    },
    {
      "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,
        "sound_lib_ok": null
      },
      "completion_tokens": 1524,
      "evidence": null,
      "exit": 0,
      "ghost": null,
      "given": null,
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 13.6,
      "num_ctx": null,
      "preload_s": null,
      "prompt_tokens": 1857,
      "resources_loaded": [],
      "rules_file": "control",
      "source": "attempt-2",
      "total_s": 4.164,
      "wall_s": 86.795
    }
  ],
  "ghost": {
    "by": "default",
    "events": 40,
    "script": "wander"
  },
  "job_id": 375,
  "last_error": null,
  "licence": "CC BY 4.0",
  "lineage": {
    "children": [
      439
    ],
    "critique": null,
    "critique_by": null,
    "generation": 1,
    "inherits_source": false,
    "parent_entry_id": null,
    "root_entry_id": 374
  },
  "loads": [],
  "note": null,
  "off_node": [],
  "planner": "gemma4:e4b",
  "planner_prompt_version": "planner-v1",
  "process": null,
  "prompt": "deep inside a cauldron of bacteria and microbes, but no circles allowed",
  "prompt_tokens": 3417,
  "publish_commit": "9d472a6eeaf575a074af5848365210549856c976",
  "published_utc": "2026-09-16T02:16:14Z",
  "rules_file": "control",
  "seed": 1,
  "shape": "VM.Standard.A1.Flex 16/94",
  "source": {
    "attempts": [
      "attempt-1",
      "attempt-2"
    ],
    "entry": "https://profcarroll.github.io/sketchgen-gallery/e/374/",
    "index_html": "sketch/index.html",
    "repository": "https://github.com/profcarroll/sketchgen-gallery/tree/main/e/374",
    "sketch_js": "sketch/sketch.js"
  },
  "state": "published",
  "statement": "This sketch simulates a dynamic, microscopic ecosystem within a heated cauldron. Using WebGL rendering for performance, it features thousands of irregular microbes that move independently and respond to boundary collisions. The scene is dominated by sickly greens, purples, and ochres, with each microbe leaving a fading trail behind it. Microbes form temporary connections when they come close together, creating an organic network effect that continuously evolves. The simulation uses spatial hashing for efficient neighbor detection, avoiding expensive all-pairs distance calculations, and batches drawing operations to stay within frame budget constraints while maintaining visual complexity and fluid motion.",
  "submitted_by": "profcarroll",
  "wall_s": 184.569
}
