W.O.P.R. // REAL-WOPR PROJECT

Six modules, three networks. Each one makes a claim about whether 1983 could have built it, and the claims are meant to be argued with.

PSTN — DIAL-UP, 300/1200 BAUD, PUBLIC NORAD — LEASED, 9600, NOT PUBLIC BUS — LOCAL, PRIVATE, NO DIAL-IN HOME PC THE CALLER PAN AM (212) 555-0177 PROTOVISION (408) 555-0163 PACIFIC TEL (311) 555-0100 SEATTLE SCHOOLS (206) 555-0142 NORAD TERMINAL OPERATOR CONSOLE REFERENCE ALSO ON PSTN SCHOOL-DB NOT DIALABLE SCHOOL SAME MACHINE W.O.P.R. (311) 486-0623 — PSTN WOPR — NORAD ANSWERS ON BOTH

Three networks. pstn is the public phone network, where anything with a number can be dialled. norad is a leased line inside the building, with no number to dial. bus is local to one machine. W.O.P.R. answers on the first two: the computer that picks up a call from a bedroom in Seattle is on NORAD's internal net. That is the film's premise.

THE MODULES

#ModuleBuilt withPossible in 1983?Confidence
1WOPR Core ("the Mainframe")Fortran 90 (gfortran)Yes (engine); learning is dramatizedHigh
2Comms Simulation LayerTypeScript/Node middleware over WebSocketYesHigh
3API / Emulation BridgePython + FastAPIYes (logically); process model modernMedium
4NORAD DatabanksNeon (plain Postgres)Yes (function); tech choice debatableHigh
5Joshuaselectable: Anthropic Claude API / Common Lisp F.D.P. / scriptedNo — modern substitutionHigh
6SurfacesNext.js (React) + shared CRT component libYes (terminals); big board specializedHigh / Medium

WOPR CORE (THE GAME/SIMULATION ENGINE). A game-theory engine for board games plus a scripted "global thermonuclear war" simulation was comfortably implementable in Fortran on early-1980s hardware; the fictional leap is W.O.P.R.'s open-ended learning, not the game engine.

COMMUNICATIONS BETWEEN SYSTEMS. A home user connecting to a remote mainframe over an acoustic-coupler modem at 300 baud, and institutional sites talking over faster leased lines, is not just plausible but exactly how it was done.

THE EXECUTION/BRIDGE LAYER. The logical contract of the bridge (receive input → load state → compute → store state → return output) matches period transactional/batch processing; only the mechanism is modern.

DATA STORAGE (THE "NORAD DATABANKS"). Persisting sessions, game states, and historical logs was routine; relational databases existed but a defense system of this era would more likely use indexed/hierarchical storage.

JOSHUA, THE CONVERSATIONAL PERSONA. This is the one module that was not achievable in 1983. Natural, open-domain conversation with a coherent persona is a genuinely modern capability.

THE SURFACES (TERMINALS & BIG BOARD). Text terminals at the home and operator level were ubiquitous; the NORAD "big board" large-format graphical display was real but expensive, specialized hardware.

Lived through this era and think a verdict is wrong? Contest it; corrections with a period source are credited.

JOSHUA

Joshua has three interchangeable engines: a Claude API substitution, a 1983-honest keyword engine, and the default, a Common Lisp dialogue engine. Its layers are labelled honestly:

LayerStatus in 1983
Tokenizing + pronoun reflectionPeriod — ELIZA (Weizenbaum 1966)
Affect variables shaping repliesPeriod — PARRY (Colby 1972, Lisp on a PDP-10)
Naive-Bayes dialogue-act classifierAnachronism — 1700s math, 1990s NLP practice
Stop-word reject option on the classifierPeriod — Chow's reject option (1970) and the SMART system's stop list (1971) both predate the film
Data-driven topic/domain plannerAnachronism — rule-based expert-system practice was period; mixing it with statistical routing is the Falken fiction
Content guards over the classifier's verdictPeriod — the stop list again, used the other way round
TF-IDF cosine retrieval over a databankAnachronism — Salton's vector-space model (1975) existed for document search; retrieval-augmented dialogue is a 2020s idea
Markov bigram generationAnachronism — Shannon (1948) math, 1990s statistical NLP
Variant selection with a memory of what was saidPeriod — a list filter over the HISTORY block, no new state

The math is all additions, multiplications, and logs over a few hundred numbers — a VAX-11/780 would not have noticed. What 1983 lacked was the concept of statistical dialogue and the training data; that gap is exactly the Falken fiction, and exactly why the feasibility verdict for open conversation (NO) stands unchanged.

How each layer works ↗

ONE MOVE, ONE PROCESS

The Fortran core does not stay running. For every move, the bridge loads the game's state from the database, runs the core once with the state and the move, and saves what comes back. The bridge holds nothing in memory, and the same state and move always give the same answer, which is what lets the games be tested byte for byte. A 1980s mainframe would have kept one program resident instead; the load, compute, store shape is the same.

CREDITS & SOURCES

No film assets are hosted here: no stills, no audio, no transcript. The machine reproduces only a short, fixed list of the film's own lines, the ones a scene cannot work without.

Credits for the programs themselves are in the pack's CREDITS.md ↗.