I briefly explored a new preprint, Jean-Pierre Eckmann, Tsvi Tlusty (2025), Walks in Rotation Spaces Return Home When Doubled and Scaled, arXiv:2502.14367. https://doi.org/10.48550/arXiv.2502.14367. The paper investigates sequences (or “walks”) of rotations in SO(3) and shows that—even for very complicated sequences—there is a universal procedure to return a system exactly to its initial state.The main finding is that while a single pass through a randomly generated walk of rotations rarely returns to the identity (due to the structure of the Haar measure), repeating the walk some times and uniformly scaling the rotation angles almost always yields an exact return to the initial state. I also showed this feature for SU(2) group.
I would like to thank Michael Trott for highlighting this paper and for his insightful discussions and valuable suggestions.

Rotation group SO(3)

Using CircularRealMatrixDistribution, one can generate a Haar-measure ensemble on the orthogonal group O(n). Proper rotations, characterized by determinant +1, form the special orthogonal group SO(n).
Show that CircularRealMatrixDistribution generates matrices with a 50%-50% split of determinants +1 and -1.
In[]:=
det=MatrixPropertyDistribution[Det[],CircularRealMatrixDistribution[3]];​​NProbability[Δ1,Δdet]​​NProbability[Δ-1,Δdet]
Out[]=
0.500172
Out[]=
0.500958
Since in the paper, authors considered only SO(3), we will generate an ensemble of SO(3):
In[]:=
so3=Table[Module[{mat},​​While[True,mat=RandomVariate[CircularRealMatrixDistribution[3]];​​If[Det[mat]==1,Return[mat]]]][[1]],100];
One can find the overall result of rotations together, and denote it as one single rotation:
In[]:=
so3f=Fold[Dot,Reverse[so3]]
Out[]=
{{0.307001,0.951632,-0.0121376},{0.926794,-0.301838,-0.223488},{-0.216342,0.057362,-0.974631}}
Find the corresponding overall angle and axis of rotation:
In[]:=
Quiet[ResourceFunction["AxisAngle"][so3f]]
Out[]=
RotationMatrix[2.96664,{0.806744,0.586579,-0.0713477}]
As expected, the probability of the angle being π is very low.
Create a sphere:
In[]:=
sphere=
Graphics3D[
]
;
Show each step of the walk on the sphere (as expected, non returns to the initial point):
Out[]=
Create many ensembles of SO(3) and their overall rotation:
In[]:=
ensembleSO3=Table[Module[{u},​​u=Table[Module[{mat},​​While[True,mat=RandomVariate[CircularRealMatrixDistribution[3]];​​If[Det[mat]==1,Return[mat]]]][[1]],100];​​Fold[Dot,u]],10^4];
Calculate the distance (as norm-2) wrt IdentityMatrix[3]:
In[]:=
Histogram[Norm[#-IdentityMatrix[3]]&/@ensembleSO3,Automatic,"Probability",AspectRatio->1/4,PlotLabel->"Histogram of norm distances from the 3×3 identity matrix."]
Out[]=
As expected, most cases are far from the 3×3 identity matrix, meaning that obtaining it as the overall result is unlikely.
Now consider these cases:
​(i) No-scaling: the overall result of all rotations
u
f
=
Π
k
u
k
,
​(ii) single-scaled: the case that each rotation is raised to a power
W
λ
=
Π
k
λ
u
k
which is the same as assuming that all angles of rotations are multiplied by λ, and
​(iii) Double-scaled: the case of
2
W
λ
Out[]=
No scaling
Single scaled
Double scaled
For values of λ where the green plot intersects the x-axis, these instances validate the claim of the paper.
Of course, one can generate similar plots as Fig.3 of the paper, by calculating the overall rotation angle.
A function to calculate the overall rotation angle:
In[]:=
rotationAngle[matrix_]:=ArcCos[Clip[Chop@((Tr[matrix]-1)/2),{-1,1}]];
Visualize the overall rotation angle:
Out[]=
No scaling
Single scaled
Double scaled

Continuous walk

The Lie algebra of SO(3) can be generated by antisymmetric matrices, which can be obtained from a 3D vector. Every 3D vector corresponds to a antisymmetric matrix, which acts like a rotation axis. Exponentiating an antisymmetric matrix gives a valid rotation matrix. We adopt a random walk approach to ensure that each step modifies both the rotation angle and axis slightly, leading to a sequence that, over time, is distributed according to the Haar measure on SO(3).
Define a helper function to form a 3 x3 antisymmetric matrix from a 3-vector
In[]:=
Clear[Skew];​​Skew[v_]:={{0,-v[[3]],v[[2]]},{v[[3]],0,-v[[1]]},{-v[[2]],v[[1]],0}};
Define a function that returns a small random rotation with δt controls the typical magnitude of the step:
In[]:=
Clear[smallRandomRotation];​​smallRandomRotation[δt_]:=MatrixExp[Skew[RandomVariate[NormalDistribution[0,δt],3]]];
Generate an ensemble of rotation matrices starting with the 3 x3 identity:
In[]:=
Clear[generateRotationEnsemble];​​generateRotationEnsemble[tf_,δt_]:=NestList[smallRandomRotation[δt].#&,IdentityMatrix[3],Floor[tf/δt]+1];
Generate 100 rotations with a small step size δt = 0.01:
In[]:=
ensembleContinuousWalk=generateRotationEnsemble[4,0.1];
Generate the steps (points on the sphere) given the ensemble of rotations:
In[]:=
noScaling=FoldList[#2.#1&,{0,0,1},ensembleContinuousWalk];
Visualize the overall rotation for different cases:
In[]:=
Plot[{rotationAngle[Fold[Dot,Reverse[ensembleContinuousWalk]]],rotationAngle[Fold[Dot,MatrixPower[#,λ]&/@Reverse[ensembleContinuousWalk]]],rotationAngle[MatrixPower[Fold[Dot,MatrixPower[#,λ]&/@Reverse[ensembleContinuousWalk]],2]]},{λ,0,1},PlotRange->All,GridLines->Automatic,PlotLegends->{"No scaling","Single scaled","Double scaled"},PlotStyle->{Dashed,Automatic,Automatic},AxesLabel->{"λ","Rotation Angle"},ImageSize->Large,Ticks->{Automatic,{{0,"0"},{π/4,"π/4"},{π/2,"π/2"},{3π/4,"3π/4"},{π,"π"}}}]
Out[]=
No scaling
Single scaled
Double scaled
For the following visualization, pick a value of λ that is those where the green line intersects with x-axis

Rotation of a qubit: SU(2) group

Similar argument can be done if one think of rotation of qubits in SU(2) group.
Generate 100 random matrices belonging to the SU(2) group.
For values of λ where the green plot becomes 1, these instances validate the claim of the paper.
Similar to Fig.3 of the paper, one can find the rotation angle for SU(2) matrices, too:
Visualize them:

CITE THIS NOTEBOOK

Walks in rotation spaces return home when doubled and scaled​
by Mohammad Bahrami​
Wolfram Community, STAFF PICKS, February 25, 2025
​https://community.wolfram.com/groups/-/m/t/3399789