Quaternion Demonstrator

by John C. Hart

WWW page by Apostolos Lerios

quatdemo is an interactive tool for demonstrating the composition of unit quaternions and how they represent rotations. The provided executable executes only on Silicon Graphics workstations. For those interested in porting quatdemo to other platforms, the source code is also available in tar archive format; use tar xf quatdemo.tar to unpack the archive. This source code was developed on a Silicon Graphics workstation.

Starting up

To execute quatdemo, just type quatdemo on the command-line; the application accepts no arguments.

You may not adjust the size of the application window during quatdemo's operation. In order to set the window size, you must follow the steps below:

  1. Quit quatdemo, if it's running.
  2. Restart the application by typing its name and hitting Return. You may move the mouse around to place the application window, but do not press on the mouse buttons to drop the window.
  3. Press the space bar.
  4. Adjust the window size.
  5. Click the mouse button to drop the window.

Basic interaction

A typical screen of quatdemo is shown above. The current unit quaternion appears in the lower left hand corner. This value represents the orientation of the free end of the ribbon, with respect to the fixed end. The twists in the ribbon demonstrate the (spherical linear) interpolation of rotations from 1 (no rotation) to the current orientation.

When the demonstrator represents a single component (e.g. 1+0i+0j+0k or 0+0i+1j+0k) then that component will appear upright at the end of the ribbon, when viewed from the first quadrant of the j-k plane. If there is a twist in the ribbon, then the component should be read as negated (e.g. the "i" is upright at the end of the ribbon, but there is a twist in the ribbon, so the demonstrator is representing the quaternion value "-i").

You adjust the view by moving the mouse within quatdemo's window. In terms of keyboard interaction, the following keys influence quatdemo's display:

i
Positive rotation of the free end of the ribbon about the i-axis.
I
Negative rotation about the i-axis.
j
Positive rotation of the free end of the ribbon about the j-axis.
J
Negative rotation about the j-axis.
k
Positive rotation of the free end of the ribbon about the k-axis.
K
Negative rotation about the k-axis.
Space Bar
Reset the ribbon to its canonical orientation, extended along the k-axis, parallel to the i-axis.

Reference

Hart, John C., George K. Francis, and Louis H. Kauffman. Visualizing Quaternion Rotation. ACM Transactions on Graphics 13 (3): 256-276.

A gzip-compressed PostScript version of the paper is available.


Last update: 29 November 1995 by Apostolos "Toli" Lerios
tolis@cs.stanford.edu