{
  "assertions": [
    "responds(drag)",
    "no_motion"
  ],
  "attempts": 3,
  "attribution": "\u201ca kite on a string you fly with the mouse through gusty wind Revise:\u2026\u201d \u2014 sketchgen entry 1625, prompted by profcarroll, written by qwen3-coder:30b-a3b-q4_K_M under the treatment rules file. https://profcarroll.github.io/sketchgen-gallery/e/1625/ Licensed CC BY 4.0.",
  "brief": "The canvas features a colourful, stylized kite suspended from taut, visible strings. The kite remains generally centered but reacts dynamically to the viewer's input. As the cursor moves across the canvas, the kite trails the cursor's path, and the visible strings stretch and angle from the kite to the cursor's current position, maintaining a continuous, visible connection between the two points.",
  "completion_tokens": 3396,
  "created_utc": "2026-09-24T13:19:34Z",
  "entry_id": 1625,
  "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": 1096,
      "evidence": "gate exit 1: assertions failed: no_motion\n\nAssertions that failed:\n- no_motion: idle 0->120 frames: mean abs diff 0.0126/255, 526 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": "parent",
        "lines": 110,
        "sha256": "5619b5a4f7dbc54c1e84e7312d8d02961b3e6c4ebd6168916eb7860a1fb6f873",
        "shown": true
      },
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 0.2,
      "num_ctx": 16384,
      "preload_s": 0.026,
      "prompt_tokens": 3120,
      "resources_loaded": [],
      "rules_file": "treatment",
      "source": "attempt-1",
      "total_s": 2.506,
      "wall_s": 86.867
    },
    {
      "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": 1159,
      "evidence": "gate exit 1: assertions failed: no_motion\n\nAssertions that failed:\n- no_motion: idle 0->120 frames: mean abs diff 0.1927/255, 6302 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": 142,
        "sha256": "2f0851a5f288a6f71f2681583255466ec662b13218bea9db619d3f67170fe644",
        "shown": true
      },
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 0.2,
      "num_ctx": 16384,
      "preload_s": 0.029,
      "prompt_tokens": 3505,
      "resources_loaded": [],
      "rules_file": "treatment",
      "source": "attempt-2",
      "total_s": 2.529,
      "wall_s": 100.237
    },
    {
      "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": 1141,
      "evidence": "gate exit 1: assertions failed: no_motion\n\nAssertions that failed:\n- no_motion: idle 0->120 frames: mean abs diff 0.1119/255, 3767 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": 146,
        "sha256": "4a4c06eb6de290fd2efae5593ac540245e221eaebd91c7c5a546542832b6be7f",
        "shown": true
      },
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 0.2,
      "num_ctx": 16384,
      "preload_s": 0.026,
      "prompt_tokens": 3546,
      "resources_loaded": [],
      "rules_file": "treatment",
      "source": "attempt-3",
      "total_s": 2.501,
      "wall_s": 102.178
    }
  ],
  "ghost": {
    "by": "default",
    "events": 30,
    "script": "drag"
  },
  "job_id": 1636,
  "last_error": "rejected by operator",
  "licence": "CC BY 4.0",
  "lineage": {
    "children": [],
    "critique": "the same colourful kite, and this time with visible strings trailing from the kite to the cursor.",
    "critique_by": "gemma4:e4b",
    "generation": 1,
    "inherits_source": false,
    "parent_entry_id": 1493,
    "root_entry_id": 1493
  },
  "loads": [],
  "note": null,
  "off_node": [],
  "planner": "gemma4:e4b",
  "planner_prompt_version": "planner-v2",
  "process": null,
  "prompt": "a kite on a string you fly with the mouse through gusty wind\n\nRevise: the same colourful kite, and this time with visible strings trailing from the kite to the cursor.",
  "prompt_tokens": 10171,
  "publish_commit": "07898389fec7cfd4fe557044c013e3a6f6c03aed",
  "published_utc": "2026-09-26T04:20: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/1625/",
    "index_html": "sketch/index.html",
    "repository": "https://github.com/profcarroll/sketchgen-gallery/tree/main/e/1625",
    "sketch_js": "sketch/sketch.js"
  },
  "state": "rejected",
  "statement": "This sketch creates a dynamic kite visualization that responds to mouse movement. The kite is suspended from a series of strings that stretch and adjust their angles as the cursor moves across the canvas. As the viewer drags their mouse, the kite smoothly follows the cursor's path while maintaining its stylized shape and color. The strings create a visible connection between the kite and the cursor, forming a continuous visual trail that demonstrates the relationship between the two points. The design uses simple geometric shapes and smooth physics-based movement to create an engaging, interactive experience where the viewer's input directly controls the kite's motion and string tension.",
  "submitted_by": "profcarroll",
  "wall_s": 289.282
}
