A simple 2D game engine for Go that targets desktop, mobile, WebAssembly and console platforms.
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
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
A retro game engine for Python that lets you make pixel-art games with a fixed palette and low-resolution screen.
A general-purpose tile map editor for building maps for tile-based games such as RPGs, platformers and Breakout clones.
A Godot 4.5+ plugin for building dialogue, visual novels, and RPG conversations with character management.
Open 3D Engine (O3DE), a multi-platform, real-time 3D engine for building games, cinematic 3D worlds and simulations.
A Python game where you play the operating system, scheduling processes and managing memory and I/O events in the browser or on desktop.