← Back to the portfolio

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.

01

Animate

Use the Blender tools you already work with.

02

Encode

Bake the evaluated deformation into textures.

03

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.

Texture data → vertex offsets → the folding mesh.
OpenVAT Overview - How Do Vertex Animation Textures Actually Work?Watch the explanation on YouTube ↗
OpenVAT Overview - How Do Vertex Animation Textures Actually Work?

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.

17,416Downloads on Blender ExtensionsListing checked November 5, 2026. Downloads include repeat downloads and updates.View the listing ↗80 LevelFeatured June 26, 2025Coverage of OpenVAT’s Blender-to-engine workflow.Read the feature ↗Built on by othersCommunity Godot integrationOpenVAT for Godot by AntzGames, including animated MultiMesh support.Explore their project ↗