arbitrary axis rotation with quaternion | ScratchStats