# Sampling a Uniformly Random Rotation

Requires a Wolfram Notebook System

Interact on desktop, mobile and cloud with the free Wolfram CDF Player or other Wolfram Language products.

Requires a Wolfram Notebook System

Edit on desktop, mobile and cloud with any Wolfram Language product.

The orientation of a sphere is an element of and can be represented by three Euler angles. However, uniformly sampling three Euler angles does not result in a uniform sampling of . To generate a uniformly distributed random rotation in , first perform a random rotation about the axis, then rotate the axis to a random position on the sphere.

[more]
Contributed by: Aaron Becker (May 2012)

After work by: James Arvo

Open content licensed under CC BY-NC-SA

## Snapshots

## Details

This Demonstration provides a fast way to generate observations from a uniform distribution on . It also provides a way to generate uniformly distributed perturbations about the axis, which may be useful for simulations and sampling-based planners.

Reference

[1] J. Arvo, "Fast Random Rotation Matrices," Graphics Gems III, 1991.

Arvo's code results in a rotation of about the world axis, leading to incorrect results when the code is used to sample a perturbation. This Demonstration removes that error by premultiplying Arvo's result by a rotation of about the world axis. This flips the signs of st and ct*,* which flips the sign of the first two columns of the rotation matrix. This Demonstration also centers the perturbations about zero instead of biasing the result.

## Permanent Citation