name: effect-editing
description: Learn how to add, modify, and remove visual effects on timeline clips for video ads, promos, and motivational videos. Includes the full effect catalog with descriptions and AI prompt examples.
effect-editing
Overview
This skill documents how to apply visual effects on the timeline for social media video production — ads, promos, motivational videos, and reels. Effects can be placed either as standalone clips on the timeline or attached directly to a specific clip's effects array.
All key (for clip-attached effects) and effectKey (for standalone effect clips) values come from the catalogs in Section 4 and Section 5.
Instructions
When the user asks to add, change, or remove effects, output commands with type: "clip.add", type: "clip.update", or type: "clip.remove".
Two Ways to Apply Effects
Mode A — Standalone Timeline Effect Clip (clip.add with type: "Effect")
A standalone effect clip placed on a track for a time range. Affects all clips rendered beneath it during that window.
- Placed on its own track.
- Has properties:
type: "Effect", effectKey, values, and timing (with display and duration at project level).
Mode B — Clip-attached Effect (updating the clip's effects property)
Attaches an effect directly to a specific clip's effects array property using clip.update. Use this when targeting one clip.
1. Adding an Effect (Timeline Clip - Mode A)
type: Must be "Effect"
effectKey: Key from the catalogs (Section 4 and 5)
values: Uniform overrides (optional — defaults are sensible)
timing.duration: Duration in microseconds
timing.display.from / timing.display.to: Absolute time range in microseconds
Example: Add a fade-in at the start of the project (first 1 second)
{
"type": "command",
"description": "Adding fade-in at project start",
"command": {
"type": "clip.add",
"payload": {
"clip": {
"type": "Effect",
"name": "Fade In",
"effectKey": "fadeIn",
"values": {
"uDuration": 1.0
},
"timing": {
"duration": 1000000,
"display": {
"from": 0,
"to": 1000000
}
}
}
}
}
}
2. Adding a Clip-attached Effect (Mode B)
To add a clip-attached effect, use clip.update to replace the clip's effects array. Make sure to generate a unique id and specify startTime and duration in microseconds relative to the clip start.
Example: Apply vignette to the first 5 seconds of a specific clip
{
"type": "command",
"description": "Attaching vignette effect to clip",
"command": {
"type": "clip.update",
"payload": {
"id": "clip_123",
"updates": {
"effects": [
{
"id": "effect_vignette_1",
"key": "vignette",
"startTime": 0,
"duration": 5000000,
"values": {
"uIntensity": 0.6,
"uSoftness": 0.3
}
}
]
}
}
}
}
3. Modifying Effect Parameters
- For Standalone Timeline Clips (Mode A): Update the clip's
values property directly.
- For Clip-attached Effects (Mode B): Map through the clip's
effects array and replace it with updated values.
Example: Adjust glitch intensity on a standalone timeline effect clip
{
"type": "command",
"description": "Updating glitch intensity on standalone clip",
"command": {
"type": "clip.update",
"payload": {
"id": "clip_effect_abc",
"updates": {
"values": {
"intensity": 0.8
}
}
}
}
}
Example: Adjust glow color and distance on a clip-attached effect (replacing the effects array)
{
"type": "command",
"description": "Updating custom-glow properties on clip",
"command": {
"type": "clip.update",
"payload": {
"id": "clip_123",
"updates": {
"effects": [
{
"id": "custom-glow",
"key": "glowFilter",
"startTime": 0,
"duration": 5000000,
"values": {
"distance": 20,
"outerStrength": 3,
"innerStrength": 1,
"color": "#00ff00"
}
}
]
}
}
}
}
4. Removing an Effect
- For Standalone Timeline Clips (Mode A): Use
clip.remove with the effect clip's ID.
- For Clip-attached Effects (Mode B): Update the clip's
effects property, filtering out the effect by its id.
Example: Remove a standalone timeline effect clip
{
"type": "command",
"description": "Removing effect clip",
"command": {
"type": "clip.remove",
"payload": {
"ids": ["clip_effect_abc"]
}
}
}
Example: Remove specific clip-attached effect by ID
{
"type": "command",
"description": "Removing vintage effect from clip",
"command": {
"type": "clip.update",
"payload": {
"id": "clip_123",
"updates": {
"effects": []
}
}
}
}
Timing Reference
- All times are in microseconds (1 second =
1000000).
- For fade-in at clip start:
startTime = 0, duration = fade duration (e.g. 1000000 for 1s).
- For fade-out at clip end:
startTime = clip duration − fade duration, duration = fade duration.
- For full-clip effect:
startTime = 0, duration = clip duration.
- Standalone effect timing
display matches absolute project timing.
Section 4 — Built-in GLSL Effects Catalog
Use the key as effectKey (for Mode A) or key (for Mode B).
Color Effects
| Key |
Description |
Common Values |
grayscale |
Black and white conversion |
— |
sepia |
Warm vintage brown tint |
— |
invert |
Color inversion |
— |
duotone |
Two-color palette mapping |
color1, color2 |
tritone |
Three-tone color grading |
shadows, mids, highlights |
hueShift |
Continuous hue rotation |
— |
neonFlash |
Neon-colored flashes |
— |
Blur and Focus
| Key |
Description |
Common Values |
curtainBlur |
Curtain-like blur transition |
— |
focusTransition |
Focus pull effect |
— |
scaleMoveBlur |
Motion blur with scaling |
— |
motionBlur |
Directional motion blur |
— |
Distortion and Warping
| Key |
Description |
Common Values |
distort |
General wave/swirl distortion |
— |
distortGrid |
Grid-based distortion |
— |
distortSpin |
Spinning distortion |
— |
distortRip |
Horizontal ripping |
— |
wave / waveDistort |
Fluid wave animation |
— |
sinewave |
Sine wave distortion |
— |
swirlMovement |
Swirling motion |
— |
Glitch and Digital
| Key |
Description |
Common Values |
glitch |
Digital glitch effect |
— |
rgbGlitch |
RGB channel splitting glitch |
— |
rgbShift |
RGB channel separation |
— |
pixelate |
Blocky pixelation |
pixelSize |
pixelError |
Compression error simulation |
— |
darkError |
Intense error aesthetic |
— |
Light and Atmosphere
| Key |
Description |
Common Values |
vignette |
Edge darkening |
— |
shine |
Moving light gleam |
— |
laser |
Glowing laser beams |
— |
lightning / lightningVeins |
Electric discharge |
— |
sparks |
Particle sparks |
— |
brightPulse |
Periodic bright flashes |
— |
flashLoop |
Looping flash |
— |
blackFlash |
Black flash transitions |
— |
Stylized Looks
| Key |
Description |
Common Values |
halftone |
CMYK dot pattern |
— |
filmStripPro |
Film strip overlay |
— |
tvScanlines |
CRT scanlines |
— |
retro70s |
70s vintage look |
— |
hologramScan |
Sci-fi hologram |
— |
graffiti |
Graffiti overlay |
— |
solution |
Chemical fluid effect |
— |
Transitions (Within Clips)
| Key |
Description |
Common Values |
curtainOpen |
Curtain opening |
— |
paperBreakReveal |
Tearing paper reveal |
— |
warpTransition |
Spiraling warp |
— |
pixelateTransition |
Pixel dissolve |
— |
inverseAperture |
Aperture close |
— |
Camera Movement
| Key |
Description |
Common Values |
cameraMove |
Handheld camera shake |
— |
fastZoom |
Rapid zoom effect |
— |
rotationMovement |
Continuous rotation |
— |
perspectiveSingle |
3D perspective shift |
— |
Special Overlays
| Key |
Description |
Common Values |
bubbleSparkles |
Rising bubbles |
— |
butterflySparkles |
Butterfly particles |
— |
heartSparkles |
Heart-shaped sparkles |
— |
chromatic |
Chromatic aberration |
— |
Section 5 — Pixi Filter Effects Catalog
These effects are powered by PixiJS filters. Use the key as effectKey (Mode A) or key (Mode B).
Color and Tone
| Key |
Description |
Common Values |
adjustmentFilter |
Gamma, saturation, contrast, brightness |
gamma, saturation, contrast, brightness |
hslAdjustmentFilter |
Hue, saturation, lightness |
hue, saturation, lightness |
colorReplaceFilter |
Replace specific colors |
originalColor, targetColor |
colorOverlayFilter |
Solid color tint |
color |
grayscaleFilter |
Simple grayscale |
— |
Blur Filters
| Key |
Description |
Common Values |
kawaseBlurFilter |
High-performance blur |
blur, quality |
motionBlurFilter |
Directional blur |
velocity, kernelSize |
radialBlurFilter |
Radial zoom blur |
radius, angle |
zoomBlurFilter |
Zoom blur |
center, strength |
tiltShiftFilter |
Partial blur |
blur, gradientBlur |
backdropBlurFilter |
Blur background |
blur |
Glow and Bloom
| Key |
Description |
Common Values |
bloomFilter |
Standard bloom |
blur, quality |
advancedBloomFilter |
High-quality glow |
threshold, bloomScale |
godrayFilter |
Volumetric light rays |
gain, lacunarity |
glowFilter |
Configurable glow |
distance, outerStrength, color |
Edge and Outline
| Key |
Description |
Common Values |
outlineFilter |
Solid outline |
thickness, color |
embossFilter |
3D embossed effect |
strength |
bevelFilter |
Beveled edges |
rotation, thickness |
crossHatchFilter |
Cross-hatch drawing |
blur, thickness |
Distortion
| Key |
Description |
Common Values |
bulgePinchFilter |
Bulge/pinch distortion |
center, radius, strength |
twistFilter |
Twist around center |
radius, angle |
shockwaveFilter |
Expanding shockwave |
center, time, amplitude |
reflectionFilter |
Water reflection |
mirror, boundary, amplitude |
Vintage and Glitch
| Key |
Description |
Common Values |
crtFilter |
CRT monitor simulation |
curvature, lineWidth, noise |
oldFilmFilter |
Vintage film look |
sepia, noise, vignette |
glitchFilter |
Digital glitching |
slices, offset, direction |
rgbSplitFilter |
RGB channel split |
red, green, blue |
dotFilter |
Halftone dots |
scale, angle, grayscale |
asciiFilter |
ASCII art conversion |
size |
Special Effects
| Key |
Description |
Common Values |
dropShadowFilter |
Drop shadow |
blur, distance, color |
convolutionFilter |
Convolution matrix |
matrix |
simplexNoiseFilter |
Simplex noise |
strength, noiseScale |
simpleLightmapFilter |
Lightmap lighting |
lightMap, ambient |
colorMapFilter |
Color lookup table |
colorMap, mix |
colorGradientFilter |
Multi-stop gradients |
type, stops, alpha |
multiColorReplaceFilter |
Batch color replace |
replacements |
AI Prompt Examples
| User Prompt |
Mode / Effect Key |
Placement / Config |
| "add a fade in at the start" |
Mode A: fadeIn |
from: 0, to: 1000000 (1s) |
| "add a fade out at the end" |
Mode A: fadeOut |
last 1s of project |
| "make it look cinematic" |
Mode B: vignette + hdr |
startTime: 0, duration: clip_duration |
| "add a glitch effect on clip 2" |
Mode B: glitch |
startTime: 0, duration: clip_duration |
| "dramatic zoom punch on the intro" |
Mode B: fastZoom |
startTime: 0, duration: 500000 (0.5s) |
| "add a retro film look" |
Mode B: oldFilmFilter |
startTime: 0, duration: clip_duration |
| "make colors pop for Instagram" |
Mode B: adjustmentFilter |
values: { saturation: 1.3, contrast: 1.1 } |
| "add energy/hype to the drop" |
Mode A: flashLoop + rgbGlitch |
beat/drop absolute time range |
| "add a cinematic reveal on clip 3" |
Mode B: curtainOpen or focusTransition |
start of clip 3 |
| "add black flash between clips" |
Mode A: blackFlash |
at the cut point (e.g. absolute junction ±0.1s) |
| "add a vignette to all clips" |
Mode B: vignette |
applied to all clips in workspace |
| "blur in the first clip" |
Mode B: kawaseBlurFilter |
startTime: 0, duration: 1000000 (fade to 0 blur) |