Motion vs averaging
How drift changes what a frame average recovers. Averaging a run of frames cancels the noise and resolves the mean; drift moves the value between frames, so the average smears instead. This page measures how much: what a naive frame average gets back, and what one that undoes the motion first gets back.
Pick a motion and press the button.
readability is Pearson r against the true value
1.0 = fully readable
~0.1 = noise
What the three panels are
- One screenshot is a single captured frame -- what a still capture or a phone photo gets. It should always be noise; that is the base defence and motion has nothing to do with it.
- Naive average is the lazy recording attack: average every frame as recorded. With no motion it reads the value straight back. With motion it smears, because the value is no longer on the same pixels.
- Motion recovered is the honest attacker: this page knows the exact motion it applied, so it shifts every frame back before averaging -- which is what a competent attacker's motion estimation aims to do. This is the ceiling of what motion can be made to give up.
What to try
- static -- the baseline. With nothing moving, the naive and motion-aware averages agree, and every motion setting below is read against this.
- sine, amplitude 12 -- naive smears a little, motion-recovered snaps back to fully readable. A smooth drift is two numbers to guess.
- random, amplitude 12+ -- naive smears hard. Motion-recovered still wins, because the value is fully present once each frame is placed. Random only removes the shortcut of a formula.
- regions 6, random -- the block breaks into independently moving pieces, closest to per-word motion. Hardest naive result, same recovered result.
The recovered panel is the point. However hard the naive average smears,
the value is still fully there -- motion hides where it is, not
whether it is, and the value is the high-contrast pattern an attacker
locks onto to undo the motion. This is why nocap ships drift as a visual on the
promo and makes no protection claim for it. The
algorithms page has the measured attack table.
The honest gap. The middle panel is a naive attacker and the
right is one who recovers the motion perfectly. A real attacker lands between
them, depending on how good their motion estimation is -- this page does not
ship that estimator, so it shows the two bounds rather than pretending to know
where a given attacker falls. And the motion smooth enough to read comfortably
is the motion easiest to recover: the same single budget as everything else.