VKOBlender · in development · macOS + Windows + Linux · get the addon — 45-day trial
VKO1 get the addon · 45-day trial
VisualKO1 · Blender

Shaders in your
node tree.

The VKO1 shader engine, rebuilt as a native Blender addon. A hundred and fifteen GPU shaders, rendered live every frame — no bake, no loop point, just U.time ticking forward forever. Every control keyframable with Blender's own keyframe diamond, right-click and done.

Import a track and every shader beat-syncs off the same bass/mid/treble/energy analysis — no external DSP, Blender's own FFT. Ask Claude to write you a shader — it compiles, previews, and drops it in your file over a local MCP server, live compile-error feedback included.

macOS, Windows and Linux — it's pure Python plus Blender's own gpu module. No compiler, no per-OS build. Same GLSL the Android app and the AE plugin run.

Enginegpu module
Shaders115 built-in
Renderlive, viewport + F12
Audioauto-synced
HostBlender 4.2+
PlatformsMac + Win + Lin
SHADER · VORONOI
GPU MODULE · PYTHON
01
Native addon · VKO sidebar

Browse. Click. Apply.

A tabbed VKO panel in the Shader Editor and the 3D viewport sidebar — Generators, Packs and your own Custom library, each a thumbnail grid of a real rendered frame. Toggle Live and it renders every frame at your chosen resolution instead of baking a fixed sequence. Effect Controls surfaces Speed / Reactivity / Complexity / Jog / Offset X·Y / Palette Index right there, plus manual Energy/Beat/Bass/Mid/Treble sliders with an Audio Reactive overlay toggle — every one a real Blender property with its own animate-property dot — one click to keyframe, exactly like Location or Scale. Shader Cuts hard-switches which of several shaded objects is visible at the playhead, Constant interpolation, no fade — the VJ move AE gets from stacking effect layers. And Ctrl+F12 just works — no special render command to learn: Live shaders animate in the final render, not just the viewport. Each one is GPU-baked up front when the render starts, with a progress readout while it does.

Blender with the VKO sidebar open on the Packs tab: a Daft Cyber thumbnail grid, Effect Controls with Offset X/Y, and the selected shader rendering live on a boombox model in the viewport.

The VKO sidebar in the 3D viewport — Packs tab, thumbnail grid of real rendered frames, Effect Controls underneath. The shader on the boombox is rendering live, every frame.

02
Custom shaders · Live editor

Write a shader.
Hit apply.

Drop a .glsl file authored with the vko_main(uv) contract — from the VKO1 Web Graph Editor's Custom Shader export, or a shader pack — into Import Custom Shader. It bakes through the same gpu pipeline as the built-ins and drops onto your selected object.


        
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, same as every other VKO host.
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
Mind the dialect.
Blender's GLSL cross-compiler doesn't accept every construct — multi-dimensional array literals (int[10][7](...)) are the one we've hit. Bake errors report the compiler's message, they don't crash the addon.
03
Import Audio · one click, every shader

Beat-synced.
No DSP install.

Drop in a .wav/.mp3/.m4a file — Blender's own FFT does the analysis, in process, no external tool. Bass, mid, treble, energy and beat all get baked as real F-curves on a hidden object; Beat Phase runs off a plain BPM clock, same as the AE and web players. Hit Sync Audio to All Shaders and every Live/Baked shader plus every native node-group generator wires up at once — the same one analysis drives everything, no per-shader setup, no re-import.

Bass0..1
Low-band envelope (20–250 Hz) — kicks, sub, rumble.
Mid0..1
Mid-band envelope (250–4 kHz) — snare, vocal, lead elements.
Treble0..1
High-band envelope (4–20 kHz) — hats, sparkle, fine detail.
Energy0..1
Full-band envelope — overall loudness, glow, scale.
Beat0..1
Bass rising clearly above its own rolling average — an onset pulse, not a fixed threshold.
Beat Phase0..1
BPM-clock ramp, resets every beat — set BPM once, syncs regardless of the track's actual detected tempo.
01
Works with no audio.
Every manual slider defaults to 0 — a shader looks complete on U.time alone. Audio is an overlay, never the only driver.
02
Overlay, not override.
Audio Reactive blends real analysis over your manual value by an Amount slider — lerp(manual, audio, amount) — the hand-set look survives.
03
Hear it, see it.
Import Audio drops a Sound strip on the timeline too — press Space and the track plays back in sync with the analysis, not just baked numbers you have to trust.
04
Shader Cuts.
Select every object in a cut group, active = shown next, hit once per cut point. Constant-interpolation keyframes — an instant snap, the VJ hard-cut AE gets from stacked effect layers.
04
MCP Control · ask an agent

Claude writes
the GLSL.

One toggle starts a local MCP server, loopback-only, nothing reachable from the network — the same design as VKO1 Mac's Claude Control. Connect Claude Code, Cursor, or any MCP client, and it can write a custom shader, see the actual compile error if it's wrong, render a PNG preview to check the result, and apply it to your selected object — without you touching a text editor.

# One line, from the MCP Control section of the VKO panel
$ claude mcp add --transport http vko-blender http://127.0.0.1:8562/mcp

# then just ask:
"Build me a hypnotic audio-reactive tunnel shader and apply it to the selected object"
vko_shader_guideREAD FIRST
Full vko_main(uv) contract, every
U.* uniform, palette call — bundled
in the server, no external docs
an agent has to guess at.
vko_write_shaderCOMPILE
Saves to the Custom library, then
compiles once for real error
feedback — before it ever touches
your scene.
vko_preview_shaderSEE IT
Renders one frame, returns a PNG
image straight in the conversation
— the agent (and you) see the
result before it's inserted.
vko_insert_shaderAPPLY
Applies the shader as the active
mesh's material — baked or Live —
directly in the open file.

Claude writing a shader over MCP — compile-checked, previewed, then inserted into the open file.

05
Install · macOS + Windows + Linux

One zip.

No installer, no code signing, nothing to build — it's a Python addon. Download the zip, install it from Blender's Add-ons preferences, enable it. In active development: expect the odd rough edge.

Download VKO Blender v0.8.1 · 45-Day Trial
# In Blender: install the zip directly — don't unzip it first
Edit ▸ Preferences ▸ Add-ons ▸ Install… ▸ pick VKO-Blender-v0.8.1.zip ▸ enable "VKO Blender"

# A VKO tab appears in the N-panel of the 3D Viewport and the Shader Editor.
# Developing on it instead? Symlink the source folder so edits apply on restart:
$ ln -s /path/to/VKO-Blender/addon/vko_blender \
    ~/Library/Application\ Support/Blender/<version>/scripts/addons/vko_blender
Windows / Linux: identical — the same zip installs from the same Add-ons panel.
Works from Blender 4.2+. Pure Python — no compiled dependencies, no per-OS build. Full usage guide ships inside the zip as INSTALL.md.
45-day trial, bound to the machine — the sidebar shows days remaining. After it runs out nothing stops working; rendered shader output just carries a diagonal watermark until you license it.
01
Get the folder
Clone or copy VKO-Blender/addon/vko_blender — that's the whole addon.
02
Symlink or copy
Drop it into (or symlink it to) Blender's scripts/addons folder for your Blender version.
03
Enable it
Preferences ▸ Add-ons, search VKO, check the box. No restart needed.
04
Open the VKO tab
Shader Editor sidebar (or the 3D viewport sidebar) — click the VKO tab on the right edge.

The VKO panel in Blender — browsing the thumbnail grid, applying a shader, and driving it from Effect Controls.