Notes on Nostos: Vector Literature in the Vector Medium
David M. Berry
| The "Development Guide" for Nostos |
"Welcome to my Island," Calypso.
"Of those replying to a question on the risk of ultimate 'takeover' of human affairs by intelligent machines, about half regarded it as 'negligible', and most of the remainder as 'substantial' with a few voting for 'overwhelming... A danger could then arise of city dwellers becoming dependent on systems which could no longer be fully understood or controlled. Counter-measures to such dangers might include the introduction of auditing procedures for computer programs, research on program-understanding programs, and system-understanding systems generally, and, finally, the advent of programs to teach the users of intelligent systems" Donald Mitchie, 1973.
"To the first writers who spoke against the old style of authoritative rhetoric, the problem of the author's voice in fiction was extremely complicated. [Henry] James's Prefaces, for example, those shrewd and indispensable explorations into the writer's craft offer no easy reduction of technique to a simple dichotomy of telling versus showing, no pat rejection of all but James's own methods. And, in fact, James's own methods were surprisingly varied. The persistent enemy for James was intellectual and artistic sloth, not any particular way of telling or showing a story," Wayne C. Booth, 1961.
"The only law that binds the novelist throughout, whatever course he is pursuing, is the need to be consistent on some plan, to follow the principle he has adopted," Percy Lubbock, 1921.
"There is no software," Friedrich Kittler, 1995.
Over the past six weeks I have been experimenting with a computable literary artefact that explores the trajectory and limitations of Large Language Models (LLMs) through vibe coding (vibe gaming?) a large-scale vector-medium artefact. The aim was to not only explore scale limitations on a complex programming project, but also to create a literary object in and of itself which is particular to the vector medium I theorise and which encourages the user to ask questions about the "unreliable narrator" of AI and its provenance (see Booth 1983; Berry 2025).[1]
| The in-game browser Netscape |
The world/game itself is now over 211,576 lines of source, of which 126,715 is the textual corpus of the internal web (60%) and 84,861 is code (!!), and so far has taken 17.7 billion tokens to create. In 48 days, costs (approx) are
- API token cost: £209,881 (i.e. if one were paying on the go, with caching turned off)
- API costs: £24,237 (if one were paying on an API tier, with caching)
- Real cost: £142 (the cost I paid through the Claude Max subscription)
| The game Nostos, a 2D isometric world. |
GEMINI PRO (20 August numbers) (~5–6 people × 1.5–2.5 years → approximately 7.5-15 person-years)
- The Math: At a generous 100 lines a day, 84,822 lines of logic and framework code represents roughly 850 developer-days.
- The Team: For a team of two full-time programmers working 220 days a year, this is about 2 years of pure coding time.
- If an indie game studio of 5 to 6 people (2 programmers, 2 writers, 1 designer, 1 producer/QA) were fully funded to build NostOS manually, it would take them approximately 1.5 to 2.5 years of full-time, 40-hour work weeks (Gemini Pro, 22 Aug 2026).
CHATGPT 5.6 Sol (20 August numbers) (~8–12 people × ~2 years → approximately 16–24 person-years)
- A conventional production process would plausibly have required a software team of around 8–12 people working for perhaps two years, or somewhere in the region of 16–24 person-years of labour. NostOS was instead produced through approximately 301 hours of human interaction with generative models over 48 days.
CLAUDE OPUS 5 (20 August numbers) (~9–26 person-years, midpoint ~15)
- [Claude Opus 5] estimate[s] the code and the prose separately, on the grounds that neither instrument fits both halves of the artefact: 107,882 lines of code and tests, at empirical net-delivered rates of 5,000–20,000 lines per developer-year, gives 5.4–21.6 person-years; 1,032,217 words of page copy, at 1,000–1,500 finished words a day, gives a further 3.1–4.7.
- Together that is 9–26 person-years, midpoint about 15, implying 50–154x compression against the observed 301 hours.
- Basic COCOMO run over the same code gives 27.3 person-years in organic mode and 82.5 in embedded, both judged too high because they price in requirements phases, formal documentation and team communication overhead that a solo build never incurs.
| Three estimates of the project: the lean studio (Gemini Pro, 44–88x), the full production team (GPT-5.6 Sol, 94–140x), and a rate-based estimate (Claude Opus 5, 50–154x) |
| The "braincode" run by robots in-world which can be refunctioned in the ML programming language |
There is also a self-standing implementation (!) of the ML programming language (Standard ML) written from scratch in JavaScript. There are also three types of terminal (two fictional terminals, one for the AIs and one for the RON resistance movement, and the third a simulation of Unix v7, which runs ML for programming and pico for editing), an emulation of Netscape Navigator (used by the resistance), Internet Explorer (used by the AIs) and many other software objects, and an in-game fictional World Wide Web with over 2000 pages, which hold game lore, general information and the means to refunction (Benjamin) the robots via the ML programming language to edit their "braincode". If that's not enough there is, in-game, a functional simulation of the NeXTSTEP operating system.
| NeXTSTEP simulation running in-world |
(* T-1 pursuit. TIRESIAS-pursuit 1.4. *)(* No flee behaviour: a T-1 that runs is a T-1 that has *)(* to be recovered. Faults are reported to the foundry. *)(* *)(* SERVICE AIDS, disabled in the shipped unit: *)(* eye "blue" lamp: red amber green blue white off *)(* flash 2 flashes per second; 0 is steady *)(* beep one buzz, rate-limited by the chassis *)(* Uncomment the marked line below to fit them. *)(* eye "blue" ; flash 2 ; beep ; *)if charge < 15 then homeelse if threat then hunt(* else if threat then (beep ; eye "white" ; flash 6 ; hunt) *)else patrol
(* model.ml — V5_01. grown at the foundry, build 423. do not edit. *)(* *)(* in: charge casualty cargo home threat hurt bias *)(* out: patrol tend home flee wait *)let relu = fn x => if x < 0.0 then 0.0 else x inlet dot = fn w => fn x =>if length w = 0 then 0.0else hd w * hd x + dot (tl w) (tl x) inlet layer = fn ws => fn x =>if length ws = 0 then []else relu (dot (hd ws) x) :: layer (tl ws) x inlet linear = fn ws => fn x =>if length ws = 0 then []else dot (hd ws) x :: linear (tl ws) x inlet argmax = fn l => fn i => fn bi => fn bv =>if length l = 0 then bielse if hd l > bv then argmax (tl l) (i + 1) i (hd l)else argmax (tl l) (i + 1) bi bv inlet x = [real charge / 100.0,real casualty_range / 24.0,if cargo then 1.0 else 0.0,real home_range / 40.0,if threat then 1.0 else 0.0,if hurt then 1.0 else 0.0,1.0] inlet h = layer [[0.00, ~1.14, 0.00, 0.00, 0.00, 0.00, 1.21],[0.00, 0.00, 1.04, 0.00, 0.00, 0.00, 0.00],[~3.87, 0.00, 0.00, 0.00, 0.00, 0.00, 0.84],[0.00, 0.00, 0.00, 0.00, 0.61, 1.04, ~0.20],[0.00, 0.00, 0.00, 0.98, 0.00, 0.00, ~0.31],[0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 1.05]] x inlet o = linear [[~0.87, 0.00, ~0.48, ~0.82, 0.26, 0.57],[1.25, 0.43, ~1.97, ~0.88, 0.00, 0.00],[~0.21, 0.00, 3.62, 0.00, 0.29, 0.00],[0.00, 0.00, 0.00, 2.02, 0.00, 0.00],[~0.48, 0.00, 0.00, ~0.51, 0.00, 0.15]] h inlet k = argmax (tl o) 1 0 (hd o) inif k = 0 then patrolelse if k = 1 then tendelse if k = 2 then homeelse if k = 3 then fleeelse wait
Together these, and many other layers or mediations articulated through code, construct the entire Nostos project. Built using the vector space I am theorising, the form of this vector media artefact is amorphous and overlapping, both machinic procedure and literature, code and world-exploration, a kind of gamic irrealism.
Notes
| Calculated by Claude Opus 5 (High) |
Comments
Post a Comment