{
  "assertions": [
    "motion(idle)",
    "responds(click)",
    "responds(drag)",
    "uses(webgl)"
  ],
  "attempts": 5,
  "attribution": "\u201cA Cambridge Analytica client pitch deck\u201d \u2014 sketchgen entry 202, prompted by profcarroll, written by qwen3-coder:30b-a3b-q4_K_M under the control rules file. https://profcarroll.github.io/sketchgen-gallery/e/202/ Licensed CC BY 4.0.",
  "brief": "The canvas is filled with a dense, interconnected network of glowing geometric nodes. Thin, luminous lines constantly flicker and shift between these nodes, mapping unseen relationships. When the cursor enters the area, nearby lines brighten, highlighting potential connections. A click triggers a rapid, localized pulse effect, momentarily reorganizing the surrounding nodes into a clearer, more targeted cluster. As the user drags the mouse, a faint, expanding wave emanates from the cursor, visibly distorting the density of the lines and causing the connected nodes to temporarily detach and re-anchor, illustrating the process of influence mapping and data extraction.",
  "completion_tokens": 6779,
  "created_utc": "2026-09-15T03:07:04Z",
  "entry_id": 202,
  "executor": "qwen3-coder:30b-a3b-q4_K_M",
  "executor_prompt_version": "executor-v2",
  "gate": [
    {
      "assertions": {
        "motion(idle)": false,
        "responds(click)": true,
        "responds(drag)": true,
        "uses(webgl)": true
      },
      "attempt": 1,
      "checks": {
        "audio_context_running": null,
        "console_clean": true,
        "frame_advancing": true,
        "is_looping": true,
        "sound_lib_ok": null
      },
      "completion_tokens": 1801,
      "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": null,
      "given": null,
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": null,
      "num_ctx": null,
      "preload_s": null,
      "prompt_tokens": 1611,
      "resources_loaded": [],
      "rules_file": "control",
      "source": "attempt-1",
      "total_s": 50.954,
      "wall_s": 131.98
    },
    {
      "assertions": {
        "motion(idle)": false,
        "responds(click)": true,
        "responds(drag)": true,
        "uses(webgl)": true
      },
      "attempt": 2,
      "checks": {
        "audio_context_running": null,
        "console_clean": true,
        "frame_advancing": null,
        "is_looping": false,
        "sound_lib_ok": null
      },
      "completion_tokens": 969,
      "evidence": "gate exit 1: checks failed: is_looping; assertions failed: motion(idle)\n\nFixed checks that failed:\n- is_looping = false\n    frame_advancing skipped: the sketch calls noLoop(), so it declares itself static (spec 3.1, closes MEASURE[gate-false-negatives])\n\nAssertions that failed:\n- motion(idle): idle 0->120 frames: mean abs diff 0.0000/255, 0 of 360000 pixels changed\n",
      "exit": 1,
      "ghost": null,
      "given": null,
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": null,
      "num_ctx": null,
      "preload_s": null,
      "prompt_tokens": 1728,
      "resources_loaded": [],
      "rules_file": "control",
      "source": "attempt-2",
      "total_s": 5.264,
      "wall_s": 94.196
    },
    {
      "assertions": {
        "motion(idle)": false,
        "responds(click)": false,
        "responds(drag)": false,
        "uses(webgl)": true
      },
      "attempt": 3,
      "checks": {
        "audio_context_running": null,
        "console_clean": false,
        "frame_advancing": null,
        "is_looping": false,
        "sound_lib_ok": null
      },
      "completion_tokens": 1546,
      "evidence": "gate exit 1: checks failed: console_clean, is_looping; assertions failed: motion(idle), responds(click), responds(drag)\n\nFixed checks that failed:\n- console_clean = false\n- is_looping = false\n    frame_advancing skipped: the sketch calls noLoop(), so it declares itself static (spec 3.1, closes MEASURE[gate-false-negatives])\n\nAssertions that failed:\n- motion(idle): idle 0->120 frames: mean abs diff 0.0000/255, 0 of 240000 pixels changed\n- responds(click): click at canvas centre, 30 frames after: mean abs diff 0.0000/255, 0 of 240000 pixels changed\n- responds(drag): drag across 20%->80% of the canvas width: mean abs diff 0.0000/255, 0 of 240000 pixels changed\n\nConsole (11 error lines, first 10 shown):\n- [pageerror] Cannot access 'b' before initialization\n- [pageerror] Cannot access 'b' before initialization\n- [pageerror] Cannot access 'b' before initialization\n- [pageerror] Cannot access 'b' before initialization\n- [pageerror] Cannot access 'b' before initialization\n- [pageerror] Cannot access 'b' before initialization\n- [pageerror] Cannot access 'b' before initialization\n- [pageerror] Cannot access 'b' before initialization\n- [pageerror] Cannot access 'b' before initialization\n- [pageerror] Cannot access 'b' before initialization\n",
      "exit": 1,
      "ghost": null,
      "given": null,
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": null,
      "num_ctx": null,
      "preload_s": null,
      "prompt_tokens": 1733,
      "resources_loaded": [],
      "rules_file": "control",
      "source": "attempt-3",
      "total_s": 1.289,
      "wall_s": 85.48
    },
    {
      "assertions": {
        "motion(idle)": false,
        "responds(click)": false,
        "responds(drag)": false,
        "uses(webgl)": true
      },
      "attempt": 4,
      "checks": {
        "audio_context_running": null,
        "console_clean": true,
        "frame_advancing": null,
        "is_looping": false,
        "sound_lib_ok": null
      },
      "completion_tokens": 1241,
      "evidence": "gate exit 1: checks failed: is_looping; assertions failed: motion(idle), responds(click), responds(drag)\n\nFixed checks that failed:\n- is_looping = false\n    frame_advancing skipped: the sketch calls noLoop(), so it declares itself static (spec 3.1, closes MEASURE[gate-false-negatives])\n\nAssertions that failed:\n- motion(idle): idle 0->120 frames: mean abs diff 0.0000/255, 0 of 1152000 pixels changed\n- responds(click): click at canvas centre, 30 frames after: mean abs diff 0.0000/255, 0 of 1152000 pixels changed\n- responds(drag): drag across 20%->80% of the canvas width: mean abs diff 0.0000/255, 0 of 1152000 pixels changed\n",
      "exit": 1,
      "ghost": null,
      "given": null,
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": null,
      "num_ctx": null,
      "preload_s": null,
      "prompt_tokens": 1983,
      "resources_loaded": [],
      "rules_file": "control",
      "source": "attempt-4",
      "total_s": 2.619,
      "wall_s": 75.082
    },
    {
      "assertions": {
        "motion(idle)": false,
        "responds(click)": true,
        "responds(drag)": true,
        "uses(webgl)": true
      },
      "attempt": 5,
      "checks": {
        "audio_context_running": null,
        "console_clean": true,
        "frame_advancing": null,
        "is_looping": false,
        "sound_lib_ok": null
      },
      "completion_tokens": 1222,
      "evidence": "gate exit 1: checks failed: is_looping; assertions failed: motion(idle)\n\nFixed checks that failed:\n- is_looping = false\n    frame_advancing skipped: the sketch calls noLoop(), so it declares itself static (spec 3.1, closes MEASURE[gate-false-negatives])\n\nAssertions that failed:\n- motion(idle): idle 0->120 frames: mean abs diff 0.0000/255, 0 of 480000 pixels changed\n",
      "exit": 1,
      "ghost": null,
      "given": null,
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": null,
      "num_ctx": null,
      "preload_s": null,
      "prompt_tokens": 1834,
      "resources_loaded": [],
      "rules_file": "control",
      "source": "attempt-5",
      "total_s": 7.081,
      "wall_s": 69.928
    }
  ],
  "ghost": {
    "by": "default",
    "events": 46,
    "script": "click,drag"
  },
  "job_id": 203,
  "last_error": "gate exit 1: checks failed: is_looping; assertions failed: motion(idle)",
  "licence": "CC BY 4.0",
  "lineage": {
    "children": [],
    "critique": null,
    "critique_by": null,
    "generation": 1,
    "inherits_source": false,
    "parent_entry_id": null,
    "root_entry_id": 202
  },
  "loads": [],
  "note": null,
  "off_node": [],
  "planner": "gemma4:e4b",
  "planner_prompt_version": "planner-v1",
  "process": null,
  "prompt": "A Cambridge Analytica client pitch deck",
  "prompt_tokens": 8889,
  "publish_commit": "ad974d00623d4b3bf004527e33e8718627e27ac2",
  "published_utc": "2026-09-15T03:13:50Z",
  "rules_file": "control",
  "seed": 1,
  "shape": "VM.Standard.A1.Flex 16/94",
  "source": {
    "attempts": [
      "attempt-1",
      "attempt-2",
      "attempt-3",
      "attempt-4",
      "attempt-5"
    ],
    "entry": "https://profcarroll.github.io/sketchgen-gallery/e/202/",
    "index_html": "sketch/index.html",
    "repository": "https://github.com/profcarroll/sketchgen-gallery/tree/main/e/202",
    "sketch_js": "sketch/sketch.js"
  },
  "state": "failed-kept",
  "statement": "This sketch creates an immersive, interactive network visualization that responds to user input with dynamic effects. Viewers see a constellation of glowing nodes connected by luminous lines in a 3D space, simulating a data web or influence map. The system reacts to mouse interactions: clicking triggers a localized pulse that reorganizes nearby nodes, while dragging creates an expanding wave that distorts the network structure. The visualization demonstrates concepts of data clustering and information propagation through its dynamic geometry, where the connections between nodes shift and reform based on spatial relationships and user influence.",
  "submitted_by": "profcarroll",
  "wall_s": 456.666
}
