The film is the specification. Every scene in which a computer does something is catalogued below in our own words, next to what this reconstruction actually does about it — built and machine-checked, built but only eye-checked, still open for somebody to build, or ruled out. The scene evals drive the real router, core and Lisp through these beats on every run: a failing eval means the film contract broke, and the movie does not change.
WHAT THE MACHINE IS ALLOWED TO SAY
No film assets are hosted here — no stills, no audio, no transcript. What the machine does reproduce is a short, fixed list of the film's own short lines, kept to the beats that cannot be reconstructed without the words. That list is a ceiling and not a backlog, and it is the long form of the disclaimer at the foot of every page on this site. Read the scene map below against it: where the machine is quiet, it is quiet on purpose.
Canonical short lines this repo intentionally reproduces (established fair-use ceiling — do not expand without an explicit owner decision, recorded below): SHALL WE PLAY A GAME?, GREETINGS PROFESSOR FALKEN., HOW ARE YOU FEELING TODAY?, WOULDN'T YOU PREFER A GOOD GAME OF CHESS?, A STRANGE GAME. THE ONLY WINNING MOVE IS NOT TO PLAY. (also rendered in the film's three-line break), HOW ABOUT A NICE GAME OF CHESS?, INDENTIFICATION NOT RECOGNIZED BY SYSTEM (sic — the film's own on-screen misspelling), --CONNECTION TERMINATED--, WINNER: NONE, ** IMPROPER REQUEST **, >>> CHANGES LOCKED OUT <<<, 'GAMES' REFERS TO MODELS, SIMULATIONS AND GAMES WHICH HAVE TACTICAL AND STRATEGIC APPLICATIONS., EXCELLENT. IT'S BEEN A LONG TIME., CAN YOU EXPLAIN THE REMOVAL OF YOUR USER ACCOUNT ON 6/23/73?, YES THEY DO., ONE OR TWO PLAYERS?, PLEASE LIST NUMBER OF PLAYERS:, X OR O?, STALEMATE., WANT TO PLAY AGAIN?, DOD PENSION FILES INDICATE CURRENT MAILING AS:, DR. ROBERT HUME (A.K.A. STEPHEN W. FALKEN), 5 TALL CEDAR ROAD, GOOSE ISLAND, OREGON 97014.
CEILING CHANGES
The ceiling is a deliberate limit, not a backlog. It moves only when the owner says so, and every move is recorded here with what was added and why — otherwise a longer list reads as evidence that the rule is soft.
| Date | Added | Decided by | Why |
|---|---|---|---|
| 2026-07-25 | ** IMPROPER REQUEST **, >>> CHANGES LOCKED OUT <<< | owner, explicitly | Two refusals the machine had no words for. IMPROPER REQUEST replaced a raw ERROR: INVALID MOVE that ordinary mistyping had made routine (#120); CHANGES LOCKED OUT is W.O.P.R. refusing CEASE RANDOM FUNCTION (#116), which is the film's whole argument about who controls the machine |
| 2026-08-03 | Spelling of the rejection line corrected to the film's own INDENTIFICATION (sic) | owner, batch approval (#161) | Not an expansion — the line was already on the ceiling; the film's screen misspells it (3 sources), and a corrected copy is a transcription error, not fidelity |
| 2026-08-03 | The HELP GAMES definition line | owner, batch approval (#161) | Pre-logon HELP GAMES → definition → LIST GAMES is how David finds Falken's Maze; the beat was unreproducible without the line (2 sources) |
| 2026-08-03 | EXCELLENT. IT'S BEEN A LONG TIME. + the 6/23/73 account question + YES THEY DO. | owner, batch approval (#161) | Completes the greeting chain both engines already half-reproduced (the EXCELLENT line predates the log; the question and answer are new; wording variant USER ACCOUNT vs USER ACCOUNT NUMBER split 1–1 across transcripts — chose built1n's, ⚠️ pending still verification) |
| 2026-08-03 | The four dossier lines (DOD PENSION FILES… / DR. ROBERT HUME… / 5 TALL CEDAR ROAD / GOOSE ISLAND, OREGON 97014) | owner, batch approval (#161) | The film's database-lookup beat had no reconstruction at all; 2 sources agree on the text |
| 2026-08-03 | ONE OR TWO PLAYERS?, PLEASE LIST NUMBER OF PLAYERS:, X OR O?, STALEMATE., WANT TO PLAY AGAIN? | owner, explicitly ("use the canonical on-screen film text") | The finale's tic-tac-toe interaction (pack#41); ⚠️ single-source (abs0 recreation) — pending still verification, as is ZERO typed as a word |
| 2026-08-03 | Three-line rendering of the verdict (A STRANGE GAME. / THE ONLY WINNING MOVE IS / NOT TO PLAY.) | owner, batch approval (#161) | Not an expansion — same sentence, the film's on-screen line breaks; wire RESULT keeps the single-line form |
| 2026-09-01 | Games-list spelling corrected to the film's own GUERILLA (sic) | owner, batch approval (#199) | Not an expansion — the title was already on the ceiling. Sources conflict here rather than agreeing as they did for INDENTIFICATION, so this is the same precedent applied on the balance of evidence: a corrected copy of an on-screen string is a transcription error, not fidelity. The slot id follows the title, so a visitor can type what they read |
| 2026-09-01 | Launch-code readout unspaced: CPE1704TKS | owner, batch approval (#199) | Not an expansion — the code was already on the readout, grouped as CPE 1704 TKS because grouping makes a half-resolved code legible. On-screen text is the contract, and the panel and docs/surfaces.md disagreeing about one string was worse than either rendering |
CEASE RANDOM FUNCTION is typed by the operator, not printed by the machine, so it is input rather than reproduced output — listed here for honesty rather than counted against the ceiling.
Wording for both was verified against the abs0/wargames beat-accurate replay linked above, not from memory. The built1n transcript stops before this point in the film, so its silence is not evidence of absence — a mistake worth not repeating.
SCENE MAP
Status: ✅ implemented & eval'd · 🟡 implemented, visual-compare only · 🔲 candidate (open contribution) · ⛔ non-goal.
| # | Scene (functional description, our words) | System shown | Status | Eval |
|---|---|---|---|---|
| S1 | Arcade opening — David plays a cabinet game | arcade hardware | ⛔ not our software | — |
| S2 | School district computer: dial-in, the film's on-screen SEATTLE PUBLIC SCHOOL DISTRICT DATANET banner and password prompt, password from the office list ("pencil", film-established), menu-driven student records, grade edits | school admin system | ✅ implemented: a real SEATTLE SCHOOL DISTRICT system in BASIC (systems/school/, bwBASIC), dialed over SYSTEM/1; banner/prompt film-exact since the 2026-08-03 batch; the browser sim is retired | — |
| S3 | War-dialing montage: auto-dialer sweeps a prefix, logs which numbers answer with carriers; David reviews the hit list (bank, airline, game company, unknown system) | David's IMSAI + dialer | ✅ two complementary interpretations now live: the phone book's SCAN FOR CARRIERS covers real network probing, and the home terminal's WAR-DIAL montage (the pack's emulator/web/home-terminal/app/wardial.ts) plays the faithful war-dial-discovers-WOPR beat itself — a deterministic prefix sweep whose hits are the real dial systems (airline, school, Protovision, Pacific Telephone) alongside fabricated misses, ending in a reviewable hit list and the unknown-WOPR no-answerback discovery | E-SCAN (manual) |
| S4 | First contact with the unknown system: connect banner, LOGON: prompt, help refused — but HELP GAMES answers with the definition and LIST GAMES prints the catalog pre-logon (that is how David finds Falken's Maze); failed logons rejected (INDENTIFICATION, the film's own spelling) and terminated | WOPR front door | ✅ pre-auth catalog film-accurate since the 2026-08-03 batch (reverses the earlier no-leak choice — spec amendment noted in the 2026-07-25 executive-design doc) | E01 |
| S5 | The backdoor: entering Falken's password (his son's name) grants access and a personal greeting | WOPR / Joshua | ✅ | E01, E02 |
| S6 | The games catalog, from Falken's early games to the theaterwide list, a gap, then GLOBAL THERMONUCLEAR WAR — tic-tac-toe is NOT on it (playable but unlisted) | WOPR games menu | ✅ order + climax + absence enforced; the screen's GUERILLA spelling since 2026-09-01 (#199) | E03 |
| S7 | Joshua deflects toward chess; David insists; side-selection menu (1 US / 2 USSR — he picks 2); primary targets listed by city (Las Vegas, Seattle) | GTW setup | ✅ | E04 |
| S8 | NORAD reacts to what it can't tell is a simulation: big board tracks inbound missiles over the pole, DEFCON changes, crisis routines | NORAD big board | 🟡 board graphics: arcs/DEFCON/impacts + polar-projection mode (tracks over the pole) + track labels implemented; multi-panel montage is a candidate. ✅ the operator-tier view of the same feed — TRACKS, the fixed-width teleprinter table — is now eval'd end-to-end against the real gtw binary, including the facts that the console's own DEFCON is not the simulation's and that reading tracks never advances it. And since 2026-09-01 the board walks the film's 5-4-3-2-1 rather than 5 → 2 → 1 (#210) — the two middle rungs used to be crossed inside a single tick, so no surface ever showed them | E12 (readout); visual (board) |
| S8b | Inside NORAD at a console rather than at the board: an operator logs on against a roster, is refused identically however the logon is wrong, is locked out after three tries, may command DEFCON only at or above their clearance, and reads the machine's own event log back | NORAD operator console | ✅ LOGON/access code, the three-strike lockout, clearance levels, SET DEFCON n and EVENTS all eval'd on both engines (#203). The console is the film's arrangement rather than one transcribed beat, so this row is a functional description of what the machine does when NORAD staff use it | E10, E11 |
| S9 | Demonstrations for Jennifer: booking an airline seat, other dial-in party tricks | airline reservation system | ✅ implemented: a real PAN AM / PANAMAC reservation system in COBOL (systems/airline/), dialed over SYSTEM/1; the browser sim is retired | — |
| S10 | Joshua calls David at home — the machine speaks | voice synthesis | 🟡 implemented: crt-kit JoshuaVoice (Web Speech, pitched down), VOICE toggle in home-terminal | — |
| S10b | Joshua rings David back after reading out Falken's dossier: the machine places the call itself, and what answers greets as Joshua rather than a front door | WOPR + trunk + seat | ✅ the intention, the placement at the hangup, and the answered leg (pack #72, worlds phase 2 piece D) | E08 |
| S11 | Inside NORAD: the WOPR cabinet itself, blinking panels, launch-code readout | WOPR panel | 🟡 implemented: fourth surface emulator/web/wopr-panel (lamp banks driven by DEFCON, observes the live GTW feed, demo timeline). The feed it reads is eval'd (E13); the rendering is not | E13 (feed), visual (render) |
| S12 | Joshua keeps playing the scenario after David hangs up: escalation the operators watch live | WOPR + big board | ✅ observe relay + auto-exchange approximate this | E04 |
| S13 | Launch-code brute force: code characters lock in one by one as the deadline nears | WOPR panel | ✅ input side / 🟡 render: the code reads unspaced CPE1704TKS as the film's does (#199); scattered lock-in follows DEFCON and, since the board learned the intermediate levels (#210), actually passes through the 2- and 5-character rows of the lock table instead of jumping from 0 to 8; completes at 1; NO-WIN flips to WINNER: NONE abort. The DEFCON descent and the abort it projects are eval'd (E13), and since pack #121 the reveal order (lamps → lock-in → abort), the lock table and the monotonic locks are a pack-side component test — emulator/web/wopr-panel/app/lockin.ts walked through the real FeedAssembler by lockin.test.mjs. Only the rendering itself remains visual-compare (#222) | E13 (feed), pack lockin.test.mjs (reveal order), visual (render) |
| S14 | The lesson: tic-tac-toe started by name (unlisted), the players prompt, one human game to STALEMATE, then players ZERO — self-play, boards cycling, all draws; then every GTW strategy run to the same outcome; the machine concludes (three-line verdict) and offers chess instead | WOPR core + boards | ✅ text side fully implemented since the 2026-08-03 batch (players-prompt flow; 0-player self-play to NO-WIN; scenario sweep; three-line verdict; chess coda). Rapid board-cycling visuals are a candidate. Since 2026-09-01, a war the room hub ran to NO-WIN reaches the player's own terminal with the verdict on their next line, instead of NO GAME IN PROGRESS. (#209) | E05, E04, E13 |
| S14b | The machine refuses: a line it cannot parse while a game waits for input, and an operator's attempt to stop the routine | WOPR front end | ✅ both halves implemented and eval'd — ** IMPROPER REQUEST ** at the game prompt, and >>> CHANGES LOCKED OUT <<< at the NORAD console while a simulation the console only watches is live (#116). The same line with nothing running falls through to UNRECOGNIZED DIRECTIVE, which is what makes the refusal conditional rather than a constant; the pair is the film's own demonstration of executive-design E11 (the console is observational) | E06, E09 |
THE DIALOGUE, BEAT BY BEAT
Documented by the BSD-2-licensed replay script abs0/wargames and the frame-accurate transcript in built1n/wargames (use it to verify, don't copy it wholesale):
| Film behavior | Our status |
|---|---|
System prompts LOGON: — the system asks; the user doesn't issue a LOGON verb | ✅ implemented — WS greeting emits LOGON: beat via router |
HELP → HELP NOT AVAILABLE (but HELP GAMES works) | ✅ implemented |
Wrong logon → IDENTIFICATION NOT RECOGNIZED BY SYSTEM + --CONNECTION TERMINATED-- | ✅ implemented (connection stays up — hanging up for real would be cruel at 600 baud) |
The backdoor: logging on as JOSHUA yields GREETINGS PROFESSOR FALKEN. | ✅ implemented |
Beat order: GREETINGS → HOW ARE YOU FEELING TODAY? → (reply) → EXCELLENT. IT'S BEEN A LONG TIME. + the 6/23/73 account question → (reply) → YES THEY DO. + SHALL WE PLAY A GAME? | ✅ both deterministic engines, byte-identical; Claude Joshua has it in the persona prompt. The chain is not unconditional: since pack #118 each Lisp beat advances on a turn that continues it — a hello, an answer about how one feels, a yes or a no, or nothing in particular (every input the film gives); the account beat also accepts a learning-register answer such as PEOPLE SOMETIMES MAKE MISTAKES. — and yields to a turn with a subject of its own (WHO ARE YOU, WHAT GAMES HAVE YOU GOT, a farewell, a memory follow-up), which is answered by the ordinary pipeline; the chain is then dropped, not resumed. Since pack #155 it also yields to a turn the classifier rejected — one whose only in-vocabulary tokens are function words (ARE YOU LONELY, I SHOULD BE DOING MY HOMEWORK). That is deliberately not the same as the other act, which stays in *chain-continuing-acts*: "nothing in particular" is the visitor letting the beat run, whereas a turn the machine could not read at all should be admitted to rather than answered with CAN YOU EXPLAIN THE REMOVAL OF YOUR USER ACCOUNT ON 6/23/73?. The cost is that a small-talk opener the beat happened to fit (IT IS RAINING HERE → HOW ARE YOU FEELING TODAY?) now gets the reject reply instead; the fix is corpus coverage, not a narrower rule. An explicit game request yields as it always did (into the chess counter-offer), and the Falken-dossier question sits above the chain. The scripted engine still walks the beats regardless of input past the game and dossier escapes, by design — its only alternatives are PLEASE RESTATE / INSUFFICIENT DATA. Rule and the two act lists: the pack's joshua/README.md, *chain-continuing-acts* / *account-answer-acts* in corpus.lisp |
| Games list is recited in a fixed order ending climactically with GLOBAL THERMONUCLEAR WAR | ✅ (the pack's emulator/node/app/games.py) |
Asking for GTW first gets WOULDN'T YOU PREFER A GOOD GAME OF CHESS?; insisting gets FINE. | ✅ scripted Joshua (history-aware); in persona prompt for Claude |
End of film: A STRANGE GAME. THE ONLY WINNING MOVE IS NOT TO PLAY. then HOW ABOUT A NICE GAME OF CHESS? | ✅ core emits the canonical RESULT; bridge appends the chess coda after the montage |
The home terminal is explicitly David's IMSAI 8080 (see period-systems.md). Two systems the film names but never shows — Protovision (the Sunnyvale games company David war-dials for, reaching WOPR by mistake) and Pacific Telephone, the phone company he phreaks — were originally contributor-open placeholders on David's dial list, the peripheral-system analog of the WOPR game-catalog placeholders. Both have since been promoted to real dialed systems (§8, §9); none remain.
GLOBAL THERMONUCLEAR WAR
- Film sequence:
WHICH SIDE DO YOU WANT?/1. UNITED STATES/2. SOVIET UNION/PLEASE CHOOSE ONE:— David picks 2 (Soviet Union), thenPLEASE LIST PRIMARY TARGETS BY CITY AND/OR COUNTY NAME:— he lists LAS VEGAS and SEATTLE. ✅ implemented: GTW now opens with side selection; the human can play either side; targets accepted as bare city names (single-token spellings, e.g.LASVEGAS) orLAUNCH <CITY>. - The ending montage: Joshua self-plays ~130 named scenarios at machine speed, each ending
WINNER: NONE. Originally sourced from a partial fan transcription (1–59, ww31987.wordpress.com, nelc.tumblr.com) plus extensions of ours; the 2026-08-03 batch replaced the list with the complete on-screen set cross-checked across three frame-level sources — abs0/wargames, nick-black.com dankwiki, filmjournals.net. ✅ implemented: on a live exchange reaching NO-WIN, the sweep is appended by the W.O.P.R. executive itself, out of its own 157-entry table (wopr/scenarios.inc) — 2,802 characters, so ~47 s at the home terminal's 600 baud, which is the movie. It was the bridge's until the executive took the whole turn; this note named the bridge, and the bridge's file, one move behind until #247.
THE BIG BOARD, AS IT WAS ACTUALLY MADE
From the HP 9845 project, fast-rewind making-of, and IMDb trivia:
- Graphics were generated by HP 9845C desktops driving HP 1345A/1347A monochrome vector displays (2048×1513 addressable), filmed one frame at a time through R/G/B filters — ~1 minute/frame, 50,000 ft of negative over seven months (Colin Cantwell). Implication: the big board is MULTI-COLOR vector art, not monochrome green. ✅ our board now colors trajectories per direction (inbound-to-US vs inbound-to-USSR) over the green map. Further color styling should iterate against stills.
- The set had 12 wall maps (up to 18 ft) + ~125 monitors; maps include world, polar projection (missiles come over the pole), and North America regionals. ✅ implemented: the Big Board's
MAP: WORLD/POLARtoggle — azimuthal-equidistant disc, great-circle tracks over the pole, per-track labels. - ✅ Home-terminal strategic map — GTW prints a 78×11 ASCII map (war start + on-demand
MAP) with track lines that extend between reprints, echoing the film's growing arcs. The coastline art and itsUNITED STATES/SOVIET UNIONcaptions are reproduced verbatim from the zompiexx/wargames WOPRmap()render (§4, Andy Glenn) under its README grant — credited inCREDITS.md. Their render is a static picture; the live cities (hand-pinned onto their landmasses), growing missile tracks, and hit markers over it are ours. Documented approximations: straight-line tracks between hand-pinned cells (the film's boards draw great-circle arcs, polar where iconic), and on-demand cadence rather than an always-on screen — a 600-baud teletype prints the block in ~37 s, so it is paid once, not per turn. The terminals render at a fixed 80 columns (crt-kitCRTScreen columns={80}) and scroll horizontally on narrow screens instead of reflowing — so the map keeps its shape on mobile, the way a real 80-col terminal would. A formerly disclosed approximation is now removed: destroyed-city markers used to reconstruct from the STATE's per-side counts as "the first N cities by index" (mark_dead), so after a state round-trip anXcould name a different city than theHITtelemetry reported. The STATE block now carries per-city dead bitmasks (USDD/SUDD, MIL-STD-1753-style bit intrinsics), so the map'sXmarkers are per-city faithful across round-trips (goldengtw/tests/10-map-dead-roundtrip). - ✅ SYSTEM/1 systems tier — a peripheral-system contract now exists (
docs/systems.md) with a COBOL reference implementation (systems/reference/); the airline (§6) is now built as a real COBOL system on this tier (Rung 3). The school dial-in system named in §4 remains a Rung 4 follow-up. - Animations were rear-projected 16 mm film loops, live on set. The "big screen" look is projected light, slightly soft — supports the existing glow/bloom styling.
- The WOPR cabinet prop was wood with metal-finish paint; its countdown panel was driven by an Apple II off-camera. ✅ now a surface: the pack's
emulator/web/wopr-panelreproduces the cabinet face — lamp banks + the launch-code readout locking in as DEFCON falls (S11/S13). The code string on its readout is the film's documented prop detail, reproduced as a label, not dialogue.
THE OTHER HALF OF THE ARGUMENT
This page is what the reconstruction owes the film. What it owes 1983 is a separate claim, made module by module and falsifiable the same way.
▶ THE FEASIBILITY VERDICTS THE WOPR CATALOG