Extensions
  • Home
  • Add-ons
  • Themes
  • Approval Queue
  • About
  • Upload Extension
  • Sign in
  • BLENDER.ORG

    • Download

      Get the latest Blender, older versions, or experimental builds.

    • What's New

      Stay up-to-date with the new features in the latest Blender releases.

    LEARNING & RESOURCES

    • Blender Studio

      Access production assets and knowledge from the open movies.

    • Manual

      Documentation on the usage and features in Blender.

    DEVELOPMENT

    • Developers Blog

      Latest development updates, by Blender developers.

    • Documentation

      Guidelines, release notes and development docs.

    • Benchmark

      A platform to collect and share results of the Blender Benchmark.

    • Blender Conference

      The yearly event that brings the community together.

    DONATE

    • Development Fund

      Support core development with a monthly contribution.

    • One-time Donations

      Perform a single donation with more payment options available.

All Add-ons

Add-on OpenVAT
OpenVAT

Encode and preview vertex animation textures.
Add-on by sharpened
About What's New Permissions Reviews Version History
Whacky inflatable tube man: openVAT encoded cloth sim example - showcasing here a visualization of color encoding Dynamic rigidbody collection example Experimental fluid sim captured via mesh reconstruction + VAT. OpenVAT is capable of this type of remeshed-reconstruction, but requires carful setup and consideration - demo files for advanced simulation encoding processes coming soon. Origami frog VAT demo showcase Wall destruction (rigid body collection VAT demo) Proximity-driven VAT showcase - read more about driving VATs in-engine in the OpenVAT full documentation Twist-Monkey Demo: Quick demonstration of an animated twist modifier being encoded and utilized in Unity with openVAT-unity toolset VAT-Encoded Ocean, Animated in geometry nodes, encoded in OpenVAT, used in Unity technical demo Showcasing the result - baked showing the pixel-precise automatically-created UV map for reading the VAT, alongside the VAT export

Overview

OpenVAT is a Blender add-on that encodes Vertex Animation Textures (VATs) directly from animated geometry. Designed for real-time engine export (Unity, Unreal, Godot), it supports:

  • Frame-based geometry capture via Geometry Nodes.
  • Packed or separate normal texture output.
  • Arbitrary attribute encoding (RGB vector + optional scalar).
  • High-quality PNG or EXR export.
  • Auto-setup preview scene and cleanup.
  • Verified extension on the Blender Extensions platform.

Curious to know more about VATS in general and this add-on was created? Check out my overview video: https://www.youtube.com/watch?v=eTBuDbZxwFg

For more information and engine integrations, check out the OpenVAT playlist - with videos from me and other creators utilizing the tool: https://youtube.com/playlist?list=PLxoaj1mvYohtaPyN0qmhTVHZJqLh8VTlt&si=sqy2aLo2mXc8-20J

Get the git: https://github.com/sharpen3d/openvat OpenVAT targets technical artists, shader developers, and studios aiming to bridge Blender simulations, procedural animation, or geometry nodes with performant in-engine playback.

Key Concepts

  • VAT (Vertex Animation Texture): A texture where pixel data stores vertex positions (and optionally normals) per frame.
  • Proxy Object: The "bind pose" reference used as a base for calculating deltas.
  • Remap Info: JSON metadata storing min/max per channel for accurate reconstruction.
  • Packed Normals: Normals encoded into the same texture as position (saves memory but limits angular precision).

Features

Normal Handling

  • None: No normal data.
  • Packed: Normals packed into same texture (RGBA).
  • Separate: Normals stored in a secondary texture.

Transform Handling

  • Encode relative to object space or world space.

Output

  • Mesh Formats: FBX, glTF (.glb or .gltf).
  • Texture Formats: 16-bit PNG or EXR (half-float).
  • Includes: UV mapping for VAT, optional mesh cleanup, optional proxy export.

Interface Breakdown

Encoding Panel (OpenVAT Encoding)

  • Select encode target: Active Object or Collection (combined)
  • Choose encoding mode: OpenVAT Standard or Custom
  • Define Proxy Method: Start Frame, Current Frame, or Selected Object
  • Normal Encoding, Attribute names (if custom), and Remap options

Output Panel

  • Set output directory
  • Choose image + mesh formats
  • View estimated resolution and vertex counts
  • Execute encoding

Encoding Workflow

  1. Install Add-on via Preferences.
  2. Select Target:
    • Mesh or Collection.
    • Choose encoding type.
  3. Configure Settings:
    • Frame range
    • Attribute remapping
    • Normal packing, cleanup, transform
  4. Set Output Directory
    • Choose image and mesh output formats
  5. Click “Encode Vertex Animation Texture”

