{
 "schema_version": "1.0",
 "page_kind": "article",
 "pack_kind": "generate",
 "slug": "the-dog-the-dice-and-the-painter",
 "title": "The Dog, the Dice, and the Painter: How a Small World Draws Itself",
 "dek": "A photograph of a real dog walks into a painted fishing cove and comes out as a painted dog the world will remember. This is the whole pipeline between those two facts — the file, the dice, and the painter — one station at a time, with no scores and no instrumentation.",
 "published": "2026-08-25",
 "series": [
  "guide"
 ],
 "licence": "CC BY 4.0",
 "status": "pending-judge",
 "pack_note": "no judge is seated, so every chip is held",
 "notice": "items with published:false are held and are not this page's published words",
 "source": {
  "url": "https://research.strata2signal.com/the-dog-the-dice-and-the-painter/",
  "md_url": "https://research.strata2signal.com/the-dog-the-dice-and-the-painter/index.md",
  "md_sha": "aededcd3bb09695135604070ca5e9aeaf8011d5afffc68218ff2dc0c41288d8a",
  "html_sha": "cefa084f3a69f37239ebd6c7feeae1064d1e091cd2eb2e9349066b428864d26e",
  "anchors_sha": "0ced3742f4e7f053c609d902b1a273825401a98fbc5e1806f6f0382721aef507"
 },
 "short": {
  "paragraph": "A photograph of a real dog walks into a painted fishing cove and comes out as a painted dog the world will remember. This is the whole pipeline between those two facts - the file, the dice, and the painter - one station at a time, with no scores and no instrumentation.",
  "from_dek": true,
  "counts": {
   "words": 3585,
   "minutes": 16,
   "tables": 2,
   "kit": false
  },
  "bullets": [
   {
    "text": "the world of Sorrowmoor Cove is written in a single YAML file of 16,705",
    "figure": "16,705",
    "cite": "the-world-is-a-file",
    "quote": "One YAML file, 16,705 lines, holding six regions, forty NPCs, fifty-nine quests and three kinds of adoptable pet - one of them a dog we'll meet again at the end of the walk - with a sibling file for its sixty-nine foes - twelve of them painted by every painter.",
    "span": [
     2242,
     2249
    ]
   },
   {
    "text": "the engine uses a random seed that is 128-bit",
    "figure": "128-bit",
    "cite": "the-dice-are-visible",
    "quote": "At a world's first boot - and only then - the engine mints a 128-bit random seed and writes it into the very first event.",
    "span": [
     5956,
     5964
    ]
   }
  ]
 },
 "sections": [
  {
   "id": "the-world-is-a-file",
   "heading": "The world is a file",
   "level": 2,
   "span": [
    2076,
    5165
   ],
   "chunks": [
    [
     2076,
     5165
    ]
   ],
   "chars": 3089,
   "digest": "the world of Sorrowmoor Cove is a 16,705 lines YAML file containing regions, NPCs, quests, and pets. art direction is separated from subjects to prevent rendering errors, with house style and geography handled as distinct clauses. the engine maintains two byte-identical copies of the file for its TypeScript and Java implementations.",
   "digest_skipped": null
  },
  {
   "id": "the-dice-are-visible",
   "heading": "The dice are visible",
   "level": 2,
   "span": [
    5165,
    8121
   ],
   "chunks": [
    [
     5165,
     8121
    ]
   ],
   "chars": 2956,
   "digest": "the event log serves as the source of truth, with the current world state being a rebuildable projection. randomness is deterministic, using a 128-bit random seed and FNV-1a into xorshift32. while the world is deterministic, generated art and text are persisted as bytes rather than recomputed.",
   "digest_skipped": null
  },
  {
   "id": "the-painter-paints-the-state",
   "heading": "The painter paints the state",
   "level": 2,
   "span": [
    8121,
    10335
   ],
   "chunks": [
    [
     8121,
     10335
    ]
   ],
   "chars": 2214,
   "digest": "the limner is a service that sketches scenes by reading an enumerated record of public facts. it follows a fixed prompt assembly order: house style, subject, extras, and terrain. the resulting picture is recorded on the event log as a receipt, ensuring the limner illustrates the log without inventing new content.",
   "digest_skipped": null
  },
  {
   "id": "the-photograph",
   "heading": "The photograph",
   "level": 2,
   "span": [
    10335,
    16045
   ],
   "chunks": [
    [
     10335,
     16045
    ]
   ],
   "chars": 5710,
   "digest": "photographs of animals are processed through a local-first vision pipeline that moderates, describes, and then discards the raw bytes. the model produces a strict JSON description of the animal without recording its setting. this description is then used to paint a likeness in the campaign's own style.",
   "digest_skipped": null
  },
  {
   "id": "what-to-take-with-you",
   "heading": "What to take with you",
   "level": 2,
   "span": [
    16045,
    17215
   ],
   "chunks": [
    [
     16045,
     17215
    ]
   ],
   "chars": 1170,
   "digest": "the article summarizes that the world is a file, the how lives in one place, and the event log is the source of truth. the limner illustrates the log, and privacy is maintained through a shape that lacks slots for sensitive information.",
   "digest_skipped": null
  },
  {
   "id": "how-to-check-our-work-and-see-it-live",
   "heading": "How to check our work — and see it live",
   "level": 2,
   "span": [
    17215,
    21213
   ],
   "chunks": [
    [
     17215,
     21213
    ]
   ],
   "chars": 3998,
   "digest": null,
   "digest_skipped": "credits"
  },
  {
   "id": "the-rest-of-the-seminar",
   "heading": "The rest of the seminar",
   "level": 2,
   "span": [
    21213,
    22718
   ],
   "chunks": [
    [
     21213,
     22718
    ]
   ],
   "chars": 1505,
   "digest": null,
   "digest_skipped": "credits"
  }
 ],
 "chips": [
  {
   "id": "c-c7a7b07f",
   "q": "how is the world of sorrowmoor cove structured?",
   "a": "The world is a single YAML file containing 16,705 lines. This file defines six regions, forty NPCs, fifty-nine quests, and three kinds of adoptable pets, along with a sibling file for sixty-nine foes.",
   "cites": [
    "the-world-is-a-file"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-1b41e943",
   "q": "what principle governs the engine's state management?",
   "a": "The event log serves as the source of truth, while everything else is a rebuildable projection. The current state of the world is a fold over an append-only history of events.",
   "cites": [
    "the-dice-are-visible"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-e5189248",
   "q": "how does the limner generate visual scenes?",
   "a": "The limner reads an enumerated record of public facts decided by the deterministic core, such as region, time-of-day, weather, and tide. It assembles a prompt using a fixed order: house style, subject, extra labels, and terrain place-clause.",
   "cites": [
    "the-painter-paints-the-state"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-f00c1ab7",
   "q": "what process handles animal photographs?",
   "a": "A local vision model moderates the photo, requiring an OK verdict before describing it. The model produces a strict JSON response with nine typed fields, such as species and markings, which are then used to paint a likeness.",
   "cites": [
    "the-photograph"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-592c68e7",
   "q": "how is privacy maintained during photo processing?",
   "a": "Privacy is achieved through the shape of the data schema, which lacks fields for background or setting. Additionally, the raw photograph is never stored durably; it exists in memory only long enough to generate a text description.",
   "cites": [
    "the-photograph"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-ca925db4",
   "q": "what defines the relationship between style and subject?",
   "a": "The engine prepends a single house style to every subject. To prevent rendering errors, an architecture test fails the build if a subject line contains any mention of a specific artistic medium.",
   "cites": [
    "the-world-is-a-file"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-6e123d50",
   "q": "how is randomness managed in the engine?",
   "a": "A 128-bit random seed is written into the first event at the world's first boot. All subsequent draws use a deterministic generator seeded by specific strings, ensuring the same results upon replay.",
   "cites": [
    "the-dice-are-visible"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  },
  {
   "id": "c-8f07734a",
   "q": "what are the core takeaways of the article?",
   "a": "The world is a file, the how lives in one place, and the event log is the source of truth. The limner illustrates the log, and privacy is maintained through the shape of the data.",
   "cites": [
    "what-to-take-with-you"
   ],
   "published": false,
   "publish_state": "held",
   "quote": "",
   "quote_cite": ""
  }
 ],
 "related": [
  {
   "slug": "how-a-vision-model-sees",
   "why": "shares ground with § The photograph · § What an image becomes on the way in"
  },
  {
   "slug": "how-the-print-lab-works",
   "why": "shares ground with § The painter paints the state · § Where your words go, and who draws"
  },
  {
   "slug": "compression-is-the-objective",
   "why": "shares ground with § The dice are visible · § When you look closer"
  }
 ],
 "thanks": "",
 "kit": null,
 "seat_class": {
  "writer": "gemma-class",
  "judge": null,
  "writer_runtime": "vllm"
 },
 "bench": {
  "bullets_written": 3,
  "bullets_kept": 2,
  "digests_written": 5,
  "digests_kept": 5,
  "chips_written": 8,
  "chips_kept": 8,
  "chips_grounded": 0,
  "chips_published": 0,
  "dropped_by": {
   "new_noun": 1,
   "figure": 0,
   "length": 0,
   "cite": 0,
   "judge": 0,
   "quote": 0,
   "directive": 0,
   "redaction": 0,
   "profanity": 0
  },
  "new_noun_tokens_checked": [
   "128-bit",
   "16",
   "705",
   "Cove",
   "FNV-1a",
   "JSON",
   "Java",
   "NPCs",
   "OK",
   "Sorrowmoor",
   "TypeScript",
   "YAML",
   "xorshift32"
  ],
  "new_noun_tokens_withheld": 1,
  "figure_definition": "v3",
  "drops": [
   {
    "kind": "bullet",
    "reason": "new_noun",
    "item": null,
    "item_chars": 3,
    "withheld": "a string naming something the article does not",
    "detail": ""
   }
  ]
 },
 "generated_utc": "2026-09-09T01:27:24Z"
}
