I'm calculating rotation quaternions from Euler angles in Python using SciPy and trying to validate against an external source (Wolfram Alpha). This Scipy code gives me one answer: from scipy.spatial.transform import Rotation as R rot = R.from_euler('xyz', [30,45,60], degrees=1) quat = rot.as_quat() print(quat[3], quat[0], quat[1], quat[2]) # w, x, y, z (w,x,y,z) = 0.8223, 0.0222, 0.4396, 0.3604 while Wolfram Alpha gives a different answer (w,x,y,z) = 0.723, 0.392, 0.201, 0.532 Why the difference? Is it a difference in paradigm for how the object is rotated (ex. extrinsic rotations vs. intrinsic rotations)? Continue reading...