nobody's
clock
/tech

HOW THE MACHINE WORKS · RETURN TO THE CLOCK

SUBSTRATEone file

the entire work is a single html file. no frameworks, no libraries, no fonts fetched, no requests made, no assets beyond the text of the poem. open it on a machine with no network connection and it runs identically, indefinitely. everything described below, the clock, the collage, the toner, the decay, is plain javascript drawing to one canvas.

this is not a constraint i suffered. a work that claims to hold the entire odyssey should be holdable itself: one object, complete, with nothing outside it that can rot.

TIMEthe line clock

the odyssey has twenty-four books. the day has twenty-four hours. book I is assigned to midnight, book XXIV to eleven pm. that is the whole mapping, i did not design it, i noticed it.

within each hour, the current book is recited in order. the book's text is split into lines at sentence boundaries, and the line being spoken is a direct function of the clock:

age  = (minutes*60 + seconds) / 3600      // 0 at :00, 1 at :59:59
line = floor( age * book.lineCount )       // advances through every line, in order

books run roughly one to two hundred lines each, so a new line surfaces every twenty or thirty seconds, and every line of the poem passes through legibility exactly once per day. nothing is excerpted; nothing is skipped. the famous moments are not curated, they occur wherever the poem's own structure places them, at the same time every day:

DAILYEVENT
00:00tell me, o muse, the invocation, first line of the day, on a clean page
08:00–09:00the cyclops: noman is named mid-hour, on a page already breaking
20:00–21:00the bow is strung
23:00–24:00the covenant of peace, read through the day's last and worst copy

SURFACEthe collage grammar

every few seconds the page recomposes itself, a hard cut, no transition. each composition is assembled from a fixed grammar of elements, and every element is generated from the current book's own text. the vocabulary:

ELEMENTSOURCE
microtext columnsrandom windows into the book's complete text, set too small to read, the poem as texture
display stacksthe book's number, title and keyword, repeated at large sizes until type becomes pattern
halftone massesprocedural dot fields standing in for the pasted photographs of a photocopied broadsheet
redaction blockssolid toner rectangles
checkerboard chips, script accents, caption clustersthe marginalia of the page, including a live count of which line of which book you are hearing
the linethe one legible layer: the sentence currently being recited, knocked out on clean paper

there is no image anywhere in the work that is not made of the poem's words or of raw toner.

INKthe one-bit pass

the composition is drawn normally, then destroyed into print. every pixel is reduced to a single decision, toner or paper, by ordered dithering against a 4×4 bayer matrix:

BAYER = [ [ 0,  8,  2, 10],
          [12,  4, 14,  6],
          [ 3, 11,  1,  9],
          [15,  7, 13,  5] ]

lum = r*0.299 + g*0.587 + b*0.114 + noise
ink = lum < 128 + (BAYER[y&3][x&3] - 7.5) * 4

there are no grays in the work, only patterns of black that read as gray from a distance, the same trick as every photocopied zine ever stapled. the buffer is composed at half resolution and upscaled without smoothing, so the toner stays chunky. this page obeys the same rule: every tone you see here that is not pure paper or pure toner is a dither pattern, not a gray.

ENTROPYcell treatment

each hour is a copy, and the copy does not survive the hour. the damage is not noise, it is wrong blocks. the frame is divided into a grid of macrocells, and as the hour ages, cells fail in one of three ways:

if (op < 0.45)      displace   // cell content copied from a wrong source vector
else if (op < 0.72) smear      // one cell repeated along a horizontal run
else                quantize   // cell collapses to solid toner or solid paper
DISPLACE SMEAR QUANTIZE
FIG. 1, THE THREE FAILURE MODES OF A CELL

damage accumulates on a quadratic ramp, the target number of failed cells is proportional to age², so the first half of the hour reads as a page with mistakes, and the last minutes read as a page losing the ability to be a page. smears repeat cells that contain letterforms, so language visibly stutters as it breaks. at the top of the hour the damage list is discarded and the next book arrives clean. transmission failure, then retransmission.

CHANCEno day repeats

two separate sources of difference, deliberately unequal:

the compositions are seeded. the layout generator is driven by a deterministic prng whose seed mixes the hour, the recomposition count, the current line, and the date. same poem every day, never the same page.

seed = hour*7919 + variant*104729 + line*31 + date*2654435761

the decay is not seeded at all. which cells fail, how they fail, and where their wrong content comes from is drawn live from the machine's own randomness at the moment of failure. it is recorded nowhere and derivable from nothing. the poem is identical every day; its dying is unrepeatable. you cannot come back tomorrow and watch the same death.

PROOFthe entire text, verifiably

the embedded corpus is the complete public-domain samuel butler translation of the odyssey, project gutenberg etext #1727, all twenty-four books, verbatim, injected into the file at build time. the work does not ask you to trust this. at runtime it computes the sha-256 of its own corpus and prints it in the top-right corner of the page:

92292fdd4cb6e6592152aed7e37bb8f1c0ebaddd350dec1602477929c9c9ee95

to verify it yourself: view the source of the work, find the TEXTS array, twenty-four strings, one book each, join them with a newline, and hash the result with any sha-256 implementation you did not get from me. compare against the corner of the page. if they match, every word of the poem is present. the claim "the entirety of the work" is not a description here; it is a checkable property of the file.

COLOPHONnotes

the type is drawn from the system fonts of whatever machine is watching, so the letterforms differ slightly between machines, and no two devices print the poem identically. i considered embedding a typeface and decided against it: a work about transmission variance should be subject to some. the wordmark on this page is the exception: it is set in latrodectus hasselti, embedded here in full so this document, like the work, asks the network for nothing.

the bar at the bottom of this page is the same player chrome as the work itself, except here the scrubber tracks your position in this document, told as a time of day. you began reading at midnight.