# Rotating around an unusual axis

I am trying to make a simple animation. these rings will simply rotate around the diamond. for each ring, I want it to rotate on a different axis. however (excluding the vertical axis), I can't seem to figure out how to do this. is there a way to just rotate it 120 degrees and then rotate it on the z-axis again, just like with the vertical one?

I'm probably just missing something simple though.

I am new to animation in general, so any help would be greatly appreciated.

Your rotations are keyed in Local space.So at its simplest, all you have to do is make your hexagons separate objects, and appropriately rotate each one in Object Mode before animating.

Here, XY hexes are first rotated by 0,60, and 120 degrees about Z. The outer hex is keyed to rotate about its Y axis. The mid and inner hexes have their Animation Data (CtrlL) linked to the outer hex:

You could, if needed, CtrlP parent them all to your diamond.

• Nice one, pretty mesmerizing. That would a fantastic loading animation Commented Feb 12 at 10:19
• @DuarteFarrajotaRamos OP's idea .. not mine :) Commented Feb 12 at 10:22
• There's also a recent tutorial from Ryan King which features rotating rings here. The animation setup section starts here. Commented Feb 12 at 10:26

There is a plenty of options to do this thing, but I see as the optimal solution - to use bones.

You can use each bone as a custom rotation axis. LIKE THIS :

You could rotate each bone around it's Y-axis. Just don't forget to activate Normals as axises — THIS WAY:

To rotate chosen parts you should parent object to the armature "With Empty Groups", then assign vertices to each vertex group manually.

**Keep in mind: after this type of parenting the name of each vertex group is the same as the according bone's name. So just assign vertices to the right vertex groups.

__

Then just rotate each bone in the [Pose Mode]

Here is a geometry nodes solution :

With it, it will randomly rotate mesh islands, aligned with an axis based on the resolution value (in your case it would have to be set to 6)

I aslo made a node group to create the rings proceduraly, this is completely optional

Here is the node group for the rotation operation