I'm working on a skeletal animation system, and I want to interpolate the rotations between frames. The rotations are represented by 3x3 matrices. It's easy enough to interpolate one of the axes linearly by averaging the values from the two frames and re-normalizing, but when you do this with 3 axes, they usually lose their orthogonality. One possible way to interpolate them would be to convert them to Euler angles (which I still need to learn/figure out how to do), interpolate those, and then convert back to a matrix. Is there any way to interpolate matrices without first converting them to another representation?