{
  "assertions": [
    "motion(idle)"
  ],
  "attempts": 2,
  "attribution": "\u201ca typewriter that types by itself and slowly gains confidence\u201d \u2014 sketchgen entry 1483, prompted by profcarroll, written by qwen3-coder:30b-a3b-q4_K_M under the treatment rules file. https://profcarroll.github.io/sketchgen-gallery/e/1483/ Licensed CC BY 4.0.",
  "brief": "The canvas displays a stationary typewriter positioned against a plain background. Characters appear sequentially on the sheet of paper as the machine types automatically. Initially, the typing is slow, deliberate, and spaced out. As time passes, the pace quickens, the character density increases, and the typing becomes increasingly rapid and fluid, suggesting growing confidence in the machine's performance. No user interaction is required for the text to generate and evolve.",
  "completion_tokens": 750,
  "created_utc": "2026-09-23T16:10:46Z",
  "entry_id": 1483,
  "executor": "qwen3-coder:30b-a3b-q4_K_M",
  "executor_prompt_version": "executor-v3",
  "gate": [
    {
      "assertions": {
        "motion(idle)": false
      },
      "attempt": 1,
      "checks": {
        "audio_context_running": null,
        "console_clean": false,
        "frame_advancing": false,
        "frame_budget": true,
        "is_looping": true,
        "sound_lib_ok": null
      },
      "completion_tokens": 383,
      "evidence": "Names this sketch shadows (checked before the gate ran):\npreflight: your variable `text` hides p5's `text()` function; rename it (sketch.js line 1)\n\ngate exit 1: checks failed: console_clean, frame_advancing; assertions failed: motion(idle)\n\nFixed checks that failed:\n- console_clean = false\n- frame_advancing = false\n    frame_advancing compares frameCount at frame 84 of the 120-frame idle window (30) with the end of it (30); at load it was 0\n\nAssertions that failed:\n- motion(idle): idle 0->120 frames: mean abs diff 0.0000/255, 0 of 1152000 pixels changed\n\nConsole (1 error line, first 1 shown):\n- [pageerror] text is not a function\n\nRuntime state the gate read:\n- frame_advancing compares frameCount at frame 84 of the 120-frame idle window (30) with the end of it (30); at load it was 0\n",
      "exit": 1,
      "ghost": {
        "events": 40,
        "ms": 4000,
        "played": 40,
        "script": "wander",
        "source": "default"
      },
      "given": null,
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 0.1,
      "num_ctx": 16384,
      "preload_s": 0.027,
      "prompt_tokens": 2365,
      "resources_loaded": [],
      "rules_file": "treatment",
      "source": "attempt-1",
      "total_s": 2.624,
      "wall_s": 32.274
    },
    {
      "assertions": {
        "motion(idle)": 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": 367,
      "evidence": null,
      "exit": 0,
      "ghost": {
        "events": 40,
        "ms": 4000,
        "played": 40,
        "script": "wander",
        "source": "default"
      },
      "given": {
        "kind": "previous",
        "lines": 40,
        "sha256": "580c1274df707f5882009adb4d0b471d1d11e889e67a1b0115d7e9f388751fa3",
        "shown": true
      },
      "model": "qwen3-coder:30b-a3b-q4_K_M",
      "ms_per_frame": 0.1,
      "num_ctx": 16384,
      "preload_s": 0.026,
      "prompt_tokens": 2907,
      "resources_loaded": [],
      "rules_file": "treatment",
      "source": "attempt-2",
      "total_s": 2.623,
      "wall_s": 40.305
    }
  ],
  "ghost": {
    "by": "default",
    "events": 40,
    "script": "wander"
  },
  "job_id": 1494,
  "last_error": null,
  "licence": "CC BY 4.0",
  "lineage": {
    "children": [
      1618
    ],
    "critique": null,
    "critique_by": null,
    "generation": 1,
    "inherits_source": false,
    "parent_entry_id": null,
    "root_entry_id": 1483
  },
  "loads": [],
  "note": null,
  "off_node": [],
  "planner": "gemma4:e4b",
  "planner_prompt_version": "planner-v2",
  "process": null,
  "prompt": "a typewriter that types by itself and slowly gains confidence",
  "prompt_tokens": 5272,
  "publish_commit": "e8ab2ab9644ce6adbd12f40f87a643315b1557c8",
  "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"
    ],
    "entry": "https://profcarroll.github.io/sketchgen-gallery/e/1483/",
    "index_html": "sketch/index.html",
    "repository": "https://github.com/profcarroll/sketchgen-gallery/tree/main/e/1483",
    "sketch_js": "sketch/sketch.js"
  },
  "state": "published",
  "statement": "This sketch depicts a typewriter scene where text appears sequentially on a sheet of paper. Initially, the typing is slow and deliberate, but as time passes, the pace increases dramatically, creating a visual metaphor for growing confidence and fluency in machine performance. The animation runs autonomously without any user interaction, showing how the density of characters builds over time while maintaining the illusion of mechanical operation. The effect is achieved through careful timing adjustments that accelerate character display rate, producing an engaging visual rhythm that suggests increasing efficiency and capability.",
  "submitted_by": "profcarroll",
  "wall_s": 72.579
}
