PATINA

digital aging through gpu corruption

Patina is not glitch made quiet. It is the opposite of glitch: where glitch ruptures, patina accumulates. Where glitch is instant, patina is geological. The reaction-diffusion simulation runs on a WebGPU compute shader, and its state persists across your visits. Each return, the chemistry has shifted. The palette warms. The math loses precision.

The GPU itself participates in the aging. Workgroup seams — the boundaries where parallel compute groups meet — create faint grid artifacts that intensify over time. Precision quantization drops the simulation from 12-bit to 8-bit resolution as the system ages, so the math literally forgets its precision. Buffer boundary wrapping at the simulation edges creates discontinuities that the patina exploits.

Rosa Menkman asked what the vernacular of file formats is — each encoding has its own failure signature. This asks the same question of the GPU pipeline. The errors are not bugs. They are the fingerprint of the medium.

visit #0
age: 0.0%
decay: active
click + drag or arrows + enter to erode
hover to reveal substrate

Vernacular of GPU Failure

Workgroup Seams
WebGPU compute shaders execute in workgroups of 8x8 threads. At the boundaries between groups, slight timing differences in parallel execution create asymmetries in the diffusion. Here, that asymmetry is amplified — a faint grid emerges in the reaction-diffusion field, visible when toggled. The seam is the GPU's handwriting.
Precision Quantization
The simulation quantizes values to fewer significant bits as the system ages. At 12 bits, the reaction-diffusion runs smoothly. At 8 bits, visible stepping appears — the math can no longer represent the subtlety it once could. This mirrors how repeated JPEG compression degrades an image, but operating on the computation itself rather than its output.
Buffer Boundary Artifacts
The simulation wraps at its edges via modular arithmetic. Where this wrapping creates discontinuities in the Laplacian stencil, the reaction-diffusion develops edge-specific patterns. Rather than masking this with boundary clamping, the installation amplifies the discontinuity. The border is a wound in the simulation's topology.
Temporal Dithering
Each pixel receives a per-frame noise offset at the least-significant-bit level. Like phosphor persistence on a CRT, this dithering prevents the clean digital quantization that would betray the medium. The noise is the breath of the display.