Skip to content

xdzj/acl

 
 

Repository files navigation

CLA assistant Build status Build Status GitHub (pre-)release GitHub license

Animation Compression Library

Goals

This library has two primary goals:

  • Implement state of the art and production ready animation compression algorithms
  • Serve as a benchmark to compare various techniques against one another

It is very common for most game engines or animation libraries to implement their own animation compression but the problem is so narrow and focused in scope, that it makes sense for the industry to converge on a single implementation.

Academic papers on the subject often will not compare techniques using the same error metric or raw size function which can skew the results or make them very hard to evaluate. They might also compare against techniques which are not state of the art or even used in production. This library aims to implement as many techniques as possible, side by side, in order to compare them fairly.

Philosophy

Much thought was put into designing the library for it to be as flexible and powerful as possible. To this end, the following decisions were made:

Supported platforms

The library aims to support the most common platforms for the most common use cases. There is very little platform specific code as such it should work nearly everywhere.

The math library is not yet fully optimized for every platform. The overwhelming majority of the math heavy code executes when compressing, not decompressing. Decompression is typically very simple and light in order to be fast. Very little math is involved beyond interpolating values.

  • Compression and decompression:
    • Windows (VS2015, VS2017) x86 and x64
    • Linux (gcc5, clang4, clang5) x86 and x64
    • OS X (Xcode 8.3, Xcode 9.2) x86 and x64
  • Decompression only: Android (NVIDIA CodeWorks)

Getting up and running

Windows, Linux, and OS X

  1. Install the proper compiler for your platform
  2. Install CMake 3.2 or higher
  3. Install Python 3
  4. Generate the IDE solution with: python make.py
    The solution is generated under ./build
    Note that if you do not have CMake in your PATH, you should define the ACL_CMAKE_HOME environment variable to something like C:\Program Files\CMake.
  5. Build the IDE solution with: python make.py -build
  6. Run the unit tests with: python make.py -test

Performance metrics

License, copyright, and code of conduct

This project uses the MIT license.

Copyright (c) 2017 Nicholas Frechette & Animation Compression Library contributors

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

About

Animation Compression Library

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 84.8%
  • Python 14.3%
  • Other 0.9%