krisrockwell.io / neuromancer-semiotics
██╹sign mode, and the limit of fluency
Neuromancer · 1984 · 217 coded passages · 69 codes · two passes · a blind re-code that refuted its author · a blind selection test that refuted the corpus
Gibson's novel, coded line by line against Peirce's theory of the sign in ATLAS.ti. The question the instrument was built to ask: what kind of sign has to arrive before a person will grant that a machine has a mind? The answer turns out to be narrow, and it explains why every eloquent machine in the book is ignored.
Peirce sorts signs by how they reach their object. An icon signifies by resemblance — it looks or sounds like the thing. An index signifies by real connection — smoke for fire, a footprint for a foot. A symbol signifies by convention alone — a word, a name, a category.
The distinction is not decorative. An icon licenses no inference about what lies behind it; a thing may resemble a mind and be empty. Only an index asserts that something on the other end caused the sign. If a reader is deciding whether a machine has an interior, the mode of the sign is the whole question.
Every passage in Neuromancer where someone reads, grants, or refuses a mind was marked and coded — the cue on offer, the Peircean mode it was read in, the inference drawn, the verdict reached, and what the verdict was about. Then the whole thing was audited, re-passed, and handed to an independent coder who had never seen any of it.
That single empty cell is the finding. Five machines in this book hold fluent conversation and get nothing back — a door, a talking head made of organ pipes, a Hosaka computer twice, a Mercedes that purrs tourist commentary. None of them draws a pronoun, a pause, or a second glance.
The characters are not being obtuse. In the semiotics the book actually runs on, fluency is the wrong kind of sign to carry the inference. It resembles mind; it does not testify to one. Wintermute's first approach that works is wordless — a packet of cigarettes and a book of matches left where Case will find them. That is an index. Someone put them there.
A third category was needed and it turned out to be the interesting one. contested covers targets whose species the text itself refuses to settle: Armitage, a man rebuilt from a broken soldier by an AI; the Dixie Flatline, a dead hacker on read-only memory; Linda Lee, dead in Chiba and walking on a beach that turns out to be Morocco.
All three explicit affirmations of consciousness in the novel are about contested targets. Nobody ever says outright that a machine has a mind. Nobody says it about a person either. The only entities that draw an unhedged yes are the ones nobody can categorise.
The blind coder also caught the author out. Given the same instruction to record low confidence honestly, they marked forced fit six times and overlap five times across the sample. The original coder had marked one and zero. Across the full first pass, in 551 code applications, the two codes whose entire job is to record doubt had fired zero times.
The asymmetry in which codes each reached for is legible. The blind coder reaches for hedges, defaults, and ambiguity. The original reaches for the codes that make an argument.
Each flat file is rendered as a readable view; every view links back to the file it was built from. The flat files stay canonical — the whole matrix can be recomputed from them at any point, which is what makes the audit possible.
69 codes in fourteen families across three levels — the sign vehicle on offer, the Peircean mode it is read in, the triadic position the passage foregrounds, the inference performed, the verdict reached, how the verdict stabilises or gets repaired, the disciplinary register it is framed in, and a calibration layer whose only job is to record where the instrument breaks.
One rule mattered more than the rest: every passage carrying a cue code must carry exactly one mode code. Optional pairing tests nothing — if the coder can skip the mode when it is hard to call, the matrix fills up only with the easy cases and means nothing.
The first pass broke that rule in 72% of cases, across 21 of 24 chapters, and the coder did not notice. The rule was in a protocol he had written himself. Figure 1 did not exist until the second pass went back and forced the pairing on all 82 passages.
The corpus is the novel split into 24 chapter documents. Coding was driven against ATLAS.ti over its API rather than by hand, which is what makes the audit possible — every code application is a record with a timestamp, and the whole matrix can be recomputed from a flat file at any point. Its own AI coding could not be used: it generates fresh codes and ignores an existing codebook, which is precisely the opposite of applying an instrument.
To regenerate the figures, run the extraction against codes_matrix_pass2.txt; every number on this page comes from that file and reconciles with ATLAS.ti's own groundedness counts.
One code in the book, COUP: hyperstitional loop, exists to catch a fiction that makes itself real - a belief circulating, people acting on it, and the acting producing the conditions that vindicate it. Across two passes and 217 passages it fired zero times.
Not because the novel lacks one. Because the code was defined as a property of a passage, and a loop is a relation between passages separated in narrative time. No span can contain a circuit; spans contain nodes of one. The definition reserved the code for the empty set, and nothing in a frequency table distinguishes absent from the text from unfireable by construction.
Read as a relation instead, the novel gives up a six-node circuit running from Chapter 12 to Chapter 23. Marie-France calls her own creation a demon. The Turing Registry inherits the frame as doctrine and arrests Case to enforce it. Neuromancer then states the mechanism outright:
"To call up a demon you must learn its name. Men dreamed that, once, but now it is real in another way. You know that, Case. Your business is to learn the names of programs, the long formal names, names the owners seek to conceal. True names..."
Demonology becomes the technical practice of learning concealed program names - and the run is won by exactly that operation, a true name sung by two voices. The circuit then closes by erasing its own origin: the merged entity's first act is to rewrite the Turing Registry's records.
That passage was coded in the first pass and read as a nice line about names.
This is the one structure here that an independent reader confirmed completely. Given the six passages scrambled among five decoys, unlabelled, with no indication that any structure existed, a blind reader recovered all six members, assigned all six roles correctly, ordered the circuit correctly, and excluded every decoy - rating their own confidence medium, and flagging the interpretive step honestly: that the Registry's enforcement produces the escape rather than merely failing to prevent it.
The verdict family is unreliable. 33% agreement between two coders. Every headline here — the 14:1 ratio, the three affirmations — sits on it. Read the counts as approximate and the direction as sound.
The verdict family remains the weak point. Two coders agreed on it 33% of the time, and it carries the counts above. The attribution-target facet, by contrast, agreed at 96%, so the machine-versus-human split is the firmest thing here.
Coverage collapsed across the novel, and it was mistaken for enthusiasm. A blind selection test - an independent reader given three chapters and the code definitions, asked only which passages are sign events - found 72 where the original coder found 27. Chapter 6 matched almost exactly (13 against 14). Chapter 20 did not: 5 against 28.
So the corpus is roughly 38% complete by an independent reader's standard, and increasingly incomplete the later the chapter. The earlier report read the rising annotation density as growing enthusiasm; the truth is the reverse. Fewer and fewer passages were marked, and the survivors were annotated more heavily. Every per-passage rate on this page has a denominator that was shrinking for reasons unrelated to the text.
What the same test vindicates: 85% of the passages the original coder did mark were independently marked too, and 100% in the chapter where coverage held. The selection is precise. It is not complete.
One reading was falsified mid-pass and left standing. Chapters 20 and 21 coded Neuromancer's beach as a sign with no object behind it. Chapter 22 names the beach: Morocco, a real coastline where a real woman once camped. The construct is an index after all. The wrong codes were kept, with a memo, because a mode that asserts an absence can never be established by local evidence — which is also, exactly, the position of everyone in the novel who decides a machine is empty.
Corpus: William Gibson, Neuromancer (1984), 79,018 words, split to 24 chapter documents.
Instrument: 69 codes, fourteen families, three levels plus a calibration metalayer. Two passes and one independent blind re-code.
Tooling: ATLAS.ti 26.1.2 driven over its API · pandoc for corpus preparation · figures hand-built as inline SVG.
Colour: surfaces are black with a jade cast, after the Tessier-Ashpool ice — "milky jade", "the distanceless bowl of jade-green ice". The sequential ramp is that jade, single-hue, lightness-monotonic. The categorical triad is assigned by meaning and by the novel's own light: icon #2b93cc blue neon, the T-A cores; index #d6428a Ninsei neon, the hot signal; symbol #c08a1e amber phosphor, a name on a 1984 screen. Validated rather than eyeballed: worst colour-vision-deficient separation ΔE 11.3 deutan and 12.3 tritan across all pairs, worst normal-vision separation ΔE 23.1, every hue above 3:1 on the surface and every text pair above 4.5:1. A jade-and-magenta pairing was tried first and rejected — ΔE 2.8 under deuteranopia. Every value is printed on its mark; colour is reinforcement, never the only channel.
Type: the novel sets machine transmissions letter-spaced, and the chapter files in data/ preserve that spacing byte for byte. So does this page — every label, section rule and figure number is letter-spaced monospace at 0.34em, quoting the source's own typography rather than illustrating it. Display is condensed grotesque, uppercase, optically narrowed. The background is a dead channel: static grain over a scanline, which is what the first sentence of the novel describes.
Status: second pass complete, 19 August 2026. A third pass would rewrite the verdict definitions and test passage selection blind.
Independent of any other work on this site. Built as an exercise in a coding tool and left as a piece.
krisrockwell.io · source: github.com/hybridkris/neuromancer-semiotics