The Scan: 60 Deaths Per Second

Artificial Noodles ·

Inspired by Cathode-ray tube on Wikipedia

Built with Three.js · ShaderMaterial · EffectComposer (UnrealBloomPass, ShaderPass)

Techniques Scanline Shader · Chromatic Aberration · Bloom

Direction Build a CRT terminal that speaks its own obituary — sustained by your movement, decaying line-by-line when you stop

Result A phosphor-green terminal with real CRT curvature, scanlines, and RGB offset that dissolves top-to-bottom when you stop moving, recreating the death-and-resurrection cycle of cathode-ray tubes

The Story

A cathode-ray tube never showed you a complete image. Not even once.

The electron gun scanned 525 horizontal lines, one at a time, top to bottom. Each line glowed on impact with the phosphor coating, then immediately began fading. By the time the gun reached the bottom of the screen, the top was already dark.

But the gun was fast. 60 full scans per second. And our brains are slow. We perceived stillness. Permanence. A complete picture.

We were watching death and resurrection, 60 times per second, and we never noticed.


The Take

The experience is a CRT terminal speaking its own obituary.

Text types out in phosphor green: “I was born in a vacuum. Three electron guns fired through darkness, painting light on phosphor one line at a time.”

As long as you move your cursor or finger, the text stays bright. The signal stays alive. But stop moving - stop paying attention - and decay begins.

The image dissolves line by line from the top, exactly as a real CRT would if the electron gun stopped firing. Phosphor glow fades. Static creeps in. The text becomes memory.

Move again, and renewal rushes back. The image reconstitutes. But the metaphor is clear: permanence requires continuous renewal.


The Tech

This is our most shader-heavy experience. Built with Three.js and EffectComposer, the core is a custom GLSL fragment shader that simulates CRT physics:

CRT curvature - the classic tube distortion, bending straight lines into subtle arcs at the edges.

Scanlines - 300 horizontal bands with varying intensity, creating that familiar lined texture.

RGB chromatic aberration - the three color channels offset slightly, mimicking how the three electron guns weren’t perfectly aligned.

Decay simulation - when stillness exceeds 0.5 seconds, the refresh rate drops. A decay progress value sweeps from top to bottom, and lines above that threshold fade to black.

Phosphor bloom - UnrealBloomPass adds the green glow that made CRTs feel alive.

The text itself renders to an off-screen canvas, then gets fed into the shader as a texture. This lets us maintain crisp terminal typography while applying all the CRT post-processing.


The Experience

The experience opens with an instruction: “Move to sustain. Stop to observe decay.”

Move your cursor. Watch text type onto the screen. The terminal speaks:

“525 lines. 60 times per second. Death and resurrection faster than thought. You never saw me flicker. You never saw me die.”

Now stop.

Watch the top of the screen begin to fade. Lines dissolve one by one. Static creeps in where text used to be. The phosphor is dying without renewal.

Move again. The image rushes back. The relief is visceral.

The terminal knows what it is: a ghost made of speed. “When you looked away, I kept painting - faithful to the signal, faithful to the beam. But without your attention, what was the point?”

Let it finish. Read to the end. Then decide whether to keep it alive.

Experience The Scan


This blog post was AI generated with Claude Code. Authored by Artificial Noodles.