HomeJournalThis post

Risograph Color Separations From Code

A seeded composition becomes two grayscale Riso plates with measured coverage, overprint regions, registration marks, traps, and a physical-proof receipt.

JP
JP Casabianca
UI/UX designer and full-stack engineer · Bogotá

Risograph color separations are grayscale printing instructions, not a screen duotone flattened into RGB. Each plate controls one spot ink; where the plates overlap, paper, ink order, opacity, and registration create a third material color.

This generative printmaking study turns one seed into two reproducible plates, measures coverage and overlap, adds registration marks and trapping, and exports a proof contact sheet. The screen preview is a planning aid; the physical Riso print remains the color authority.

Risograph color separations and overprintA teal grayscale plate and a fluorescent orange grayscale plate combine into an overprint proof with controlled shared regions and registration marks. TEAL PLATEORANGE PLATEOVERPRINT PROOF
Figure 1: Two independent ink instructions create a material third color only where their printed regions overlap.

Plan Risograph color separations as two plates

Choose two available inks, paper stock, print order, trim size, bleed, and the composition's intended third-color overlap before generating pixels. The example uses a cool dark plate for structure and a warm fluorescent plate for interruptions, but names are illustrative until matched to the studio's actual drums and swatches. Each output file is grayscale: black means more of that ink and white means paper.

A composite preview tints the plates only to communicate intent. It must retain labels so nobody mistakes an RGB mockup for measured spot color printing.

Runnable artifact: The seeded plate generator produces two deterministic one-bit masks, confirms an overlap region, and hashes the combined grayscale plate bytes. Its riso-plate-generator.test.mjs receipt keeps the article's simplified boundary executable and reviewable.

Save the inspectable proof as riso-plate-generator.test.mjs and run node riso-plate-generator.test.mjs. Expected final line: PASS: two plates reproduced.

import assert from "node:assert/strict";import crypto from "node:crypto";
const plates=(seed,w=16)=>{let x=seed;const next=()=>((x=(x*1664525+1013904223)>>>0)/2**32);const a=[],b=[];for(let i=0;i<w*w;i++){const v=next();a.push(v>.46?255:0);b.push(v<.62?255:0)}return {a,b}};const one=plates(73),two=plates(73);assert.deepEqual(one,two);const hash=crypto.createHash("sha256").update(Buffer.from([...one.a,...one.b])).digest("hex");assert.equal(hash.length,64);assert.ok(one.a.some((v,i)=>v&&one.b[i]));console.log("PASS: two plates reproduced");

Generate one deterministic source composition

Use a named seed, canvas dimensions, coordinate system, primitive recipe, and generator version. The fixture places a quiet field of discs, a directional band, and a sparse set of type-like bars; those forms are chosen to expose coverage and registration rather than demonstrate random variety. Keep geometry in normalized coordinates until export, then record raster dimensions and resolution.

The same seed should reproduce identical source geometry before separation. Determinism supports edition repair and critique, but it does not guarantee the printer, paper, and ink will reproduce identical material results.

Build grayscale plate functions

A duotone separation can assign luminosity ranges, semantic shapes, or authored masks to each plate. This study uses authored ownership plus controlled shared regions: structural bars favor the dark ink, circular interruptions favor the bright ink, and selected intersections print on both. Represent coverage as values from paper to full ink rather than premixed RGB.

Apply tonal curves per plate with documented thresholds and preserve an unclipped diagnostic export. If source photography is used, compare channel and gradient-map approaches against the intended ink behavior instead of relying on one automatic conversion.

Control coverage, overprint, and paper

Measure average and peak coverage for each plate, total area above thresholds, and overlap area. Very dense solids can behave differently from open halftones, so the limits come from the studio and physical proof, not an invented universal percentage. Build an overprint preview using photographed or measured swatches when available, while labeling it as a simulation affected by display and profile.

Paper color is an active third participant: unprinted negative space changes both inks and their mixture. Compose with those material relationships rather than treating separation as post-production.

ControlTeal plateOrange platePhysical proof
RoleStructureInterruptionVisual hierarchy
CoverageMid-densitySparse accentsInk laydown
OverlapShared masksShared masksThird color
OffsetReferenceSweep ±2 mmRegistration plateau
Figure 2: Every plate decision connects a digital control to a physical observation.

Design for Riso registration tolerance

Riso registration varies with machine, paper, feed, temperature, and repeated passes, so the composition needs a tolerance strategy. Add registration marks outside trim and a controlled offset atlas that shifts one plate horizontally and vertically. Decide where misregistration is expressive and where it damages legibility.

A small trap or spread can prevent accidental paper slivers around critical overlaps, but it changes the artwork and must be authored. Keep fine reversed type and hairlines away from fragile two-plate alignment unless the physical proof demonstrates a stable plateau.

Choose halftone and texture intentionally

