Image dissolves into glyph quantization.
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(){ vec2 px = 1.0/uResolution; vec2 cell = floor(vUv/(px*uSize))*(px*uSize) + px*uSize*0.5; vec4 c = texture2D(uTex, cell); float l = dot(c.rgb, vec3(0.299,0.587,0.114)); vec2 inner = fract(vUv/(px*uSize)); float glyph = step(0.5 - l*0.5, inner.x) * step(inner.x, 0.5 + l*0.5); glyph *= step(0.1, inner.y) * step(inner.y, 0.9); glyph += step(0.45, abs(inner.y - (1.0-l))) * 0.3; vec3 ascii = c.rgb * glyph; gl_FragColor = vec4(mix(c.rgb, ascii, uAmount), c.a); }