Blown-out repro with toner grain.
GLSL fragment shader
The effect's own code. The uniforms and helpers above it — uTex, uFeedback, the depth proxy, the frame ring, depthAt(), timeAt() — are the same header every Ether-MOSH shader opens with, and are documented once on the registry rather than reprinted on all 143 pages.
void main(){ vec4 srcTex = texture2D(uTex, vUv); vec3 c = srcTex.rgb; float l = dot(c, vec3(0.299, 0.587, 0.114)); // Local average decides the cut, so the whole frame doesn't crush to one // tone the way a fixed threshold would. float local = dot(discBlur(vUv, 9.0), vec3(0.299, 0.587, 0.114)); float cut = local + (uBias - 0.5) * 0.45; float toner = smoothstep(cut + 0.05, cut - 0.05, l); toner *= 0.82 + 0.18 * noise(vUv * 420.0); vec3 paper = vec3(0.96, 0.95, 0.92); vec3 res = mix(paper, vec3(0.05, 0.05, 0.07), toner); gl_FragColor = vec4(mix(c, res, uAmount), srcTex.a); }