
1. Overview  2. Errata 
3. Software Listings from Visualizing Quaternions 
4. Demonstration Programs 
5. Acknowledgements and Disclaimer 


1. Overview 


IntroductionVisualizing Quaternions, is published by MorganKaufmann/Elsevier, ISBN 10:0120884003/ISBN 13:9780120884001. The book presents a comprehensive approach to the significance and applications of quaternions. This web page contains a selection of machine readable material such as code listed in tables in the book itself, as well as demonstrations related to the figures and implementing some of the visualizations mentioned in more detail. 

About the authorAndrew J. Hanson is a professor of computer science at Indiana University in Bloomington, Indiana, and has taught courses in computer graphics, computer vision, programming languages, and scientific visualization. He received a BA in chemistry and physics from Harvard College in 1966 and a PhD in theoretical physics from MIT in 1971. Before coming to Indiana University, he did research in theoretical physics at the Institute for Advanced Study, Cornell University, the Stanford Linear Accelerator Center, and the LawrenceBerkeley Laboratory, and then in computer vision at the SRI Artificial Intelligence Center in Menlo Park, CA. He has published a wide variety of technical articles concerning problems in theoretical physics, machine vision, computer graphics, and scientific visualization methods. His current research interests include scientific visualization (with applications in mathematics, cosmology and astrophysics, special and general relativity, and string theory), optimal model selection, machine vision, computer graphics, perception, collaborative methods in virtual reality, and the design of interactive user interfaces for virtual reality and visualization applications. 

A list of errata for Visualizing Quaternions is maintained here. Please contact the author if you have information to add to the errata.
License: please read before downloading listings from this site.  Standard License Text 
Chapter 7: Table 7.1: page 60 Implements ComplexProduct(), ComplexSum(), ComplexConjugate(), ComplexModulus() 
Table 7.1 
Chapter 7: Table 7.2: page 64 Implements QuaternionProduct(), QuaternionDot(), QuaternionConjugate(), NormalizeQuaternion()  Table 7.2 
Chapter 13: Table 13.1: page 128 Implements rollball() 
Table 13.1 
Chapter 29: Table 29.1: page 379 Implements QQTo4DRot[p,q] Mathematica Code for the 4x4 orthogonal rotation matrix in terms of a double quaternion. 
Table 29.1 
Appendix E: Quaternion Survival Kit Tables E.1 through E.7: pages 443450 
Quaternion Survival Kit 
Mathematica Quaternion Utilities  QuatBookUtils.nb 
Appendix H: Quaternion Frame Integration
(Mathematica Implementation) Standard and Quaternion implementations of code to plot a 3D space curve given only its curvature and initial conditions as input. 
QuatFrenetIntegral.nb 
All demonstration programs are without guarantees of any kind and subject to this agreement. Please read this before downloading, running, or incorporating any software from this site.
QuatRot
:
This is a basic
demonstration package written using the most elementary possible
machineindependent OpenGL GLUT interface. A version of this program
has been an essential part of the author's Siggraph tutorials on
quaternions, and it includes the most elementary quaternion visualization
methods as well as a variety of other features such as a SLERP
demonstration.
To the best of our
knowledge, QuatRot
can be compiled and run on any system
supporting OpenGL and GLUT; note that to get all the features, one must
support a threebutton mouse and the shift key as a modifier. A couple of
dozen singlekey keyboard commands to select among a wide variety of
options. The code and documentation are
elementary, but quite sufficient, e.g., to use the tool to visualize the
quaternion diagrams in Part I of the book.
QuatBelt
demonstration
implements and visualizes a set of variations on the Belt Trick
(Chapters 2 and 12), and supplements the necessarily limited images
in the book with an interactive, customizable demonstrations. The
code is based on the Qt system, and is precompiled for Linux and
Windows XP.
QuatMap
demonstration
implements and visualizes mappings from a variety of frame choices on
curves and surfaces to their equivalent quaternion fields. This program
provides an interactive supplement to Chapters 20,21, 22, and 24.
The code is based on the Qt system, and is precompiled for Linux and
Windows XP.
This material is based in part upon work supported by the National Science Foundation under Grant Numbers 0204112 and 0430730.
Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author and do not necessarily reflect the views of the National Science Foundation.