In addition to rotation matrices in SO(3) format, 6D rotation matrices are also used to encode rotations. In the 6D format, you effectively store the first two columns of the rotation matrix and then can compute the third column by taking the cross product between the first two columns. This is often used if you want to differentiate through the 6D rotation representation. If you make gradient updates to the normal 3x3 rotation matrix you will lose the orthogonality property that is needed for a valid rotation matrix. An example: https://arxiv.org/abs/2202.12555

Staffjamesfobrien

Exp maps and quaternions tend to be more useful when you want to take D(something)/D(rotation).

In addition to rotation matrices in SO(3) format, 6D rotation matrices are also used to encode rotations. In the 6D format, you effectively store the first two columns of the rotation matrix and then can compute the third column by taking the cross product between the first two columns. This is often used if you want to differentiate through the 6D rotation representation. If you make gradient updates to the normal 3x3 rotation matrix you will lose the orthogonality property that is needed for a valid rotation matrix. An example: https://arxiv.org/abs/2202.12555

Exp maps and quaternions tend to be more useful when you want to take D(something)/D(rotation).