Every artefact below is generated from one save — good_sample, a fun-mode run in which the United States severs allied F-35 sustainment, walks out of NATO, occupies Greenland and Iceland, and opens a strategic campaign against the United Kingdom. Three shapes, three iterations each. Pick the ones worth building.
26events
25source records
33articles written
257posts written
78of them replies
16statements invented
14image slots
12forum threads
87entities
Shape one — the encyclopedia
The same encyclopedia, the same pages, rendered three ways. Every iteration has full-text search, category pages, subject index pages generated from the entity list, and the world's own records published as citable primary sources. What differs is the register, and — in the third — what the page does with the classified matter.
01 · wiki
Atlas
invented in-world brand · editorial
A brand-neutral encyclopedia that reads like a book: warm paper, a serif column, an infobox rail, and a contents rail that tracks the article. Nothing imitates an existing product.
Classified sections are hidden, and the page says how many are missing
Home page is a masthead with a featured article and the record in order
The chrome everybody already knows how to use: left rail, page tabs, hatnotes, a floated infobox, blue links, a portal front page with "Did you know". Invented name, familiar shape.
Zero learning curve — players know where everything is
Denser: more of the record visible per screen
Current-event banners and reader-facing editorial notes
A file registry rather than an encyclopedia. Every page carries a reference number and a classification banner, and the withheld passages are not hidden — they are covered with redaction bars that lift when you present clearance.
You can see the shape of what you are not being told
Registry navigation by file number, not by topic
The toggle becomes the centrepiece rather than a setting
Three different answers to "what did the world say while this happened". These differ far more from each other than the encyclopedias do, because the shape of a social export is a real product decision: one broadcast column, one argument, or one merged evidence stream. Most of the volume here is ordinary people — a welder, a teacher, a nurse, a plumber in Copenhagen, a sixteen-year-old in Nuuk — arguing with each other underneath the official posts.
04 · social
Signal
microblog pastiche · broadcast
The familiar single column: 257 posts across 74 accounts, of which 78 are replies. Threads, quote posts, profiles, permalinks, reader-added context notes on official denials, a trending rail, and a "moment" page for every event.
Every major post carries a reply thread — support, criticism, questions and people changing their minds at each other
Declassifying adds leaked posts AND a "what was actually happening" note under official statements
The President posts here too, and the switch puts the briefing under each one
Boards, vote counts, nested replies and moderator notes. Twelve long threads where the world tries to work out what is happening — from a dental receptionist asking whether her son is going somewhere cold, to Germans arguing honestly about whether they are relieved.
Declassifying does not add posts; it adds the answer the thread was arguing about
Best for showing what the public could and could not infer
The smallest export of the nine — a deliberate, denser artefact
Not one platform but all of them at once: posts, forum threads, wire records and closed briefings merged onto a single clock, with channel filters, subject indexes, per-day pages and a geography view.
Live client-side filtering by channel, plus a density scrubber across the fifty days
Subject pages tie every channel to the same entity
The largest export of the nine, and the most "tool" of the three
This shape exports a video file rather than a website, so the decision is the motion language. All three are 1920×1080 H.264 with a synthesized bed, rendered by driving the animation frame by frame through a browser and piping the frames into ffmpeg. Each ships with a player page whose chapter list and searchable transcript seek the video.
07 · news
Newsreel
archive reel · monochrome
The 1940s trope done properly: papers spin in from depth and slam to a stop, hard cuts, title cards between acts, projector weave, gate flash, and grain over everything.
Reads instantly as "historical record"
Title cards carry the narration, so no voice track is needed
Front pages are legible for about two seconds each
A front page that typesets itself — masthead, kicker, headline, deck, then the columns — after which the camera drifts down the real text of the record. Single figures lift off the page and count up between pages.
The only cut where you can actually read the columns
Contemporary, closest to a modern documentary title sequence
No newspaper at all. A teleprinter running in a dark room, striking one character at a time under a priority flash — and between the open items, redaction bars that wipe away to show what the closed channel said.
The only cut that puts the classified layer on screen
Cheapest to render and the most typographically distinct
Ten of the twenty-five records in this save were classified. Every export ships both readings and a switch in the header, and the switch is the most important thing to judge, because each shape does something different with it:
Export
What the switch does
Atlas, Reference
Hides or shows whole sections, and tells you how many are missing.
The Archive
Lifts redaction bars in place, so the shape of the missing text is always visible.
Signal
Adds leaked posts, and adds a note under official statements saying what was really happening at that moment.
The Commons
Adds the closed record beside a thread that is arguing about it.
OpenWatch
Enables two whole channels of the merged stream.
Wire (video)
Baked into the film: the redaction bars wipe away on screen.
The setting is shared per export and survives navigation. Search obeys it too: classified pages are unfindable until it is on.
Everything here is one contract
The nine artefacts are renderers over a single generated document, corpus.json. That file is what the model produces from a save; the renderers are ordinary code with no model in them. Adding a tenth iteration costs a stylesheet, not another generation pass.
corpus.json
├─ export world, player, span, counts, open agenda
├─ entities 87 named things, with aka lists and a one-line blurb
├─ timeline 26 events, each scoped public or classified, each citing a source
├─ wiki 33 articles: summary, infobox, scoped sections, categories, refs
├─ accounts 74 in-world accounts, and 257 posts with replies and quotes
├─ boards 12 threads with nested comments
├─ statements 16 public words from the player, invented to fill the silence
├─ images 14 picture slots: a prompt, an alt text, a caption, a place
├─ fronts 12 newspaper front pages
├─ cuts 3 film scripts, as scene lists
└─ sources 25 unedited records from the save, published and citable
The one rule that makes the shapes cohere: scope is on every node — an event, an article section, a post, a scene. That single field is what the declassify switch reads.
The generator improvises. It does not report its seams.
A save is a working record, not a finished history. It has gaps and it has contradictions. An export that stops to explain them reads like a bug report. The generation step fills them instead, and commits to what it wrote.
Where the record contradicts itself, it picks the legible reading and never mentions the other one. This save names two different German chancellors nine days apart. The export uses one throughout, re-attributes the orphaned quotation, and says nothing. The decision is recorded in corpus.json under export.reconciliations — so a later run reproduces the same choice — and it never reaches a page.
Where the player is silent, it invents what he said. No record in this save contains one public word from the President. Rather than print that as an absence, the generator wrote his public record: 16 statements over fifty days — three addresses to the nation, written statements, three press gaggles, and the posts. See Atlas → Public statements.
That turns out to make the declassify switch sharper rather than softer. The world is not starved of his words; it is flooded with them. Every statement carries the briefing that stood behind it at that moment, and the switch puts the two side by side — "nobody needs a letter from me" against the letter that arrived the night before, "everything in Germany is completely normal" against the cordons that had closed three hours earlier.
He is never named. The save names every other officeholder and never names him, which is the right reading: this character is the player.
Pictures are generated the same way, in a second pass
The model writes an images list along with everything else. It draws nothing. For each slot it writes a prompt, an alt text, a caption in the voice of the export, and where the picture belongs — the lead of an article, inside a named section, attached to a post, or the plate behind a film scene.
A separate step calls an image model once per slot and fills in file. This keeps the expensive, slow, and most failure-prone part of the export out of the path of everything else: an export with no pictures is complete and shippable, and pictures can arrive later without regenerating a word.
Every renderer handles both states, and the layout does not move between them. In these samples the slots are unfilled, so you are looking at the frames, the aspect ratios, and the captions the model wrote — 14 of them. Turn one on and the frame fills.
Open it from disk
Every export is plain files. No server, no build step, no network: open index.html and search, deep links, back and forward, and the toggle all work from file://. Nothing loads from a CDN.