Quaternions are immune to [gimbal lock](https://en.wikipedia.org/wiki/Gimbal_lock), which is when you get yourself into a situation where you can’t rotate something in the direction you want directly without first rotating it out of a specific problematic angle, so they are excellent for 3D engines that want to avoid fuckyness when handling rotation. You can optionally have a bunch of convenience functions to convert to/from Euler angles and create rotation matrices (quaternions) from Euler angle rotation vectors (x, y, z angles), but the actual data representation will be quaternions.
Latest Answers