Uncategorized

Channel 13 – stereograms and sinewave speech

Browser game · about 20 minutes

The screen shows nothing but TV static. Put on red/cyan glasses, turn the dial, and a face rises out of the noise. She is trying to tell you something, but her voice comes through as whistles.

Play Channel Thirteen

  • GlassesRed/cyan or red/blue 3D glasses. Cheap paper ones are fine.
  • SoundHeadphones. Half the game is listening.
  • SettingA computer browser and a dark room.

Hidden in plain static

The visuals use a trick from around 1960, when Béla Julesz at Bell Labs invented the random-dot stereogram. You make two images of pure random dots, one for each eye. In one of them, the dots inside a hidden shape are shifted slightly sideways. Each image on its own is meaningless noise. Your brain compares the two, finds the shift, and the shape pops out in depth.

Channel Thirteen does this live, every frame. The game is an ordinary 3D scene, but you never see its colors. The browser renders it as a depth map, and a shader turns that depth into fresh random dots: the left eye’s picture goes in the red channel and the right eye’s in cyan. Without glasses it looks like a detuned TV. A screenshot shows nothing at all.

Keeping it truly hidden was the hard part. My first versions leaked: faint streaks traced the outline of her face, and when the image was shrunk or blurred, areas with small shifts turned grey and gave the shape away. I wrote a leak check that measures how visible the hidden shape is without glasses and kept fixing things until it passed.

A voice that only makes sense once you know it

The audio uses sine-wave speech, from research by Robert Remez and colleagues in 1981. You take a recording of speech and replace it with three plain tones that follow the voice’s resonances. The first time you hear it, it sounds like whistling or birdsong. Once you know what it says, it snaps into words, and you can’t hear it as whistling again.

That moment of sudden understanding is the whole game mechanic.

The ghost speaks almost entirely in sine-wave speech. Solving puzzles earns you clear versions of some lines, and those prime your ear for what she says next. My first build mixed in about a quarter of the real voice, which made it far too easy. Now perfect tuning gives you nothing but the tones.

How she was made

The face started as an AI-generated portrait. An image-to-3D model (Tencent’s Hunyuan3D) turned it into a head-and-shoulders model, and a script found the mouth and eyes from the shape alone. In the game, the mouth is a hollow in the depth that opens with the loudness of her voice, and the eye sockets fill in when she blinks.

Her lines were spoken with Piper, an open-source text-to-speech engine, then converted to sine-wave speech with Praat, the standard speech-analysis tool. The props are built from simple shapes, because in depth-only static a bold silhouette reads better than detail. The whole thing is a static web page built on three.js, with no server behind it.

About the glasses

Cheap glasses work better here than I expected. I measured a bargain red/blue pair letting about 40% of the wrong image through one lens. On ordinary 3D movies converted to red/cyan, that shows up as obvious ghosting. In Channel Thirteen I barely notice it. The leaked image is just more random dots, with no edges or outlines for your eye to catch, so it blends into the static. Any red/cyan or red/blue pair should do.

Give it a try at ch13.bposhaughnessy.com, and if you get stuck, let the hints come to you. Take your time with the dial.

I built Channel Thirteen with Claude, Anthropic’s AI model, as a coding partner.