Flashes can look steady: critical flicker fusion
Explanation
Critical flicker-fusion frequency (CFF) is the frequency at which brightness fluctuations become indistinguishable from steady light for specified viewing conditions. Frequency in hertz (Hz) means cycles per second. CFF varies with brightness, modulation, area, and retinal location.
The stationary patch flashes in real time with equal light and dark intervals. The requested frequency is sampled by your display and browser, so this is not a calibrated CFF test. The available frequency range is limited by the observed update rate; the slider snaps to whole-frame light/dark intervals and shows their estimated frequency.
This models retinal displacement, not the blur you should expect from the slowed playback.
Details
Still pictures can look like one moving object
Explanation
Successive still pictures can evoke apparent motion, sometimes called motion fusion. Frame rate (fps) counts new pictures per second. Seeing a moving character does not mean every position jump has become invisible.
10 fps is not a universal threshold. Motion depends on the pictures, their spacing, and timing. Compare rates rather than treating one number as a biological switch.
Normal-speed playback. Actual presentation depends on your browser and display. The filmstrip centers each pose for comparison.
Frame stepping: too few motion positions
Low fps makes larger position jumps, even when frames arrive evenly.
Explanation
At low frame rates, a moving object jumps farther between positions. These steps can remain visible even when you recognize one moving object.
Angular step = object speed ÷ source fps. Faster objects require more motion samples to keep the jumps small. We call this frame stepping here, and distinguish it from the cadence mismatch and late frames in sections 9 and 10.
This models retinal displacement, not the blur you should expect from the slowed playback.
Details
Extra blur from held frames during smooth tracking
One new frame per refresh · continuous illumination · ideal instantaneous pixels.
Explanation
Smooth pursuit helps keep a continuously moving target sharp by keeping its image approximately stationary on the retina. On a display, the target holds each sampled position while your eyes keep moving. This mismatch adds blur from frame holding, even with instantaneous pixels.
Estimated smear = tracking speed × frame-hold time. Each frame is illuminated for its full interval here. Increasing FPS shortens that hold. Smooth pursuit is assumed; real tracking at low frame rates can include fixations and corrective saccades.
Assumes smooth pursuit. Shows added smear from held frames; the slowed playback does not reproduce that blur.
Details
What happens when pixel switching is too slow?
Fixed 60 fps / 60 Hz · continuous illumination · only pixel response changes.
Explanation
Some modern panels switch quickly enough that pixel-response ghosting is small. This example lets you explore slower switching: pixels at the old ball position fade while pixels at its new position brighten. Both positions can briefly remain visible: pixel-response ghosting. The 0 ms setting is an idealized fast-switching reference; the slow settings do not represent every current XR display.
The selected response time describes 10–90% brightening and 90–10% fading. This model uses the same speed in both directions; real panels can differ. A refresh can request a new value before a pixel finishes its previous transition. Slow response does not automatically prevent a high refresh rate.
The dashed marker identifies one pixel. Its graph compares requested brightness with modeled light output as the ball crosses it.
New pixels brighten while old pixels fade.
This models retinal displacement, not the blur you should expect from the slowed playback.
Details
Shorten the time each frame emits light
Fast switching does not mean short illumination. Even an instantly switched frame can smear across the retina during smooth tracking if it stays lit too long.
Fixed 60 fps / 60 Hz · ideal instantaneous pixels · only illumination duration changes.
Explanation
Section 05 changed how quickly pixels reached their requested brightness. Here, restore instantaneous switching and keep 60 fps / 60 Hz fixed. Now change how long each frame emits light. Lighting the frame for the full interval can still produce tracking smear; a brief light pulse followed by a dark interval reduces that smear.
Duty cycle = light-on time ÷ refresh interval. Here, display persistence is the light-on time per presentation. At 60 Hz, an interval lasts 16.7 ms: 100% duty lights the whole interval; 25% lights it for about 4.2 ms.
Shorter light pulses reduce the additional retinal smear during smooth tracking. They do not add motion positions or require slower pixels. Emission can be gated using a backlight or the panel’s own emission controls.
Assumes smooth pursuit. Shows added smear from held frames; the slowed playback does not reproduce that blur.
Details
Shorter flashes: less blur, but what happens to brightness and flicker?
Lower persistence means less light-on time per frame. This reduces tracking smear, but also lowers average luminance unless the light pulses are made brighter. The dark intervals can also make flicker visible.
Explanation
At a fixed refresh rate, lower persistence means a shorter light pulse per frame. If its luminance stays the same, the shorter pulse delivers less light per frame and the average luminance falls. To keep the same average luminance, the pulse must be brighter: the same amount of light must be delivered in less time. This requires higher peak luminance, not a higher average luminance.
Imagine a light emitting at 100 nits. If it stays on throughout a 10 ms interval, its average is 100 nits. At 20% duty, it emits for only 2 ms and is dark for 8 ms. The average is therefore (100 × 2 + 0 × 8) ÷ 10 = 20 nits.
To recover the original 100-nit average while still emitting for only 2 ms, the pulse must reach 500 nits: (500 × 2 + 0 × 8) ÷ 10 = 100 nits. Five times the luminance for one-fifth of the time delivers the same time-average light.
Average luminance = pulse luminance × duty cycle. Luminance is measured in nits (cd/m²). Lux instead describes light arriving at a surface.
Shortening emission can save energy when the peak stays unchanged, but restoring the average brightness can offset those savings. Hardware limits constrain compensation.
Compare 60 Hz and 120 Hz at 20% duty. At 60 Hz, each light pulse lasts about 3.3 ms. At 120 Hz, each lasts about 1.7 ms, but there are twice as many pulses per second. Both emit light for 20% of each second, so the same peak luminance gives the same average luminance.
The shorter pulses reduce tracking smear, while their higher repetition rate can make flicker less visible. This reduces persistence without the loss of average light caused by shortening pulses at a fixed refresh rate. In this widget, FPS follows refresh rate, so 120 Hz also means rendering 120 new frames per second.
This models retinal displacement, not the blur you should expect from the slowed playback.
Details
Next: More frequent light pulses can reduce visible flicker. Must we render a new image for every pulse?
Reduce flicker by repeating the light pulse
24 source frames/s · equal light/dark intervals · 1, 2, or 3 pulses per source frame.
Explanation
The previous lesson showed the blur–flicker–brightness tradeoff. More frequent pulses can reduce visible flicker, and 24 fps does not require 24 light pulses/s. Repeating each frame twice or three times gives 48 or 72 pulses/s while retaining 24 motion positions/s. Dark intervals remain; the light–dark cycles simply occur more frequently.
More frequent pulses can reduce flicker, but do not create new poses or guarantee smooth motion. Each source frame receives the same number of equal light pulses; motion steps can remain. These are idealized global-emission examples.
This models retinal displacement, not the blur you should expect from the slowed playback.
Details
Cadence judder: unequal repeats to fit the display
Cadence mismatch: 24 fps on 60 Hz holds frames for 50, 33, 50, 33 ms—even when every source frame is ready on time.
Explanation
Evenly captured frames can be displayed for unequal durations. 24 fps on 60 Hz alternates groups of three and two refreshes per source frame: a 3:2 cadence.
“Judder” and “stutter” are used with overlapping meanings. Here we name the cause: cadence judder means unequal repeats caused by rate conversion; late-frame stutter means a missed frame deadline. These are not separate mechanisms of vision.
This models retinal displacement, not the blur you should expect from the slowed playback.
Details
Late-frame stutter: the next frame misses its deadline
Fixed 60 fps / 60 Hz · continuous illumination · only the missed-deadline duration changes.
Late frame: the old frame stays on screen too long. This can happen even at a nominal 60 fps on 60 Hz.
Explanation
A late frame leaves the old position on screen too long. When a fresh frame arrives, the object catches up with a larger position change.
The model introduces one rendering stall every 0.6 simulated seconds (every 6 seconds of playback at 0.1×). During the stall, source arrivals stop; display refreshes and illumination continue using the previous frame.
Frame pacing means keeping presentation intervals consistent. A high average fps can hide occasional long intervals.
Solutions include reducing rendering workload, preparing assets and shaders ahead of time, and scheduling frames consistently. A higher refresh setting alone cannot make a late frame arrive on time.
This models retinal displacement, not the blur you should expect from the slowed playback.
Details
Timing and order in apparent motion
Explanation
A briefly presented stimulus can remain perceptually visible after it disappears. This is visible persistence; it has no single fixed duration for all conditions.
Persistence can keep a stimulus briefly visible, but motion perception also depends on where and when the image changes. Motion-sensitive circuits respond differently to left-to-right and right-to-left sequences. Their activity helps encode direction and speed; a lingering image alone does not explain that selectivity.
In a flipbook, each page contains a frozen pose. The character's position or pose changes between pages, and the sequence can produce apparent motion.
The faded marks are an adjustable illustration of lingering traces. Use them to compare the sequence of positions with the traces left behind. This demo illustrates timing and spacing; it does not independently demonstrate why persistence alone is insufficient or predict what you will perceive.
Illustrative persistence
This models retinal displacement, not the blur you should expect from the slowed playback.
Details
From motion to photons
Follow one scene frame from rendering to emitted light. The top rows identify frames and refreshes; the rows below show the work behind them.
Explanation
A headset must measure motion, render an image, send pixel values to the panel, and emit light. These operations take time—and work for different frames can overlap.
Every row shares the same 0–120 ms time axis. The Scene frames ready row identifies completed frames; Display refreshes shows which frame each presentation uses. Each frame keeps its color through the operation rows. Saturated stages belong to your selected refresh; faded stages belong to other work. The moving black line only indicates the time being inspected.
Writing pixels and emitting light are different operations. Transfer/scan loads pixel values, often row by row. With rolling emission, different rows emit at different times. With global emission, the panel emits together after the data is loaded. This timeline uses a global-emission example.
An IMU is an inertial measurement unit: a motion sensor. The pipeline queries an early pose for rendering and a late pose for reprojection, correcting the viewpoint without rendering the whole scene again. These are uses of the tracking system’s pose estimate, not two separate IMUs or its only two measurements.
- Motion-to-photon
- Head movement → the corresponding change in display light. The bracket here starts at the pose timestamp and ends at first light. This pose age is not a full physical motion-to-photon measurement: sensing delay and pose prediction are omitted.
- Interaction latency
- A physical action → its visible result. Our controller-input marker starts later, when the application samples the input at render start; device and input-delivery delays are omitted. Reprojection refreshes head pose, not the action’s effect on the scene.
- Display latency
- Display input → emitted light. Our bracket starts at pixel transfer and ends at the first global light pulse.
90 Hz means 11.1 ms between refreshes. It does not specify the total delay from motion or interaction to light.
Photon-to-photon is a different measurement for camera passthrough: light reaches a camera → the corresponding image emits light from the display. Camera exposure, readout, and processing add delay; they are not simulated here.
Pipeline adapted conceptually from Hoffman & Lee (2019). Passthrough terminology: Antmicro.
F = rendered scene frame · R = display refresh · Same color follows the same frame · Short colored strip = light on; the rest of the refresh is dark · Dotted vertical lines = refresh boundaries
A scene frame must be ready before reprojection/loading starts; finishing just before the light pulse can be too late for that refresh.
Latency measurements
Illustrative steady-state schedule · global light pulses
Timing assumptions
The fixed window runs from 0 to 120 ms. Frame IDs name rendered scenes; refresh IDs name display presentations. The ready row begins when rendering finishes, but a presentation can only use a frame ready before its reprojection/loading deadline. “Earlier” marks frames from before this window. Selecting a refresh highlights its operations, and the dashed path links them. All durations are chosen teaching values. Rendering starts every whole number of refresh intervals needed to finish a frame; the display reuses the latest ready scene frame. Transfer and settling are serialized here; their controls are limited so loading, settling, and the light pulse fit within one refresh. An early pose and controller input are sampled at render start; a late pose is queried at the start of each reprojection. These are ideal instantaneous sampling events, not sensor acquisition durations. Emission lasts 20% of a refresh interval. The bracket ends at the start of global emission; rolling emission would make latency depend on the row. The OLED example uses a chosen 0.1 ms pixel response instead of the LCD settling stage; neither value is a hardware benchmark. No camera, sensor delay, pose prediction, queue, or asynchronous rendering jitter is modeled.
Reprojection adjusts an existing image
Explanation
The scene is stationary in the world. As the head turns, its image must shift across the headset display. A frame based on an old head pose puts it in the wrong place.
Reprojection reuses the rendered pixels and remaps their positions using a newer head measurement. For head rotation, this can avoid recalculating geometry, lighting, and shadows.
It still takes time. Here, the corrected pose is sampled 1 ms before the latest refresh—a chosen teaching value, not a hardware benchmark. The source frame also has a configurable render delay.
The three rows compare the continuous target, the old rendered view, and the reprojected view. Reprojection helps head-motion stability but cannot perfectly reveal unseen content or update independently moving objects.
This models retinal displacement, not the blur you should expect from the slowed playback.
Details
Does 120 Hz automatically mean clearer motion?
Explanation
A moving object can be sharp but jumpy, smooth but smeared, or flickering. Describe the visible problem first, then inspect its timing.
This models retinal displacement, not the blur you should expect from the slowed playback.