04 / 07
Effects
The four built-in effects, their controls, units and limits.
On this page
Current has four built-in effects: Gaussian blur, Drop shadow, Glow and Organic reveal. Together they make up Current’s effect catalogue, version 1. Other effect families, such as Bloom, Film Grain, Colour Basics, Directional Blur, transitions and speed ramps, are not built yet.
Where effects apply
- Effects apply to text, shape, image, video and composition clips.
- A clip can hold up to four effects. They run in the order shown in Properties.
- Groups and procedural grids cannot take effects. Put them in a composition and apply the effect to the composition instance.
- Effects are not offered on programmable component clips.
The render order for a clip is: source drawing, effects in order, mask, source matte, spatial projection, clip opacity, then the blend mode.
Adding and editing effects
In the workspace:
- Properties > Local effects has Add blur, Add shadow, Add glow and Add Organic reveal.
- The timeline clip menu’s Add effect offers Blur, Shadow and Glow.
- The Motion library has Add Gaussian blur.
- Each effect has move up and move down buttons, Remove, an Enabled toggle and a row for each control.
- The add buttons are disabled when the clip or its track is locked, or when the clip already has four effects.
Each control can be a constant, keyframes, a link to an exposed control, or a validated driver.
Through MCP, use add_effect, remove_effect, move_effect and set_effect_enabled in edit_apply or proposal_prepare. Change a control with set_parameter_source or the parameter key operations, using an address whose component_id is the effect ID and whose parameter_id is the control ID. project_inspect returns the full catalogue as effects_catalogue. parameters_inspect returns each effect’s controls, sources and evaluated values.
A disabled effect leaves its input unchanged. Saving a project with an effect records the features it needs, so an older build refuses the project instead of dropping the effect.
Gaussian blur
Kind gaussian_blur_v1, version 1.
| Control | ID | Range | Default | Unit |
|---|---|---|---|---|
| Blur sigma | sigma_px |
0 to 32 | 8 | px |
Sigma is in source-space pixels. Sigma 0 leaves the input unchanged. The blur pads the source by ceil(3 x sigma) pixels so the edges can spread.
Drop shadow
Kind drop_shadow_v1, version 1.
| Control | ID | Range | Default | Unit |
|---|---|---|---|---|
| Shadow sigma | sigma_px |
0 to 32 | 8 | px |
| Offset X | offset_x_px |
-256 to 256 | 8 | px |
| Offset Y | offset_y_px |
-256 to 256 | 8 | px |
| Colour | colour |
#rrggbbaa |
#000000ff |
|
| Strength | strength |
0 to 1 | 1 | ratio |
The shadow is a tinted copy of the source alpha, placed behind the image. Zero strength or a fully transparent colour leaves the input unchanged.
Glow
Kind glow_v1, version 1.
| Control | ID | Range | Default | Unit |
|---|---|---|---|---|
| Glow sigma | sigma_px |
0 to 32 | 12 | px |
| Colour | colour |
#rrggbbaa |
#ffffffff |
|
| Strength | strength |
0 to 1 | 1 | ratio |
Glow is a tinted, blurred copy of the source alpha placed behind the image. It follows the shape of the content, not its brightness. It is not a highlight bloom. Zero strength or a fully transparent colour leaves the input unchanged.
Organic reveal
Kind reveal.organic, version 1. It is an alpha matte: it reveals the clip along a direction, with a soft, noisy edge.
| Control | ID | Range | Default | Unit |
|---|---|---|---|---|
| Reveal progress | progress |
0 to 1 | 1 | ratio |
| Edge softness | edge_softness |
0.001 to 0.2 | 0.14 | ratio |
| Noise scale | noise_scale |
1 to 32 | 3.5 | unitless |
| Domain warp | warp_strength |
0 to 0.3 | 0.22 | ratio |
| Flow direction | direction_deg |
-180 to 180 | 0 | degrees |
| Seed | seed |
0 to 65535 | 17 | unitless |
- Progress 0 hides the clip. Progress 1 shows it fully.
- The seed is stored as a number. Rendering uses its whole-number part.
- Properties offers flow presets: Left to right (0), Top to bottom (90), Right to left (180) and Bottom to top (-90).
- A project with an Organic reveal, even a disabled one, requires the feature
runtime_shaders_v1. - The shader program is built into the editor. Projects and MCP clients choose the built-in kind and its controls. They cannot supply shader code.
- MCP
shaders_cataloguedescribes this effect and its controls.
CPU and GPU rendering of this effect are not bit-identical: in some cases they differ by more than one output code.
Colour format
Colours use #rrggbbaa: a hash sign and eight hexadecimal digits.
Resource limits
Large effects can fail instead of rendering. The renderer caps a final source surface at 16 Mi pixels and 128 MiB. Large blurs render in tiles, with tile scratch capped at 64 MiB. A graph that does not fit fails with an error such as source_surface_budget, effect_tile_scratch_budget or render_working_budget.
Blend modes
Each text, shape, image, video or composition clip has a blend mode: Normal, Multiply or Screen. Normal is the default. Blending happens in premultiplied linear light. Choose it with Blend in Properties > Local effects or the timeline clip menu’s Blend mode. Groups and grids need to be nested in a composition first. MCP uses:
{
"op": "set_blend",
"id": "<clip-id>",
"mode": "multiply"
}
Motion blur
Geometry motion blur is a per-clip setting, not an entry in the effect list.
| Setting | Range | Default |
|---|---|---|
| Enabled | on or off | off |
| Shutter angle | 0 to 360 degrees | 180 |
| Samples | auto, or a whole number from 2 to 32 |
auto |
- Properties > Motion blur has an enable toggle and a shutter angle field. Edits from Properties use automatic samples. A fixed sample count can only be set through the project file or MCP.
- MCP uses the operation below.
nullremoves the setting. - Supported on video, image, text, shape and composition clips, including movement inherited from 2D groups.
- Refused with
unsupported_motion_blur_owneron enabled group, procedural, audio and component clips. - Refused with
unsupported_motion_blur_spatialwhen the clip or one of its parents is spatial. Camera motion blur is not built yet. - Only position, scale and rotation vary across the shutter. Content, opacity, masks, mattes and effect values stay at the nominal frame.
- Automatic sampling is capped at 16 samples in preview and 32 in export. Fast motion beyond that cap can look undersampled.
- A straight path longer than about 1,024 device pixels during the shutter fails with
motion_blur_directional_budget.
{
"op": "set_motion_blur",
"id": "<clip-id>",
"motion_blur": {
"enabled": true,
"shutter_angle_deg": 180,
"samples": "auto"
}
}