{
  "assertions": [
    "responds(drag)",
    "no_motion"
  ],
  "attempts": 3,
  "attribution": "\u201ciron filings arranging themselves around your cursor like a magnet\u201d \u2014 sketchgen entry 1501, prompted by profcarroll, written by qwen3-coder:30b-a3b-q4_K_M under the treatment rules file. https://profcarroll.github.io/sketchgen-gallery/e/1501/ Licensed CC BY 4.0.",
  "brief": "The canvas is filled with thousands of small, metallic-looking particles representing iron filings. When the mouse moves across the canvas, the filings respond instantly, appearing to be pulled by an invisible magnetic field. As the cursor passes over the surface, the particles gather and arrange themselves into dense, sculpted patterns, forming continuous trails and accumulations that shift and flow in response to the cursor\u2019s exact position and movement speed.",
  "completion_tokens": 2201,
  "created_utc": "2026-09-23T17:14:32Z",
  "entry_id": 1501,
  "executor": "qwen3-coder:30b-a3b-q4_K_M",
  "executor_prompt_version": "executor-v3",
  "gate": [
    {
      "assertions": {
        "no_motion": false,
        "responds(drag)": true
      },
      "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": 795,
      "evidence": "gate exit 1: assertions failed: no_motion\n\nAssertions that failed:\n- no_motion: idle 0->120 frames: mean abs diff 3.9955/255, 113936 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": 30,
        "ms": 2920,
        "played": 30,
        "script": "drag",
        "source": "default"
      },
      "given": null,
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 14.1,
      "num_ctx": 16384,
      "preload_s": 0.028,
      "prompt_tokens": 2378,
      "resources_loaded": [],
      "rules_file": "treatment",
      "source": "attempt-1",
      "total_s": 7.492,
      "wall_s": 53.045
    },
    {
      "assertions": {
        "no_motion": false,
        "responds(drag)": 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": 709,
      "evidence": "gate exit 1: assertions failed: no_motion\n\nAssertions that failed:\n- no_motion: idle 0->120 frames: mean abs diff 2.6692/255, 76174 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": 30,
        "ms": 2920,
        "played": 30,
        "script": "drag",
        "source": "default"
      },
      "given": {
        "kind": "previous",
        "lines": 79,
        "sha256": "f631447d27acf97b4fa35f687d34bf78f7ac8d8d7d50b3f43a7f4f85b27715ce",
        "shown": true
      },
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 21.2,
      "num_ctx": 16384,
      "preload_s": 0.027,
      "prompt_tokens": 3213,
      "resources_loaded": [],
      "rules_file": "treatment",
      "source": "attempt-2",
      "total_s": 10.145,
      "wall_s": 65.93
    },
    {
      "assertions": {
        "no_motion": false,
        "responds(drag)": 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": 697,
      "evidence": "gate exit 1: assertions failed: no_motion\n\nAssertions that failed:\n- no_motion: idle 0->120 frames: mean abs diff 2.6692/255, 76174 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": 30,
        "ms": 2920,
        "played": 30,
        "script": "drag",
        "source": "default"
      },
      "given": {
        "kind": "previous",
        "lines": 67,
        "sha256": "b09d9592178760b88dd8e6a571532c91ce82dc72adb5f75bc61841790942937a",
        "shown": true
      },
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 19.9,
      "num_ctx": 16384,
      "preload_s": 0.027,
      "prompt_tokens": 3125,
      "resources_loaded": [],
      "rules_file": "treatment",
      "source": "attempt-3",
      "total_s": 9.737,
      "wall_s": 61.719
    }
  ],
  "ghost": {
    "by": "default",
    "events": 30,
    "script": "drag"
  },
  "job_id": 1512,
  "last_error": null,
  "licence": "CC BY 4.0",
  "lineage": {
    "children": [],
    "critique": null,
    "critique_by": null,
    "generation": 1,
    "inherits_source": false,
    "parent_entry_id": null,
    "root_entry_id": 1501
  },
  "loads": [],
  "note": null,
  "off_node": [],
  "planner": "gemma4:e4b",
  "planner_prompt_version": "planner-v2",
  "process": null,
  "prompt": "iron filings arranging themselves around your cursor like a magnet",
  "prompt_tokens": 8716,
  "publish_commit": "18a03746a56c94748982b4de9d9c6e80abe71e72",
  "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/1501/",
    "index_html": "sketch/index.html",
    "repository": "https://github.com/profcarroll/sketchgen-gallery/tree/main/e/1501",
    "sketch_js": "sketch/sketch.js"
  },
  "state": "published",
  "statement": "This sketch simulates the behavior of iron filings responding to a magnetic field. Thousands of metallic-looking particles are scattered across the canvas, each moving according to a combination of noise-based randomness and proximity to the mouse cursor. When the mouse moves, particles are instantly drawn toward it, creating dense, flowing patterns that shift and reorganize in real-time. The effect demonstrates how individual elements can respond collectively to an external force, forming dynamic, sculpted trails and accumulations that mirror the behavior of ferromagnetic materials under magnetic influence.",
  "submitted_by": "profcarroll",
  "wall_s": 180.694
}
