Here it is without groups, with tween easing and using the animation loop. However, it does not use rotateOnWorldAxis (no need for it) and it is not react-three-fibered (I don’t do R3F), so, I guess, no bonus for me:
Here it is without groups, with tween easing and using the animation loop. However, it does not use rotateOnWorldAxis (no need for it) and it is not react-three-fibered (I don’t do R3F), so, I guess, no bonus for me: