Giter Site home page Giter Site logo

acl's Introduction

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:

  • The library consists of 100% C++ header files and is thus easy to integrate in any game engine
  • We implement our own math types and functions in order to support 32 and 64 bit floating point math
  • Compression is primarily performed with 64 bit floating point math for maximum precision
  • Decompression is entirely performed with 32 bit floating point math for maximum speed
  • An intermediary clip format is supported in order to facilitate debugging and bug reporting
  • All allocations use a game provided allocator
  • All asserts use a game provided macro

Platforms supported

We aim to support compression and decompression on as many platforms as possible but for now VS2015 on Windows is supported. In the future, SSE, AVX, and Neon will be fully supported as well.

Algorithms supported

Algorithms in bold are not yet supported

Reference material

In order to test the algorithm implementations with real world data, we took the Carnegie-Mellon database. It contains over 2500 animation clips. This is the data all graphs and charts shown will be based on.

MIT License

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

acl's People

Contributors

codydwjones avatar nfrechette avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.