Dropped frames appear as the world jumping during head motion, not slowing
Aliases: frame hitch · world jump · judder under head motion · missed vsync
What it is
On a monitor, a dropped frame makes animation hitch: a character stumbles, the world stays inside the screen. In a headset, during a head turn, the meaning flips — the virtual room should be nailed in space; a missed pose update lets the room ride with the head for a beat, then the next beat yanks it back. What is seen is a wall that jumps, not a film that slows. That hitch under head motion is judder. Its source is a dropped frame; its appearance is a position error, not a stretched timeline.
A dropped frame while staring at an object that moves by itself is the one case that still feels like ordinary stutter.
Why it happens
Screen position of world-locked content is a function of head pose. Between two frames the head turns by θ; the image must compensate by −θ or the room appears to move. Miss the compensation once and the room slides with the head by about θ on the retina; the next frame then applies 2θ at once, so the room twitches. Amplitude tracks head speed: a slow turn, a small jump; a whip-turn, a slab of wall.
Planar animation that drops a frame is sparser sampling in time; motion looks stepped. In a headset a large share of “motion” is the observer’s, so a temporal miss is read as a spatial miss. The same hitch, staring at a menu, may only feel like a pause; turning to look at the room feels like the world slipping.
Reprojection can restore the rotational compensation, so a missed application frame is no longer a missed pose. If the display refresh itself is missed, the jump still follows the geometry above.
Studying it
Inject hitches under controlled head motion: a motorised yaw rig, or a metronome-paced turn. Drop a pose update (or a display refresh) every N refreshes, and film a world-locked mark with a high-speed camera. Control: head still, only in-scene animation dropping frames.
Independent variables: hitch interval, head speed, whether the miss is an application frame or a display refresh. Dependent variables: spatial jump of the mark in arcminutes, a forced choice of “world jumped” versus “animation stuttered”, discomfort ratings.
Do not report fps alone. The same “75 fps” as a steady 75 versus “90 with some misses” produces different jump amplitudes during a turn.
Where it stops holding
Reading or video with the head almost still falls back to ordinary stutter; the jump complaint will not appear. If in-scene animation is what dropped and pose still updates every refresh, the room stays put while a walking character stutters — log those apart, or an animation bug and a pose bug become one hitch. Small chair sway can also make people name other artifacts as jumps; experiments need a head-still baseline.
Applying it
- Accept dropped frames by whether the world stays nailed during a turn, not by whether a third-person recording of the animation looks smooth.
- When shedding load, keep pose update and display refresh first, effects second. An effect hitch must not steal the beat that compensates the head.
- Flag hitches in the profiler during high head speed, not only against session-mean frame rate.
- How to check: film a world-locked vertical line under constant yaw. On a dropped frame the line should draw a horizontal kink, not a recording that merely slows. If the line twitches during turns and is invisible while still, this is the bug — not something “better animation interpolation” will remove.
Related
- Same group: N1.11.1 End-to-end latency is a chain; optimizing only helps the longest segment · N1.11.2 Reprojection decouples render rate from display rate · N1.11.4 Latency jitter is harder to adapt to than mean latency
- Nearby: N1.05 Motion-to-Photon Latency · N1.12 Refresh Rate and Persistence
- Search terms:
dropped frame·judder·hitch