 
Summary: Fast Random Rotation Matrices
James Arvo
Program of Computer Graphics
Cornell University
In a previous gem [Arvo 91] I described a method for generating random rotation
matrices based on random unit quaternions. As Ken Shoemake points out in his
gem [Shoemake 92], that algorithm was flawed in that it did not generate uniformly
distributed rotation matrices. For a method based on quaternions that corrects this
defect, with only slightly more computation, see his algorithm. In this gem I describe
a completely different approach to solving the same problem which has the additional
benefit of being slightly faster than the previous method. The approach is based on
the following fact:
To generate uniformly distributed random rotations of a unit sphere, first perform
a random rotation about the vertical axis, then rotate the north pole to a random
position.
The first step of this prescription is trivial. Given a random number, x 1 , between 0
and 1, the matrix R below does the trick:
R =
2
6 6 6 6 6
