Blur
Apply gaussian, box, directional, radial, or motion blur to images and volumes.
What it does
Blur softens an image or a Volume using one of several algorithms: Gaussian falloff, uniform Box averaging, Directional streaking, Radial zoom, Circular spin, a per-pixel Vector Field flow, temporal Motion Blur, or a Depth of Field pass driven by a depth input. Radius sets the strength in pixels, or in voxels on a Volume. Most modes add their own controls: Angle for Directional, Center for Radial and Circular, Samples and Shutter for Motion Blur, Focus Distance and Focus Range for Depth of Field.
Fed a live 3D object, Blur either stays a live, orbit-able object with the blur applied in screen space (Rasterize off), or collapses to a flat, camera-facing card first (Rasterize on). Wiring a depth input also enables edge-preserving blur through Depth Threshold.
When to use it
Softening an image: glow, defocus, glass, dreamy backgrounds.
Directional streaks for fast motion, or a radial zoom or spin blur.
Defocus based on distance from camera: wire a depth input and use Depth of Field.
Blur that follows a flow field: wire a vector field and switch to Vector Field mode.
Blur that respects depth edges rather than smearing foreground into background: raise Depth Threshold.
Blurring a Volume, where Gaussian mode works in 3D.
| Parameter | Type | Default |
|---|---|---|
content_in | OneOf([Collection, GpuGeometry, GpuSplats, Field, MorphField, CollectionArray, RasterArray, VolumeArray, FieldArray]) | — |
vector_field | OneOf([FieldOf(Raster), ForceField]) | — |
depth_in | OneOf([FieldOf(Raster)]) | — |
rasterize | Boolean | false |
billboard | Boolean | true |
camera | OneOf([Camera3D]) | — |
blur_type | String | "Gaussian" |
radius | Number | 5 |
angle | Number | 0 |
center_x | Number | 0.500 |
center_y | Number | 0.500 |
samples | Number | 8 |
shutter | Number | 1 |
focus_distance | Number | 0.500 |
focus_range | Number | 0.100 |
max_blur | Number | 20 |
depth_threshold | Number | 0 |
position | Vec3 | (0, 0, 0) |
rotation | Vec3 | (0, 0, 0) |
scale | Vec3 | (1, 1, 1) |
anchor | Vec3 | (0, 0, 0) |
spatial_strength | Field | — |
strength | Number | 1 |
Gotchas
Depth Threshold takes effect only once a depth input is wired and the value is above 0. Neighbouring depth values are compared and blending is skipped across edges where the difference exceeds the threshold, which keeps foreground subjects crisp while the background blurs.
Radial, Circular, Motion Blur and Depth of Field each read Radius as their main strength control but scale it differently: zoom amount, spin angle, streak length, maximum defocus. The same Radius value reads as very different amounts of blur between modes.
Switching Blur Type to Vector Field before wiring anything into Vector Field leaves the image passed through unblurred. Connect a flow field first.
Gaussian (IIR) gives visually the same result as Gaussian and stays fast at very large radius values. Use it when pushing Radius high and interaction needs to stay responsive.
Worked example
Add a Blur and wire an image into Content.
Leave Blur Type on Gaussian and raise Radius to the softness you need.
For a motion streak, switch Blur Type to Directional and set Angle to match the direction of movement.
For a camera-style defocus, wire a depth output into Depth In, switch Blur Type to Depth of Field, and adjust Focus Distance and Focus Range until the subject reads sharp and the rest falls away.
If Content is a live 3D object, leave Rasterize off to keep it orbit-able while blurred. Turn Rasterize on for a flat, camera-facing card instead.