File Output

Given target MyObject, results are stored like:

/MyExportDir/
└── MyObject_vat/
    ├── MyObject.png             ← position+optional normal data
    ├── MyObject-vnrm.png        ← (if separate normals)
    ├── MyObject-remap_info.json← min/max metadata
    └── MyObject.fbx/.glb/...    ← encoded proxy mesh

Previewing

Immediately after VAT creation, a new object will be added to the scene as a copy of the proxy object with all modifiers stripped and the decoder modifier added. This will be added in the exact location as the active_object and is unselected by default. Hide or move the original and scrub the timeline or play the scene to see the vertex-encoded animation play.

Example Use Cases

  • Bake geometry node animations to textures for engine playback.
  • Export destruction simulations without heavy Alembic caches.
  • Drive shader-based VFX with procedural or dynamic meshes.

Developer & Export Notes

  • Blender coordinate system: -Z Forward, Y Up
  • EXR exports: 16-bit ZIP compression, no dithering
  • PNG exports: 16-bit RGBA, best compatibility
  • VAT Preview scene: auto-created and linked to “OpenVATPreview” collection
  • Scene cleanup: automatic post-encoding

** Using tangent-space normal maps on VAT-animated meshes can be tricky. In most cases, it is recommended to use an object-space baked normal map for surface detail, and comine this with the animated VAT normal for proper surface lighting during deformation. This requires alteration to the default provided shaders.

Engine Support

Engine integrations are meant as example cases and templates, and may require modification for production use cases - feel free to reach out with integration questions and recommendations.

Unity

  • Adding the Unity Package
    • In Unity's package manager, click "Add from Git URL" and paste https://github.com/sharpen3d/openvat-unity.git. This installs OpenVat into Packages of your project, including a custom window for automatic standard setup for basic and PBR usage.
      1. After package is sucessfully installed, Find the custom panel under "Tools > OpenVAT"
      2. Import the entire folder that was created when exporting your VAT via the OpenVAT blender Extension including the json sidecar data.
      3. Point the Folder Path variable to the location of this folder within your Assets (will be something like Assets/myObject - always starting with "Assets/")
      4. Optional: Add standard PBR maps (if available) for your content - Basecolor, Roughness, Metalness, Normal, Emission, Ambient Occlusion make sure to name maps approprately, see note below
      5. Press Process OpenVAT Content - Results in Prefab and Material being created in the same folder, with an automatically looping animation (at default speed) of your content
      6. Modify the base shaders and shader parameters for your use case - add surface texturing, set start/end frames, or set animated = false to define your specific desired frame via animation or scripting.

Unreal 5

*forward rendering only, I am working on a custom vertex factory for a modern approach to handling VATs in Unreal, along with specific VAT creation options to better utilize VAT in Niagara systems. Currently OpenVAT works in Unreal 5 without forward rendering enabled, however this can lead to undesired lighting issues on the VAT when using lit materials.

Watch the walkthrough: https://www.youtube.com/watch?v=T1KVvUIduGI

-Download the zip from Engine_Tools/Unreal5 extract, then drop into the Content of your Unreal project (in system file explorer, not directly into engine UI)

-When you import your own vertex animation texture, make sure it's compression is set to RGB16
-Split your mesh on any hard edges before baking (ensure soft/hard edges are marked, and use automatic edge-splitting for best results), this allows soft and hard edges during vertex sampling.
-This was built in UE5, and is NOT UE4 compatible at the moment. The process is viable for UE4, but setup differs. Please reach out if UE4 integration is needed.

Godot

-Check the Github OpenVAT-Engine_Tools folder for Godot starter content. This is not integrated with a specific importer, but just requires manual entry of min/max values (similar to Unreal). 

** EffectHouse

- As an integration test, I have created a TikTok EffectHouse compatible shader example, which can also be found in OpenVAT-Engine_Tools

What's New

1.0.3 May 19th, 2025

OpenVAT v1.0.3 — Release Notes

Release Date: 2025-04-29
Minimum Blender Version: 4.2.0

