I am interested in decomposing an arbitrary rotation in 3D space into the product of two rotations which are constrained to have their axes in the same plane (for instance x-y plane).

Statement of the conjecture

More precisely stated: Let $R$ be an arbitrary 3D rotation. We want to prove that $R_1$ and $R_2$ exist such that $R=R_1R_2$ with $R_1$ and $R_2$ being rotations with their axes in the, say, $x-y$ plane. The rotation angle of $R_1$ and $R_2$ can be arbitrarily chosen.

Empirical evidence

I attempted to verify the problem numerically. I have drawn random numbers which specify the rotation matrices $R_1$ and $R_2$. I then represented on a 3D sphere the rotation obtained by the product $R_1R_2$. The distance of the points represents the rotation angle. The direction identified by the line connecting the point and the origin denotes the orientation of the rotation axis. One sees that the volume is entirely filled (note that only the left half volume is displayed for the sake of clarity, and that the colors encode the distance from the origin).


This supports the conjecture that any arbitrary 3D rotation can be reached with the product of $R_1 R_2$.

Additional remarks

This problem has a direct connection to a physical system. A positive answer to this question would mean that combining together two birefringent plates allows one to realize any arbitrary transformation of the light polarization by controlling the orientation of the plates and the amount of birefringence for each of them.

Note also that it is well clear to me that any 3D rotation can be described with three parameters, for instance, the Euler angles. Here we have $4$ parameters in total which specify the product $R_1 R_2$. Therefore at least one parameter cannot be free.

It is clear to me as well that an arbitrary rotation $R$ can be decomposed as the product $R_x(\phi_1)R_z(\phi_2)R_x(\phi_3)$ where $R_i(\phi)$ is a rotation with respect to $i$-axis by angle $\phi$. Instead, the question posted here is about to decompose a $R$ with two rotations only.

  • $\begingroup$ all rotation axes pass through the origin, right? $\endgroup$
    – sds
    Commented Nov 14, 2014 at 15:10

2 Answers 2


Your given rotation $R(l,\theta)$ around line $l$ by angle $\theta$ is a composition of two symmetries wrt planes $p_1$ and $p_2$ which intersect along $l=p_1\cap p_2$ at angle $\theta/2$:

$$ R(l,\theta) = S(p_1)\circ S(p_2) = S(p_1)\circ S(p)\circ S(p)\circ S(p_2) $$

where $p$ is the plane you are interested in (e.g., $xy$) because $S\circ S=\text{Id}$.

Now, let $l_i=p_i\cap p$ and $\theta_i=2\times\angle(p_i,p)$ be double the angle between $p_i$ and $p$ ($i=1,2$). (You can always select $p_i$ so that neither is parallel to $p$).

Then $$ \begin{align} S(p_1)\circ S(p) &= R(l_1,\theta_1) \\ S(p)\circ S(p_2) &= R(l_2,-\theta_2) \end{align} $$ and

$$R(l,\theta)=R(l_1,\theta_1)\circ R(l_2,-\theta_2)$$

  • $\begingroup$ This answers perfectly solve the problem. A small correction is needed. I suggest to edit as: "Now, let $l_i=p_i\cap p$ and $\theta_i/2=\angle(p_i,p) $ be the angle between $p_i$ and $p$ ($i=1,2$)." $\endgroup$ Commented Nov 14, 2014 at 17:49
  • $\begingroup$ @AndreaAlberti: thanks for the corrections! $\endgroup$
    – sds
    Commented Nov 14, 2014 at 17:52
  • $\begingroup$ Thank you very much for your solution. Very elegant. Actually I suggest $\theta_i/2=\angle(p_i,p)$ instead of $\theta_i=\angle(p_i,p)/2 $. $\endgroup$ Commented Nov 14, 2014 at 17:56

If you're familiar with [ Euler axis , Euler angle ] representation of a generalized 3D rotation, it is fairly easy to prove your conjecture.

Axis 1 rotation. Project the Euler axis down onto the x-y plane. Begin by rotating around this axis by the Euler angle.

Axis 2 rotation. Calculate the elevation angle of the Euler axis. Construct an axis perpendicular to Axis 1 lying in the x-y plane. Rotate about Axis 2 by the elevation angle of the Euler axis.

Exception: If the Euler axis is the +z-axis or -z-axis, discard the choice of the x-y plane for your rotation axes....choose the x-z plane, and carry out the Euler angle rotation about the z-axis.

A note of caution in wording your conjecture. There is no single plane that contains the 2-axis, 2-angle set covering ALL possible 3D rotations. As noted in my exception, there is one Euler axis (the one orthogonal to the plane of choice) that cannot be emulated by 2 rotate axes in that same plane). So, you want to word it so that you're allowed more than one plane of choice to span all possible 3D rotations.

  • $\begingroup$ I don't think the last paragraph is true. For example, to rotate by $20$ degrees around the $z$ axis, take any two lines in the $x,y$ plane such that the angle between the lines is $10$ degrees, rotate $180$ degrees around one one and then $180$ degrees around the other. $\endgroup$
    – David K
    Commented Apr 4, 2020 at 19:02
  • $\begingroup$ I think David K. is correct, showing how to crack the problem of decomposing the about-z-axis angular rotation into R1•R2. Good catch $\endgroup$
    – pbierre
    Commented Apr 6, 2020 at 15:00

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .