Animating rotation with quaternion curves

Ken Shoemake

article1985SIGGRAPH2,651 citations

Introduces quaternion spline curves for smoothly interpolating arbitrary rotations, producing natural camera and rigid-body animation without the artifacts of earlier methods.

Listen

In three-dimensional computer animation and flight simulation, animating the orientation of cameras and solid objects traditionally relies on key-frame techniques using Euler angles. However, interpolating Euler angles independently across individual axes causes unnatural rotational motions, axis bias, and gimbal locka failure where a rotational degree of freedom is lost. The article addresses these fundamental shortcomings by investigating how best to represent and smoothly interpolate general three-dimensional rotations.

The article evaluates the mathematical properties of four-coordinate unit quaternions on a three-dimensional sphere and develops an automated spline-based framework to generate smooth in-between orientations for animation sequences.

To construct this solution, the article adapts Pierre Bézier’s geometric curve techniques to the non-Euclidean spherical geometry of unit quaternions. Instead of interpolating along straight Euclidean pathswhich introduces artificial speed variationsthe approach uses spherical linear interpolation along great circle arcs. Successive spherical Bézier curve segments are linked together using automated geometric constructions that average adjacent differences, establishing first-order continuity across joints without requiring manual parameter tuning by animators.

The investigation produced several key findings. First, unit quaternions naturally mirror the intrinsic geometry of three-dimensional rotation space, completely eliminating gimbal lock and remaining strictly independent of coordinate axis choices. Second, while basic great-arc spherical linear interpolation maintains constant rotational speed between two keys, it causes abrupt direction changes at multi-key joints; piecewise spherical Bézier curves successfully resolve this by guaranteeing first-order smooth transitions. Third, when rotation points lie along a single axis, the spherical Bézier construction simplifies into a pure, constant-speed rotation around that chosen axis. Finally, conversion between rotation matrices and quaternions is highly computationally efficientrequiring at worst one square root, three divisions, and basic arithmeticavoiding the expensive, ill-defined inverse trigonometric evaluations necessitated by Euler angles.

These results demonstrate that quaternion-based spherical interpolation significantly enhances visual realism and algorithmic stability in animation and simulation pipelines. By automating the interpolation process, production systems can decouple internal mathematical representations from user interfaces, eliminating manual key-frame patching, reducing computation costs, and avoiding visual motion artifacts.

Animation software architects and graphics pipeline engineers should adopt unit quaternions as the standard internal representation for camera and rigid-body orientation interpolation. Future development should explore expanding this geometric framework to spherical B-splines, constructing curves parameterized by arc length to improve timing control, and addressing methods for inserting sequence points without perturbing existing curves.

The presented approach focuses strictly on rigid-body and camera rotations, offering limited applicability to planar motion or complex robotic joint linkages. Additionally, the curves lack guaranteed second-order continuity and can occasionally develop kinks between interpolated keys. Nevertheless, the underlying spherical geometry and numerical results provide high confidence in the robustness and efficiency of quaternion curves for general 3D animation.

Shoemake (1985).pdf
  • Paper: Point Set Registration: Coherent Point Drift, Andriy Myronenko et al. (2009). This paper extends spatial alignment concepts from rigid rotation curves to probabilistic non-rigid point set registration using coherent motion drift.
Cover for Animating rotation with quaternion curves

Abstract

Solid bodies roll and tumble through space. In computer animation, so do cameras. The rotations of these objects are best described using a four coordinate system, quaternions, as is shown in this paper. Of all quaternions, those on the unit sphere are most suitable for animation, but the question of how to construct curves on spheres has not been much explored. This paper gives one answer by presenting a new kind of spline curve, created on a sphere, suitable for smoothly in-betweening (i.e. interpolating) sequences of arbitrary rotations. Both theory and experiment show that the motion generated is smooth and natural, without quirks found in earlier methods.

Table of Contents

  • 1. Introduction
  • 2. Describing rotations
  • 2.1 Rigid motion
  • 2.2 Rotation matrices
  • 2.3 Quaternions
  • 2.4 Euler's angles
  • 3. In-betweening alternatives
  • 3.1 Straight line in-betweening
  • 3.2 How quaternions rotate
  • 3.3 Great arc in-betweening
  • 3.4 Rotation geometry and topology
  • 3.5 Splines
  • 3.6 Bézier curves
  • 4. Spherical Bézier curves
  • 4.1 Joining curves
  • 4.2 Choosing joint segments
  • 4.3 Evaluating on the sphere
  • 4.4 Tangents revisited
  • 5. Results
  • 5.1 The grand scheme
  • 5.2 Properties
  • 5.3 Applicability
  • 5.4 Comparisons and complaints
  • 6. Questions
  • 7. Acknowledgments
  • References
  • Appendix I-Conversions
  • I.1 Quaternion to matrix
  • I.2 Matrix to quaternion
  • I.3 Euler angles to quaternion
  • I.4 Euler angles to matrix
  • I.5 Matrix to Euler angles
  • I.6 Quaternion to Euler angles

