Stage 2 · linear displacement

Move the phone right,
the window goes left.

One to one in millimetres, from the accelerometer. Acceleration integrates twice to reach position, and every error compounds on the way — so the integrator continuously forgets. That is the Hold control, and it is the whole trade: long hold gives faithful centimetres and visible creep, short hold gives a solid centre and movements that fade.

Rotation is separate and stays anchored to gravity, so the horizon never drifts.

deg roll
axis —
Shift X
Shift Y
Speed
Zoom
Motion
Bias settled
Displacement

Linear acceleration source: detecting…

1.2 s

How long the integrator remembers before leaking back to centre. A real 10 mm move lands around 7–8 mm here; push it to 3 s and you capture 9 mm but a residual bias of 0.02 m/s² creeps 180 mm. Nothing gives you both.

130 %

Compensates for what the leak eats. Above 100 % because a normal-speed move only survives partly — this pulls it back toward true one to one.

0.040 m/s²

Soft gate: acceleration below this integrates as nothing. Raise it if the window wanders while the phone sits still; lower it if gentle movements are ignored.

Response
0.25 s
45 ms

Extrapolates rotation forward along the current turn rate to cancel sensor‑to‑screen delay.

Rotation source

Accelerometer anchors the angle, gyroscope smooths it. This is the one you ship.

Sensor axes

Detecting…

Framing
Content & gravity

Gravity sign: normal.