Repolode
guillaumeblanc

guillaumeblanc/ozz-animation

Open-source C++ 3D skeletal animation library and toolset for runtime character animation playback, renderer- and engine-agnostic.

Stars
3,134
Forks
367
Open issues
29
Last commit
3 months ago

What is it?

ozz-animation is a C++ library for playing back character skeletal animation at runtime, covering loading, sampling and blending. It is a low-level implementation that does not depend on any particular renderer or game engine, and it is designed around performance and memory use with a data-oriented layout.

The project includes a toolchain that converts common digital content creation formats such as glTF, FBX, Collada, OBJ, 3DS and DXF into ozz's optimized runtime structures. Offline libraries are also provided so developers can add conversion for other animation and skeleton formats.

The runtime code (ozz_base, ozz_animation, ozz_geometry) requires C++17 and the standard libraries, with no OS-specific code. It is tested on WebAssembly, Linux, macOS and Windows across x86, x86-64 and ARM. Samples and tools depend on external libraries such as glfw, tinygltf and the FBX SDK.

Key features

  • 01Runtime skeletal animation sampling and blending.
  • 02Renderer-agnostic and game-engine-agnostic C++17 runtime with no OS-specific code.
  • 03Toolchain converting glTF, FBX, Collada, OBJ, 3DS and DXF to optimized runtime formats.
  • 04Offline libraries for adding conversion from other animation formats.
  • 05Tested on WebAssembly, Linux, macOS and Windows.

Use cases

  • Adding skeletal animation playback to a custom C++ game engine or renderer.
  • Running character animation in browser games via WebAssembly.
  • Building an asset pipeline that converts DCC animation exports into compact runtime data.

Things to know

  • Samples, tools and tests depend on external libraries such as glfw, tinygltf and the Fbx SDK, which are not shipped with the runtime.
  • The license was not automatically recognized, though the README states MIT.

In collections

Topics

#animation#skeletal-animation#game-development#cpp#simd#data-oriented#webassembly#collada#fbx#game

FAQ

What is ozz-animation?
Open-source C++ 3D skeletal animation library and toolset for runtime character animation playback, renderer- and engine-agnostic. ozz-animation is a C++ library for playing back character skeletal animation at runtime, covering loading, sampling and blending. It is a low-level implementation that does not depend on any particular renderer or game engine, and it is designed around performance and memory use with a data-oriented layout.
Is ozz-animation free to use? What license does it have?
ozz-animation is open source under the Other license. Check the license terms before using it in commercial products.
Is ozz-animation still maintained?
Updated within 6 months. The last commit to ozz-animation was on Aug 1, 2026.
What can I use ozz-animation for?
Adding skeletal animation playback to a custom C++ game engine or renderer. Running character animation in browser games via WebAssembly. Building an asset pipeline that converts DCC animation exports into compact runtime data.
Where can I get ozz-animation?
The source code and installation instructions are on GitHub: https://github.com/guillaumeblanc/ozz-animation

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects