An animation is made of tracks and keys. Additionally when loaded the interpolationmode can be specified or whether translation and scale should be discarded.
Luxinia does keyframe animation, that means a interpolated key is generated from the next two keys closest in time.
track: Each track is named. When the animation is applied to a model, the tracks will animate bones with matching name. A track contains multiple keys.
key: Every key has a timecode in milliseconds and furthermore has rotation stored as quaternion, scale and translation as vector3. The interpolated outcome is applied to a bone's relative matrix when model animation is performed. That means tracks are also stored relative to parent.
interpolationmode: How an interpolated key between two stored keys is generated depends on the interpolation mode. Luxinia can do "linear" or "spline" interpolation. At the moment (v0.98) spline is only supported for position and scale and is done via "Catmull-Rom" splines. This makes smooth positional curves through fixed keys both in speed and position. Rotational interpolation is always done via quaternion spherical interpolation.