guillaumeblanc / ozz-animation

Open source c++ skeletal animation library and toolset
http://guillaumeblanc.github.io/ozz-animation/
Other
2.46k stars 302 forks source link
animation collada data-oriented fbx game mit-license simd soa sse

logo

ozz-animation

open source c++ 3d skeletal animation library and toolset

ozz-animation provides runtime character animation playback functionalities (loading, sampling, blending...). It proposes a low-level renderer agnostic and game-engine agnostic implementation, focusing on performance and memory constraints with a data-oriented design.

ozz-animation comes with the toolchain to convert from major Digital Content Creation formats (gltf, Fbx, Collada, Obj, 3ds, dxf) to ozz optimized runtime structures. Offline libraries are also provided to implement the conversion from any other animation and skeleton format.

Follow this link for a list of projects using ozz-animation.

Documentation

Documentation and samples are available from ozz-animation website.

Supported platforms

ozz-animation is tested on WebAssembly, Linux, macOS and Windows, for x86, x86-64 and ARM architectures. The run-time code (ozz_base, ozz_animation, ozz_geometry) depends only on c++11, on the C and the C++ standard libraries, and has no OS specific code. Portability to any other platform shouldn't be an issue.

Samples, tools and tests depend on external libraries (glfw, tinygltf, Fbx SDK, jsoncpp, gtest, ...), which aren't need to ship with ozz-animation runtime.

Build status

Linux macOS Windows WebAssembly
master Linux macOS Windows WASM
develop Linux macOS Windows WASM

The dashboard for all branches is available here.

Contributing

All contributions are welcome: code reviews, bug reports, bug fixes, samples, features, platforms, testing, documentation, optimizations...

Please read CONTRIBUTING file for more details about how to submit bugs or contribute to the code.

License

ozz-animation is hosted on github and distributed under the MIT License (MIT).