Click the work to strike it — a strike slips the sheet Neutral marks split into separate ink trails

Light / Paper2026

Status
In progress. Forked from Light / Signal, 13 August 2026, and rewritten as its own pipeline
Medium
Generative, screen-native, interactive. Real-time WebGL
Colour
Four process inks on a sheet. No palette
Interaction
A strike slips the sheet, and the separations go out of register
Determinism
Every work is fully determined by its seed
Dependencies
None. No libraries, no external assets
Edition
Not yet set
Working premise

The statement for this series has not been written. What follows is the working premise, and it will be replaced.

The premise here is not the parent's — not a display too coarse to carry the light it is given. It is closer to a claim about reproduction: an image that exists only as four separations, whose colour is an accident of overlap, and whose interaction is a press going out of register.

The fork began as one change: mirror the parent's palette ramps so that the unlit majority of a frame lands on paper instead of on black. That got the value structure right and nothing else, and the reason is the whole argument for this project existing. A mirrored display palette still quantises the image to sixteen indexed entries with a 4×4 ordered dither evaluated on the image's own pixel grid. That is not a halftone screen. It has the image's resolution, it is aligned to the image's axes, and its cell is the image's cell — so it prints as pixels, which is what it is. Every print artefact worth having comes from the screen being independent of the image.

Method — four stages, two resolutions

The image is drawn at around 820 columns; the screen is drawn at up to 2600. The two resolutions are deliberately unrelated, and that is the difference between a halftone and a mosaic.

1 — Emit 2D canvas. Ink laid down as separations. The canvas's three channels are the three chromatic separations — R is cyan laydown, G is magenta, B is yellow — and lighter compositing means overlapping marks add ink, which is what two passes of a press do.
2 — Press GL. Slur, doubling, lost grip, ghost impression.
3 — Tone GL, at the plate's resolution. Density curve, mottle, grey component replacement into CMYK. Key is not drawn by anything: it is pulled out of the chromatic separations, as on a real four-colour job.
4 — Screen GL, at the device's resolution. Clustered-dot halftone on stock.

Colour is four primaries, not a palette

Every colour beyond the three primaries is an overlap. A cyan dot on a magenta one transmits the product of the two and comes out blue, because the screen stage multiplies ink transmittances onto the sheet. There is no table anywhere saying it should.

This is why the parent's eight authored ramps could not survive. A fixed set of entries indexed by brightness is a display's model of colour. A print has four inks and a sheet, and there is nowhere to author a ramp. What a token varies on instead is the press.

Presses offset · newsprint · gravure · letterpress · risograph · screenprint. Each fixes the ink transmittances, the stock, the screen ruling, the dot gain, the ink limit and the GCR. The difference between newsprint and gravure is larger than the difference between any two of the parent's ramps.
Ink mixes On top of the press, a token draws two mixes from the primaries and their secondaries. Thin ink shows the hue while dense ink goes neutral — which is what ink does, and is why a mark here has a coloured fringe that nobody painted.
Gestures impression — a plate bitten and pressed in. Ink is squeezed out from under the plate and pools at the bite line, so the solid is denser at its rim than in its centre.
register — one set of forms, printed once per separation, each plate a few percent out of true. The fringe is not drawn; three plates are simply printed in the wrong places.
bleed — capillary wicking. A machine-made sheet has a grain direction, so the wick is anisotropic and every tendril leans along one axis.
rule — rules and bars inked by a roller that is not perfectly round. Every rule in a set bands in phase, because it is the same roller.
stroke — a wide flat brush, loaded and dragged. Constant width, blunt ends, and the filament tracks are raked back out of the solid: they are bare paper.
overprint — hard-edged flats, each in one primary. The deliberate opposite of the other five, and a demonstration that three inks and a sheet are sufficient.
Faults slur · doubling · wander · clean. A transmission chain and a press fail in the same shapes, because both are a surface moving past a source at a speed that is not quite right.
Screen Clustered-dot, on a Euclidean spot function. Zero at the integer lattice, so coverage grows outward from a cell centre — a highlight is a field of small round dots, not a scattering of lit pixels. Tiles exactly, and is smooth everywhere, so the dot rim can be antialiased at whatever scale it lands at.
Angles Rotated per separation on the classical set — K 45°, C 15°, M 75°, Y 0° — so the four beat into a rosette rather than a plaid. A token rotates the whole set and mis-angles each by a degree or so, which is what makes a real job print a visible moiré.
Dot gain Not a blur. A dot prints wider than the plate asks because ink squeezes out under pressure, and the excess is proportional to the dot's perimeter — so the term peaks at 50% coverage and vanishes at both ends. It is why a heavy-gain press plugs its midtones while its highlights and solids stay put.
Ruling Expressed as cells across the long edge, not in lines per inch, so it is resolution-independent: the same rosette appears in a 400px contact-sheet cell and in a 3750px export.
The space — twelve tokens

Twelve tokens drawn straight from the generator, one per gesture where the draw allows. Reload for twelve more, or explore the space at length.

Because the ruling is expressed in cells across the long edge, the rosette in these small cells is the same rosette as in a full export. Open any one to strike it.