# Motion blur from a shutter, not a filter

> Lumae samples each camera move across a virtual shutter and averages the samples, the way a lens does. Exact for zooms and pans, free when the camera is still.

*Source: https://lumae.app/features/motion-blur.md. This page in HTML: https://lumae.app/features/motion-blur.*

Most software blur is a smear applied after the fact. Lumae's is temporal: the camera transform is evaluated at sub-frame times spread across the shutter interval, and the samples are averaged. That is what a real lens does, and it is why the result is exact rather than approximate.

## At a glance

- **Method:** temporal accumulation
- **Sample density:** about 1 per 2 px of travel
- **Playback budget:** 12 samples per frame
- **Export budget:** 32 samples per frame
- **Strength:** 0 to 1, camera and cursor
- **Cost when still:** none

## Temporal accumulation

For each output frame, Lumae evaluates the camera's visible rectangle at several instants inside the shutter interval, crops and fits the source at each one, and averages the results. Because the sampling is of the camera and not of the pixels, the answer is exact for a zoom, exact for a pan, and exact for both at once.

The strength is the fraction of a frame interval the virtual shutter stays open, from 0 to 1, set separately for the camera and the cursor. When the camera is still there is nothing to accumulate, so the blur costs nothing.

## Sampling that adapts to the travel

A slow drift needs a handful of samples; a fast push needs many. Lumae takes roughly one sample per two pixels of travel, inside a budget of 12 for real-time playback and 32 for export. Preview therefore stays responsive without changing what the export will look like.

## Gaps bridged along the motion, never across it

Twelve samples leave visible steps. Closing them with an ordinary blur would soften the picture in every direction at once, which was tried first and made the frame look merely out of focus.

Instead Lumae classifies the move, reading the displacement of the frame's centre against its corners and the pivot of the scale change, and bridges with a directional blur for a pan or a zoom blur about the pivot for a push. Each spans exactly one sample spacing, half a step either side of the sharp position, which turns the comb of samples into a continuous shutter and nothing softer. Measured on a test zoom, 12 bridged samples reproduce the 32-sample ramp to within two levels.

## The cursor gets the same treatment

The drawn pointer is blurred along its own sampled path, in its own direction of travel, rather than inheriting the camera's. A fast mouse move across a still frame smears the pointer and leaves the interface behind it sharp, which is what actually happens through a lens.

## Questions

### Does motion blur slow down playback?

Playback uses a smaller sample budget than export, 12 against 32, and spends nothing at all while the camera is still. In practice the preview stays real-time and the export takes the extra quality.

### Will it blur the recording itself?

No. Only camera movement and the drawn cursor are blurred. Motion inside the recorded content, a video playing in the captured window for example, passes through as it was captured.

## Related

- [Automatic zoom](https://lumae.app/features/automatic-zoom.md): Clicks become camera moves, with the timing worked out for you.
- [Smooth cursor](https://lumae.app/features/smooth-cursor.md): The pointer, redrawn: smoothed, tilted, and pressed on every click.
- [Export](https://lumae.app/features/export.md): MP4, MOV, ProRes and GIF, from the renderer the preview uses.
