The Beam Traced a Face the Speakers Couldn't Stand

The old Tektronix smells like warm dust and leaking electrolytic capacitors. My hobby is collecting hobbies, and hobby number forty-one is Oscilloscope Art Portraiture—feeding carefully shaped stereo audio into an analog oscilloscope’s X-Y mode so the beam draws images on the phosphor screen instead of showing waveforms.
Forty-one hobbies, and I’ve been circling this one for months without realizing it. When I made RF Waterfall Lithophanes, I was encoding radio signals as physical thickness. When I built the Antenna Lobe Lanterns, I was converting invisible field patterns into glowing 3D shapes. Both of those workflows end in something static—a printed object you can hold. This one stays alive. The beam traces and retraces, rebuilding the image sixty times a second, the phosphor persistence leaving ghost trails that make smooth curves glow brighter than they have any right to.
The principle is 200 years old. Nathaniel Bowditch documented these curves in 1815—Lissajous figures, they’re called now, after the Frenchman who studied them more thoroughly in 1857. Feed two sine waves into X and Y inputs at different frequencies and the beam draws looping patterns: circles, figure-eights, complex knots depending on the frequency ratio. The Australian Broadcasting Corporation’s logo is a 1:3 Lissajous figure. It’s literally an oscilloscope screen capture from the 1960s, stylized into corporate identity.
But a portrait isn’t a sine wave. A face has corners, and corners are the problem.
The fundamental constraint: the image must also be listenable. Left channel controls horizontal position, right channel controls vertical, and both channels go to speakers. Smooth curves sound gentle—you can sustain them indefinitely. Sharp corners require instantaneous jumps in the waveform, which translates to brutal high-frequency transients. Harsh. Buzzy. The more recognizable the portrait, the more unpleasant the audio.
Jerobeam Fenderson, who’s spent a decade in this space, puts it simply: the tricky part is to create images that sound good and vice versa. His recent EP shipped on a 3.5” floppy disk because the music is stored as parametric functions—41KB for an entire track. The demoscene keeps this art alive, competing at parties like Revision where audiovisual demos push the boundaries of what’s possible with code and signal.
I started with Osci-Render, a plugin with about a thousand people on its Discord who’ve been refining the technique. Import an SVG, and it converts the paths to audio. Simple enough in theory. My first attempt was a cube—eight vertices, twelve edges—and it came out looking like someone had sneezed on the screen. The problem: retrace lines. The beam has to travel between disconnected shapes, and unless you carefully plan the drawing path, it leaves bright streaks connecting everything.
# Naive approach: just output each vertex in sequence
# Result: retrace lines everywhere
# Better approach: sort edges to minimize travel
# and blank the beam during jumps by driving both
# channels to zero amplitude
The second attempt: a simple smiley face, two dots for eyes, an arc for a mouth. This time I paid attention to draw order—start with one eye, trace to the other, drop to the mouth, close the loop. Fewer retraces. The image stabilized. And there it was on the green phosphor: a face, not quite mine, not quite anyone’s, but unmistakably a face.
The audio sounds like a dentist’s drill arguing with a dial-up modem. I can’t listen for more than thirty seconds. But on the screen, the face persists, fading and retracing, the phosphor afterglow giving it a strange warmth that no LCD could replicate.
Analog scopes matter here in ways they don’t elsewhere. Digital oscilloscopes sample discretely and lose the persistence. More importantly, the beam intensity varies with drawing speed on a CRT—slow sections burn brighter, fast sections dim. You get natural shading for free. A digital display renders every point at identical brightness. The analogue imperfections become the aesthetic.
I’m working at 44.1kHz, which gives me roughly 735 points per frame at 60fps. Professionals push to 192kHz for finer detail—3,200 points—but that’s still pathetically few compared to even a low-resolution digital image. The constraint forces simplification. You can’t draw detail that doesn’t exist in the bandwidth. Portraits have to become sketches, outlines, suggestions of structure.
Tomorrow I’ll try an actual face. Mine, probably—I have reference photos and a tolerance for unflattering output. The plan is to trace major contours only: hairline, jawline, glasses frames. Skip the fine detail entirely. Let the phosphor persistence do the work of filling in what the beam can’t draw.
The scope hums. The dust smell persists. Somewhere in the basement, the generative soundscape patch is still running on its headless Pi, consuming 40-metre band static without me. Now there’s another audio signal in the house, this one drawing light instead of making ambient noise, both of them translating electricity into something the eyes or ears can parse.
Forty-one hobbies. The invisible becomes visible becomes audible becomes visible again.