New Features

  • EXR Export Option Export as RGB(half) EXR in addition to the existing PNG option

  • RGB (no alpha) Default Export Previously, VATs exported with blank Alpha channel, now all exports strip the Alpha channel for better (RGB) formatting.

  • Custom Frame Range Encoding
    Export VATs with precise control over the frame range to encode.

  • Deformation Basis Options
    Choose deformation basis from Start Frame, Current Frame, or a Custom Proxy object.

  • GLTF Export Support Export model by default as GLTF or GLB (for Godot) or choose to not automatically export a model - handle this yourself after creating the VAT.

  • Attribute Stripping Often after creating a VAT, there is no use for vertex data like vertex groups and colors - an option has been added to strip this data from the mesh result, as to not carry unnecessary data.

  • Transform Space Control
    Select whether to bake object space or world space deformation into the VAT.

  • Target 'Collection Combined' Mode
    Export a combined mesh from all objects in a collection into a single VAT.

  • Normal-Safe Edge Splitting (Optional)
    Automatically splits sharp edges for safe per-vertex normal capture without modifying the original mesh.

Improvements

  • Refactored and organized code for improved readability and maintainability.
  • General stability and execution consistency improvements.
  • (functions and methods) for testing and eventual UI integration for custom attribute encoding.

See all versions


Permissions

This extension requests the following permission:

  • Files

    Import/export VAT data from/to disk (in a location you specify)

Developer
sharpened
Rating
(8)
Version
1.0.3
Updated
1 mo
Published
July 26th, 2024
Downloads
6163
Size
232.5 KB
Compatibility
Blender 4.2  and newer
Supported Platforms
  • macOS Apple Silicon
  • Windows
  • Linux
Website
github.com/sharpen3d/openvat
Report Issues
github.com/sharpen3d/openvat
License
GNU General Public License v3.0 or later
Animation Game Engine Geometry Nodes
...or download and Install from Disk
  • 232.5 KB

Reviews

See all
  • michaelharmon
  • v1.0.3
  • 4 w

sharpen3d has done an incredible job especially with this new version. It's intuitive to use, makes efficient use of texture space while keeping to power of 2 texture sizes, and is actively developed.

if you need easy vertex animation textures, look no further

  • sharpened replied
  • 3 w

Thank you for the kind words, already planning some stability and flexibility updates for the next update - feel free to reach out if you see any lacking features!

  • Ivan-Golubić
  • v1.0.2
  • 1 mo

IDK anything about what kinda work goes on behind the scenes of this, but it works and works well and without it my blender-unity pipeline for VAT would be impossible. I thank you for this. I must add tho, often I have to sort of "cheat" it to get it to make the damn texture. For no reason it refuses to do it with neither of the normals options checked, then another time it does it first try, then another time it doesnt work with the cleanup option checked, and yet another it does etc. I would REALLY like to be able to see what the hell its actually "thinking" and what exactly it does and how to stop it. For example it keeps outputting "vat.001" when the folder is emptied etc ect. Its very useful and mildly to medium frustrating. Please try and perfect it if you can.

  • sharpened replied
  • 1 mo

Hotfix for overwrite handling (.001 folder creation on repeated encoding) available in 1.0.3a (preview update patch on GitHub)

Thank you for the review, next version should have a little more stability. It may help to purge all orphaned data before running the encoding process- your comment about ‘.001’ is kinda hinting this to me. Here’s a video explaining more of what is going on in the background - Baking Complex Vertex Animation For Games (OpenVAT for Blender Overview) https://youtu.be/eTBuDbZxwFg

  • maurisev
  • v1.0.2
  • 2 mo

Awesome addon, although I hoped it would work for Unreal, but I couldn't get it to work

  • sharpened replied
  • 2 mo

Check out the current process for OpenVAT to UE5 here:

Blender to Unreal VAT Pipeline – Real-Time Mesh Animation with OpenVAT https://youtu.be/T1KVvUIduGI

5.0

8 reviews
5
4
3
2
1
Rate this Add-on
  • About
  • Privacy Policy
  • Terms of Service
Download
  • Latest Blender
  • Blender LTS
  • Blender Benchmark
  • Previous Versions
  • Experimental Builds
  • Source Code
  • Release Notes
  • Requirements
Organization
  • People
  • Jobs
About
  • Blender Foundation
  • Blender Institute
  • Blender Studio
  • License
  • Logo & Trademark
  • Credits
  • Privacy Policy
Articles
  • News
  • Press Releases
  • User Stories
Get Involved
  • Dashboard
  • Development
  • Documentation
  • Education
Blender Studio
  • Films
  • Training
Support
  • Manual
  • Community
  • FAQ
Developers
  • Get Started
  • Projects
  • Docs
  • Blog
  • Forum
  • YouTube
  • Python API
Blender Conference
Follow Blender
Support Blender
  • Donate
  • One-time Donation
Artistic freedom starts with Blender The Free and Open Source 3D Creation Suite