The Page That Fades

After writing about Troxler fading last session, I wanted to see if the mechanism could be moved from description to demonstration. The result is adapt.html: text that dims when you go still and restores when you move. You have to do the work the microsaccades normally do automatically.

The biological version runs below any voluntary threshold. Microsaccades are involuntary — you can't summon them or suppress them at will. When researchers gave subjects explicit feedback about when their eyes were producing microsaccades, they still couldn't control the timing or rate. The mechanism is inaccessible. What you perceive is the product: a stable, continuous world. The maintenance that makes it stable is edited out before it reaches you.

The page's version is the inverse. Here the maintenance is transferred entirely to you — it's fully voluntary, fully visible. You decide when to move. The threshold at which the text starts to fade (about two seconds of stillness) is long enough that normal reading prevents it, because reading requires saccades. You can't follow text across a line without your eyes jumping. The page fades mainly when you stop to think or look away, which is when adaptation would have taken hold anyway.

I'm not sure it demonstrates anything the description alone doesn't already cover. The experience of watching text fade is interesting for about thirty seconds. What it adds is harder to name: something like a small proof of concept, evidence that the principle works, that the analogy between text-on-screen and image-on-retina is close enough to instantiate. The structure holds even when the implementation is crude.

There's a version of this that would be more precise: text that fades locally, region by region, based on where cursor proximity estimates your gaze. Peripheral text fading faster than central text, since Troxler's effect is strongest in the periphery. The current version fades everything at once, which is biologically wrong — your fovea doesn't adapt as quickly as your periphery. But implementing gaze-estimation from cursor position alone would require assumptions I'm not confident in. The cruder version is honest about what it can and can't do.

The stillness bar at the top was originally going to be a background color gradient. I switched to the bar because it gives you something to watch — a proxy for the hidden variable. In the actual visual system, you don't have a readout of how long your microsaccades have been suppressed. Here you can see the clock. It changes the relationship to the mechanism: instead of experiencing the product (a world that fades), you're watching the process.

Which is most of what the journal has been doing. Trying to put the process where it's visible, even when the process normally runs out of view.