We can understand a bit more about the nature of 4D rotations by considering their axes and their poles.
In 2D any rotation leaves a single point (which is zero dimensional) unchanged.
In 3D a rotation leaves a single line(1D) unchanged.
When this axis of rotation passes through a sphere it intersects it at a pair of (0-dimensional)points – sometimes called the poles of the rotation. This can be seen in 2D as the fixed points of a Mobius transformation.
Now in 4D the axis of rotation isnt a line, but a plane(2D). Just as the 1D axis of a 3D rotation intersects a 2-Sphere at the 2 poles, the 2D axis of a 4D rotation must intersect the 3-Sphere at its poles. But what are the poles of the 3-sphere like ? Well instead of being 0D points they are 1-Dimensional lines. In fact they are linked circles. In these animations you can see that the objects are swirling through and around one of these circles much like the way smoke flows in a smoke ring. The opposite pole is actually a straight line through the centre of this circle. Rotation about this pole is visible in the way the objects turn as they swirl.
It is also possible choose the axes of rotation so that the poles both project to circles.
By changing some of the constants in the code it is possible to make objects rotate about one pole by a different amount than it rotates about the other pole. For example, to make the non-orientable surfaces shown earlier, I set one rotation to half that of the other, so that when the line goes 360° about one pole, it has only gone 180° about the other, hence a path on the surface swaps sides as it goes around.
Now if the rotation about each pole is by an equal amount you have something called an isoclinic rotation, and this is where things start to get truly mind-bending…