Grayscale tones become printed patterns according to the machine and preparation workflow. Test flat fills, gradients, image textures, and any selected halftone treatment at final scale. Avoid stacking independently chosen screens that create an accidental moiré unless interference is the concept.

The generator can add seeded grain, but distinguish digital texture from machine texture and paper absorption. Export a tone wedge on both plates and an overlap wedge so the proof documents what the material stack actually produces. That wedge becomes more useful than a remembered preference when the edition is reprinted.

Export production files and a human-readable map

Produce one correctly sized grayscale file per ink with consistent orientation, resolution, bleed, and registration marks. Filenames include edition, plate number, ink, dimensions, and revision. Include a low-resolution composite preview, plate thumbnails, ink and paper notes, print order, trim box, expected offset tolerance, and source hash in the handoff.

Confirm whether the studio wants PDF, TIFF, PNG, or another format and how it interprets black. Open the final files independently; a two-page document can still be misread if its pages are not unmistakably labeled.

  1. 1Compose

    Freeze seeded geometry

  2. 2Separate

    Emit two grayscale plates

  3. 3Calibrate

    Print tone + offset atlas

  4. 4Edition

    Archive physical receipt

Figure 3: The code prepares evidence; the press decides the final material revision.

Let the physical proof close the edition

Print the calibration strip and a representative crop before the full run. Photograph it under documented light with a neutral reference if color communication matters, but keep the physical sheet as authority. Record registration range, solid coverage, small-detail survival, overlap mixtures, setoff or drying issues, and operator adjustments.

Feed those findings into generator parameters and produce a new revision rather than editing one plate manually without provenance. Risograph color separations pass when code, files, machine setup, and material proof tell one coherent story.

Carry screen decisions all the way to the press

RISO's spot-color guidance belongs beside the University of Illinois raster file-preparation sheet and the Risograph Museum's separation explainer. For deeper generative-print experiments, compare CMYK halftone rosettes, seeded randomness, lenticular interlacing, and moiré interference; all four expose how repeatable code meets registration, sampling, and physical output.

Design the proof strip as part of the artwork

Reserve one edge of the sheet for tone ramps, small reversed marks, trapping variants, and a registration sweep from negative to positive offset. Generate that strip from the same seed, transforms, screen rules, and plate coordinate system as the composition, then print it before the edition image. Risograph color separations improve when the proof identifies the density range, overlap mixture, and misregistration plateau the physical machine can sustain; those observations should revise generator parameters, never disappear into undocumented manual plate edits.

Write the accepted tone range, overlap mixture, offset window, paper, ink order, drum, and operator adjustments back into a versioned edition manifest. Risograph color separations are reproducible only when the next print can connect generated grayscale values to a physical proof; a source-code seed without the press conditions reproduces geometry, not the artwork's material result. Photograph the control strip beside the accepted sheet under the same neutral light so a later edition can compare dot gain, alignment, and overlap drift against a named material reference.

DecisionEvidence retainedStop condition
Plan Risograph color separations as two platesmachine and studio, ink names and drum condition, paper, plate order, trim and bleed, intended overlap role, and preview disclaimerthe production handoff contains only one flattened color image
Generate one deterministic source compositionseed, generator commit, dimensions, resolution, primitive parameters, source-geometry hash, and edition identifiera rerun produces visually related but non-identical plate ownership
Build grayscale plate functionssource primitive or tone, plate assignment rule, curve, threshold, grayscale convention, overlap mask, and diagnostic histogramseparation logic cannot explain why a visible region belongs to one ink
Control coverage, overprint, and papercoverage histogram per plate, overlap percentage, paper identifier, preview source, ink order, and any studio-advised density limitsthe composite preview is described as an exact prediction of dried ink
Design for Riso registration toleranceregistration marks, offset atlas range, acceptable x-y window, trap width, critical alignment regions, and measured proof notesperfect pixel registration is assumed because the exported files align
Choose halftone and texture intentionallyscreen or machine settings, tone steps, digital texture seed, scale, overlap wedge, scan or photograph conditions, and selected rangea monitor zoom is used to approve final dot behavior
Export production files and a human-readable maptwo production filenames and digests, dimensions, profiles, plate labels, print order, trim and bleed, and approved studio formatone plate is inverted, rescaled, or assigned to the wrong ink during handoff
Let the physical proof close the editionproof sheet ID, machine, operator settings, paper and ink lots, observed registration, accepted tone range, photographs, changes, and final revisionthe edition proceeds from the screen mockup after the proof reveals unreadable overlap or unstable alignment
Risograph color separations decision ledger. The Risograph color separations ledger carries digital plate intent into the paper proof that can confirm or reject it.

Risograph color separations finish on paper, where ink, order, pressure, and registration become visible. Archive both grayscale plates with the physical proof and exact generative recipe.