Thanks for the quick answer, but your sample isn't working properly on my side.
It changes to some random frame on mouse up (try to rotate without throwing).
About crossfade. I'm not sure how it depends on mouse update rate?
Can't we just add 100 intermediate states between frames?
For example,
0 = current image visible,
50 = both images are 50% fade,
100 = next image visible.
So if we have 36 images, that means 3600 states and when we rotate, we actually switch not between 36 images, but between 3600 states (and snapping end to every state % 100, so we don't stop between images)