Stereoglitch · personal experiment

Stereoglitch

My photography archive forced through a machine that was never there, to see what it invents. None of these frames were shot with 3D in mind: they are flat pictures, from travel and from work, that years later I asked for a second eye that does not exist.

What this is

In my own words

A photograph has one point of view. That is what it is: one eye, one instant, one distance. To see it in three dimensions you need a second eye, and that eye was never shot. It has to be manufactured.

That is Stereoglitch: I take my own pictures — the crocodile in the mangrove, the New York taxis, the newly hatched turtles, a sunset on the coast — and run them through an engine that estimates how far away every pixel sits and rebuilds the missing view. Everything behind a silhouette is, literally, invention. The machine fills a gap nobody photographed.

What interests me is not only when it works. It is where it breaks. The branch that stretches like chewing gum, the melted-plastic halo around a head, the background that tears when the foreground moves too far. That failure has a specific shape, and it is the fingerprint of a machine guessing. Hence the name: stereo plus glitch. I am not hiding the flaw; I am measuring how far it holds before it gives itself away.

The game part is the anaglyph itself. It is an old, cheap, slightly ridiculous technology — cardboard glasses, red and cyan — and that is exactly why it works: no headset, no expensive screen. It is a fairground optical trick that has worked for a century, and it makes the viewer do something physical to get into the picture. Putting the glasses on is agreeing to play.

Everything here runs on code I wrote, not a plugin. I built the engine because the existing tools apply the colour matrices in the wrong space and fill the gaps by pulling the foreground inwards — the two mistakes that dirty the image most. The controls are mine: how much separation to spend, where to place the window, when to throw the colour away because the frame is too warm to survive in colour.

It is an open experiment. It will keep growing as long as the archive holds out.

Through the image

Anaglyph · glasses needed
Machine-generated piece, converted to anaglyph with the same engine · silent · 10 s loop

You need red/cyan glasses to see the effect. Without them the images look doubled — that is normal, it is the two eye signals pulling apart.

The series

images

Monochrome is not a style decision here — it picks itself. Before spending the depth, the engine measures how much signal is left for the cyan eye; if the frame is too warm, it goes to black and white, because in colour it would ghost.

How it is made

Four steps, original code
  1. 01

    Depth

    A monocular model estimates how far away every pixel sits. There is no stereo camera: the second view is inferred from a single frame, and the map is upsampled with a luminance-guided filter so edges do not melt.

  2. 02

    Stereo pair

    Every row is reprojected into two views, half the separation per eye. Splitting the budget symmetrically halves what each eye has to invent behind an object.

  3. 03

    Hole filling

    Where the foreground shifts, a gap appears that nobody photographed. It is filled from the background, never from the subject: seeding it the other way is what produces that melted-plastic halo around a silhouette.

  4. 04

    Dubois encoding

    The matrices are applied in linear light, as they were derived. Almost every tool on the market applies them in gamma space — which is why their results ghost harder in the midtones.

In motion

First experiment with video

The first experiment in motion

This is a drawing of mine, not a photograph — the only thing on the whole site that did not come out of a camera. It is here because video breaks in ways a still image cannot show, and that is exactly what I want to measure.

  1. 01

    Flicker

    Depth is estimated frame by frame, and every estimate wobbles a little differently. Left alone, the whole scene boils. The fix is averaging the depth map against previous frames, not filtering the picture.

  2. 02

    Breathing

    If the stereo window is placed automatically on every frame, the entire shot pumps toward you and away again, like breathing. Here it is computed once, on frame 3, and held for the remaining 237.

  3. 03

    Chroma

    This one surprised me. Video codecs throw away colour resolution: at 4:2:0 colour carries half the detail of luminance. But an anaglyph stores the entire stereo signal right there, in the difference between red and cyan. That is why it is encoded at 1920 instead of 1280 — to end up with the colour detail of the original.

Ten seconds, 24 frames per second. Glasses on before you hit play.

Why monochrome reads better

Retinal rivalry — a pixel bright to one eye and near-black to the other — is driven by saturation. In black and white there is none: both eyes receive identical luminance and the image fuses without effort.

That is why monochrome tolerates more depth than colour, and why warm sunsets — which have almost no blue — are the worst colour candidates.

  • Dubois in linear light — as the matrices were derived, not in gamma space
  • Hue protection — only hues sitting on the red and cyan axes are desaturated
  • Automatic convergence — the window is placed by reading the depth at the frame edge
  • Own engine — original code, Apache-2.0 licensed models
Coming soon

The print edition is not for sale yet.

The work exists and the engine runs. The edition opens when the print medium and shipping are settled — not before. When it opens, it is announced here.