I expected more. But translations and rotations in animation files are stored completely absolute and do not apply to children. No additions, no subtractions, and in the case of quaternions, no matrix multiplication. In each new frame, you just swap the old values with the new.
So that didn’t take very long. Pictured is a Sim breathing out in solace after a passionate kiss.
What the renderer is still missing, though, is proper time synchronization, which is my current task. In fact, I’d like it to properly interpolate between discrete frames of the animation, so the end result displayed on the screen will be silky smooth on a 60Hz monitor.