My Blender tools · Free & open source
OpenVAT
Bake Blender animation into textures, then play it back in a game engine. Geometry Nodes, modifiers, rigs, and simulations can all be the starting point.
Animate
Use the Blender tools you already work with.
Encode
Bake the evaluated deformation into textures.
Deploy
Read the textures in an engine’s vertex shader.
Vertex animation textures
The animation is in the texture.
OpenVAT records the evaluated mesh, frame by frame. A shader reads that motion back as vertex offsets, so the engine doesn’t need to reproduce the original rig, modifier stack, or simulation.
This folding example shows the same animation as texture data, vertex offsets, and the final mesh. It’s a useful way to see what the texture is actually doing.
Watch the explanation on YouTube ↗The idea behind it
How vertex animation textures work
Each vertex gets a location in a texture, and time runs through the frames. The values stored there describe how the mesh moves. Playback happens on the GPU.
I walk through the format, the encoding, and the shader side in this video, with examples of what you can do with the result.
Blender-native
I built the baking around Blender’s evaluated geometry. If a modifier, Geometry Nodes setup, or rig deforms the mesh, OpenVAT can capture the result.
More than positions
Normals and custom per-vertex attributes can be encoded too. That gives a shader more to work with than a single position animation.
Playback you can change
The texture holds the data; a shader decides how to use it. Timing, per-instance offsets, masks, and blending can make the same bake useful in different ways.
My part in it
From Blender to the engine
I made the Blender tool and the Unity and Unreal integrations. Geometry Nodes handles the baking; Python handles the interface and workflow. Working on both sides meant dealing with the practical bits too: vertex mapping, normals, precision, and engine import settings.
Engine examples
Unity and Unreal integrations, GLSL templates, and a separate community Godot integration by AntzGames.
One constraint to know
The mesh needs stable topology: the vertex count and order must stay consistent through the animation. VAT playback is baked motion, so any runtime interaction needs to be handled in the shader.