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.
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.
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.
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.
vec4 vko_main(vec2 uv) — that's the whole contract. uv spans 0..1, same as every other VKO host.U.* — U.time, U.beat, U.bass, U.energy, plus four knobs U.p0–U.p3 wired to the sliders.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).int[10][7](...)) are the one we've hit. Bake errors report the compiler's message, they don't crash the addon.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.
0 — a shader looks complete on U.time alone. Audio is an overlay, never the only driver.Amount slider — lerp(manual, audio, amount) — the hand-set look survives.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"
Full vko_main(uv) contract, every U.* uniform, palette call — bundled in the server, no external docs an agent has to guess at.
Saves to the Custom library, then compiles once for real error feedback — before it ever touches your scene.
Renders one frame, returns a PNG image straight in the conversation — the agent (and you) see the result before it's inserted.
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.
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.
# 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
VKO-Blender/addon/vko_blender — that's the whole addon.scripts/addons folder for your Blender version.Preferences ▸ Add-ons, search VKO, check the box. No restart needed.VKO tab on the right edge.The VKO panel in Blender — browsing the thumbnail grid, applying a shader, and driving it from Effect Controls.