Milo BRAND + INTERFACE SYSTEM V1.0
07Dither Engine

Nature ↔ computation. Art ↔ data.

Dither is Milo's signature behaviour: the visible moment where the raw becomes the interpreted. Printmaking, scientific imaging and museum conservation, not glitch.

ENGINE engine/core.jsEFFECTS 18MATRICES bayer2/4/8 · FS · Atkinson · halftoneDETERMINISTIC seeded PRNG
Signature transition07.1

Original → pixels → dither → channels → interpretation → data, in 1.4 seconds, from a cached final frame.

ORIGINAL
Carol M. Highsmith
Half Dome, Yosemite National Park
2013 · LC-DIG-highsm-25622
Library of CongressNo known restrictions
  1. 01original
  2. 02pixels emerge
  3. 03dither spreads
  4. 04channels separate
  5. 05interpretation resolves
  6. 06data layer appears

1.4 s, print easing. Under prefers-reduced-motion the final frame is drawn at once. Frames are computed from a cached final; nothing is recomputed at rest.

Effects07.2

Every primitive, rendered here, now.

Eighteen effects and seven matrices, each run live on one image and timed on this machine.

One nature image, 320px working width, each effect timed on this machine. Effects are adjustable, reusable, non-destructive and config-driven; the playground exposes every parameter.

NASA · Landsat 7
Lena Delta
NASA Image and Video LibraryPublic domain
Config07.3

A recipe is a plain object.

Tokens resolve the colours; the engine renders the same pixels in the browser and in Node.

The engine takes the config unchanged. Tokens resolve colours before the engine sees them, so the same object renders the same pixels in the browser, in a worker and in Node, where every derivative in this package was produced.

The example config from the brief
{
  "effect": "tritone-dither",
  "shadow": "#0B0C09",
  "midtone": "#758C3A",
  "highlight": "#F04A24",
  "matrix": "bayer8",
  "strength": 0.68,
  "grain": 0.08
}
Performance07.4

Fast enough to be invisible.

Tens of milliseconds per recipe at derivative width; nothing recomputes at rest.

Node, single thread, ≤1200px working width, 60 art and nature originals:

Node benchmark, all recipes
recipenmean msminmax
archive6033876
paint406329168
national-park605215105
nous6036979
field-study20521699

Browser timings appear next to each effect above and in the transition readout. Working width is capped at 1600px; previews at 720px; results cached per image, recipe and size; OffscreenCanvas used for decode where available.

  • Cyberpunk glitching
  • VHS tracking
  • Random distortion
  • Continuous recompute at rest
  • Ordered, error-diffusion, halftone
  • Plate separation, registration
  • Edge extraction, grid sampling
  • Controlled, seeded distortion