VKOShader for After Effects · macOS + Windows · download v0.2 — 30-day trial
VKO1 download · 30-day trial
VisualKO1 · After Effects

Shaders on your
timeline.

The VKO1 shader engine, rebuilt as a native After Effects effect. Sixty GPU shaders, a live thumbnail browser, and drop-in custom GLSL — every control keyframable. Renders on the GPU, animates on the comp clock, and reacts to your composition's audio. Works with or without sound.

macOS and Windows — Metal on Mac, Direct3D 11 on Windows. Shaders are written in GLSL either way, and the same .glsl runs on both.

EngineMetal · D3D11
Shaders60 built-in
HostAE 2025·26
PlatformsMac + Win
SHADER · PARTICLES
METAL · 32-BIT
01
Native effect · Effect Controls

Browse. Click. Render.

Drop VKO Shader on any layer and pick from a live thumbnail grid of all 60 shaders — each one a real rendered frame. Every numeric control keyframes on the comp clock; an optional BPM pulse drives the beat with no audio at all.

fx VKO Shader Reset
Shader Diamond Spin
List Grid
Up Dn
Palette3
Speed1.00
Complexity0.50
Reactivity0.93
Jog0.29
Energy0.50
CustomImport .glsl…
60 shaders + your own A grid of real frames. The browser renders an actual frame of every shader on its own Metal device and caches it. Grid or list, click to apply — the Shader dropdown and the grid stay in sync.
Import .glsl Drop in your own GLSL. Hit Import .glsl… (or drop files in the VKO Shaders folder). They appear in the browser at once — no AE restart — and recompile on every save.
GLSL → SPIR-V → MSL / HLSL GLSL in, native GPU out. You write plain GLSL (vec4 vko_main); VKO Shader cross-compiles it to Metal on macOS and Direct3D 11 on Windows — the very same .glsl the Android app runs. One shader, every platform.
Keyframe everything Animate, or react to audio. Every numeric control is keyframable. Set a BPM for an automatic beat with no sound, or flip on Audio Reactive to analyze the comp's own audio.
02
Custom shaders · Live editor

Write a shader.
Hit render.

VKO Shader carries a runtime GLSL compiler. Drop a .glsl in your VKO Shaders folder (or click Import) and it shows up in the browser — recompiled on every save, routed through the same GPU pipeline as the built-ins. No build, no app reload.


        
p0 · Speed1.00
p1 · Reactivity0.80
p2 · Complexity0.50
p3 · Jog0.00
01
2D snippet.
Write vec4 vko_main(vec2 uv) — that's the whole contract. uv spans 0..1. (The mobile apps add 3D and full-shader modes; the AE effect runs the 2D snippet.)
02
Use the U block.
Every live signal lives on U.*U.time, U.beat, U.bass, U.energy, plus four knobs U.p0U.p3 wired to the sliders.
03
Respect the knobs.
Multiply time by U.p0. Scale audio by U.p1. Drive detail with U.p2. Add U.p3 * 0.4 as a jogwheel phase offset (range −3..3).
04
Compute-safe.
AE runs each shader as a GPU compute kernel (Metal / D3D11) — fragment derivatives (dfdx, fwidth) aren't available. Compute widths analytically and the same .glsl runs on Android too.
U. Block · Uniforms reference
U.timefloat
Seconds on the comp clock.
U.beatfloat
0..1 — pulses on the beat.
U.beatPhasefloat
0..1 sawtooth inside the current beat.
U.beatStrengthfloat
0..1 confidence of beat detection.
U.energyfloat
0..1 overall audio level.
U.bassfloat
0..1 low-frequency level.
U.midfloat
0..1 mid-frequency level.
U.treblefloat
0..1 high-frequency level.
U.resolutionvec2
Layer size in pixels.
U.paletteint
0..32 active palette index.
U.p0 · Speedfloat
Time multiplier. 0=frozen, 1=normal.
U.p1 · Reactfloat
Audio influence. 0=none, 1=full.
U.p2 · Complexfloat
Detail / density knob.
U.p3 · Jogfloat
Jogwheel scrub, −3..3 (0 idle).
One GLSL file · two engines
One file, two platforms Android & After Effects. A 2D vko_main snippet that avoids fragment derivatives drops straight into both — identical GLSL, same U.* uniforms, same palette helpers (get_vko_palette_color), same knobs. iOS runs the same engine, knobs and palettes, but its shaders are written in Metal (MSL) — porting GLSL ↔ MSL is mechanical.
Recipes · copy & remix
Beat-Sync FlashU.beat · U.p1
// sharp flash on beat, decays quickly
float flash = U.beat * U.p1 * 0.8 * exp(-U.beatPhase * 4.0);
col += vec3(flash);
Bass-Driven DistortionU.bass · U.p1
float kick   = U.bass * U.p1;
vec2  warped = p + p * kick * 0.15;
float d      = length(warped);
Aspect-Correct CoordsCompute-safe
// no dfdx/fwidth in a compute kernel
float aspect = U.resolution.x / max(U.resolution.y, 1.0);
vec2  p      = (uv * 2.0 - 1.0) * vec2(aspect, 1.0);
Jogwheel Slit-ScanU.p3
float scanLine = uv.y + U.time * 0.05
                 + U.p3 * 0.3;
vec3 col       = get_vko_palette_color(
                       fract(scanLine), U.palette);
03
Install · macOS + Windows

One double-click.

One zip, both platforms — a signed, notarized Mac installer (universal, Apple Silicon and Intel) and a Windows installer. Each installs into Adobe's shared plug-ins folder, so it covers After Effects 2025 and 2026 at once.

⤓ Download v0.2 · Mac + Windows · 30-Day Trial
Mac: universal (arm64 + x86_64) · macOS 14+ (Sonoma) · signed & notarized
Windows: 64-bit · Windows 10 / 11 · unsigned beta — SmartScreen: More info → Run anyway
AE 2025 / 2026 on both
01
Download
Grab VKO_AE-v0.2-beta.zip above, unzip it and open the Mac or Windows folder.
02
Double-click
Run the installer — next, next, done. The Mac .pkg is notarized, so no Gatekeeper warning. The Windows .exe is unsigned during the beta: if SmartScreen appears, click More info → Run anyway.
03
Relaunch AE
Fully quit After Effects (⌘Q / File ▸ Exit) and reopen it.
04
Add to a Solid
Make a comp-sized solid — Layer ▸ New ▸ Solid (⌘Y) — then Effect ▸ VisualKO ▸ VKO Shader. It generates its own image, so it needs a layer to render on. Any solid or adjustment layer works.