Current

Early development Current is in early development. These docs describe the current build and will grow with the first public release.

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_catalogue describes 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. null removes the setting.
  • Supported on video, image, text, shape and composition clips, including movement inherited from 2D groups.
  • Refused with unsupported_motion_blur_owner on enabled group, procedural, audio and component clips.
  • Refused with unsupported_motion_blur_spatial when 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"
  }
}