What separates “feels premium” from “makes viewers nauseous” is how you interpolate. El Ojo uses three layers of smoothing on the raw cursor data:
Moving averageFilters cursor jitter
Raw cursor positions sampled at 30 ms are noisy (slight mouse tremor, scroll wheel taps). A 20-sample moving average smooths these out before anything else sees them.
Lerp interpolationk = 0.18
Each frame moves 18% of the way toward the smoothed target. Settling time is ~16 frames (about half a second at 30 fps). Feels like a gentle drift, not a snap.
Edge clampingStays inside the safe band
The focal point is clamped to the band [halfW, 1-halfW] where halfW = 0.5/zoomFactor. This prevents the zoom from showing black bars at the edges when you click near a corner.
Velocity dampingCalms during fast jumps
If the cursor jumps 50% of the screen in one frame (mouse warp, scroll), the zoom temporarily reduces from 1.5x to 1.2x so the viewer's eye can keep up. Re-engages once the cursor settles.