Knowls

  1. Knowl 1 — Computer Graphics Seminar Topic Curriculum (WS 2019/2020)

    data/table

    The curriculum specifies 30 seminar topics and reference literature covering computer animation, rendering, geometric modeling, collision detection, and GPU algorithms for the Winter Semester 2019/2020:

    1. Quaternionen: Animating rotation with quaternion curves (Shoemake)
    2. Vertex Blending: Slashing Through Real-Time Character Animation (Game Developer)
    3. BRDF Theory: Geometric Considerations and Nomenclature for Reflectance (Nicodemus et al.)
    4. Glossy Effects: Multi-pass Pipeline rendering: Realism for dynamic environments (Diefenbach et al.)
    5. Shadow Volumes: Shadow Algorithms for Computer Graphics (Crow)
    6. Shadow Map: Casting Curved Shadows on Curved Surfaces (Williams)
    7. Surface Angle Silhouetting: Interactive Technical Illustration (Gooch et al.)
    8. Procedural Geometry Silhouetting: Image Precision Silhouette Edges (Raskar et al.)
    9. Line Rendering: Advanced Graphics Programming Techniques using OpenGL course notes (Mc Reynolds et al.)
    10. Impostors: Imposters: Adding Clutter (Forsyth)
    11. BSP Trees: The Design and Analysis of Spatial Data Analysis (Samet)
    12. Hierarchical z-Buffering: Hierarchical z-Buffer Visibility (Greene)
    13. HOM Algorithm: Visibility Culling using Hierarchical Occlusion Maps (Zhang et al.)
    14. Point Rendering: The use of points as a Display Primitive (Levoy et al.)
    15. Bezier Curves: Curves and Surfaces for Computer Aided Geometric Design (Farin)
    16. Kochanek-Bartels Curves: Interpolating Splines with local tension (Kochanek)
    17. N-Patches: Curved PN-Triangles (Vlachos)
    18. Implicit Surfaces (Blobby Modelling): A Generalization of Algebraic Surface Drawing (Blinn)
    19. Catmull-Clark Subdivision: Recursively generated B-Spline Surfaces on arbitrary Topological Measures (Catmull et al.)
    20. Oriented Bounding Boxes by Gottschalk: Collision Queries using oriented Bounding Boxes (Gottschalk)
    21. Collision Detection using BSP Trees: Dynamic Plane Shifting BSP Traversal (Melax)
    22. OBB Tree: OBBTree: A hierarchical structure for Rapid Interference Detection (Gottschalk et al.)
    23. Front Tracking: Efficient Collision Detection for Interactive 3D Graphics and Virtual Environments (Klosowski)
    24. GJK Algorithmus: A fast procedure for computing the distance between Complex Objects in Three-dimensional space (Gilbert et al.)
    25. Deferred Shading: Reference implementation via LearnOpenGL
    26. GPGPU: Architekturen und APIs: CUDA and OpenGL architectures
    27. Fluidsimulation mit Smoothed Particle Hydrodynamics (SPH): Royal Society Publishing reference (doi:10.1098/rspa.2019.0801)
    28. Partikelrendering: Pixar RenderMan 20 particle rendering tutorial
    29. Berechnung von Optischem Fluss auf GPU: OpenCV optical flow algorithms on NVIDIA Turing GPUs
    30. Datenstrukturen auf der GPU: GPU Gems 2 (Chapter 33)

Coverage note — None was omitted; the source document is solely a four-page seminar reading list and curriculum topic overview without additional text or technical exposition.

Citation

MLA
Shoemake, K. “Animating Rotation with Quaternion Curves”. Proceedings of the 12th Annual Conference on Computer Graphics and Interactive Techniques - SIGGRAPH '85, 1985, pp. 245–54, https://doi.org/10.1145/325334.325242.
APA
Shoemake, K. (1985). Animating rotation with quaternion curves. Proceedings of the 12th Annual Conference on Computer Graphics and Interactive Techniques - SIGGRAPH '85, 245–254. https://doi.org/10.1145/325334.325242
Chicago
Shoemake, K. 1985. “Animating Rotation with Quaternion Curves”. Proceedings of the 12th Annual Conference on Computer Graphics and Interactive Techniques - SIGGRAPH '85, 245–54. https://doi.org/10.1145/325334.325242.
Harvard
Shoemake, K. (1985) “Animating rotation with quaternion curves”, Proceedings of the 12th annual conference on Computer graphics and interactive techniques - SIGGRAPH '85. ACM Press, pp. 245–254. Available at: https://doi.org/10.1145/325334.325242.
Vancouver
1. Shoemake K (1985) Animating rotation with quaternion curves. In: Proceedings of the 12th annual conference on Computer graphics and interactive techniques - SIGGRAPH '85. ACM Press, pp 245–254

BibTeX

@inproceedings{Shoemake_1985, series={SIGGRAPH ’85}, title={Animating rotation with quaternion curves}, url={http://dx.doi.org/10.1145/325334.325242}, DOI={10.1145/325334.325242}, booktitle={Proceedings of the 12th annual conference on Computer graphics and interactive techniques  - SIGGRAPH ’85}, publisher={ACM Press}, author={Shoemake, Ken}, year={1985}, pages={245–254}, collection={SIGGRAPH ’85} }
Metadata:Crossref

Access the Paper

This paper is available from its original source. Click below to access the PDF.

Open PDF