Oliver Heaviside and Lord Kelvin both considered it as an evil concept and strongly believed that Maxwell was misled by using it to derive Maxwell's Equations. Heaviside then come up with the famous modern version of Maxwell's Equations with four equations but now ironically all of them can be represented with one concise single equation using quaternion based on geometric algebra [1]. It's probably worth to mention that Einstein was using quaternion concept when discovering his infamous special relativity [2].
It's interesting to note that complex number was once had the same fate as quaternion and it was also considered as an evil concept at the time by many well-known mathematicians not unlike the concept of zero/sifar/cipher when it's first invented and then popularized by the Arab mathematicians. Modern engineering achievements for example the wonderful world of mobile and digital communication are all based on complex number concept namely in-phase and quadrature or I/Q for short. This venerable concept of I/Q however is limited once you wan to include and consider polarization of the EM wave and this is when quaternion become very handy and useful [3]. I'd not be surprised that the next generation of wireless mobile i.e. 6G will be based on this new 3D quaternion based I/Q or I/Q/P (not yet a concept maybe soon), similar to the impact of I/Q as the basis of successful 2G to the 5G with their OFDM.
[1] A derivation of the quaternion Maxwell’s equations using geometric algebra:
It's somewhat silly to read about animation using a static doc. My preferred intro to quaternions in the context of motion is the pair of articles at https://acko.net/tag/quaternions/. They were critical helping me learn quaternions for computer graphics. I also recommend https://acko.net/blog/how-to-fold-a-julia-fractal/ as a primer if you aren't comfortable with regular complex numbers.
They’re ubiquitous in computer graphics for video games and to some degree in space and aeronautics. They’re better than Euler angles because they don’t go singular as often. There are other more ansvanced and better parametrizations though.
In space rotations are of critical importance and ensure stability or instability depending on the axis of rotation
A term I've often heard is "gimbal lock"[1]. Can happen, eg, when a player points the camera straight up, then tries to rotate themselves (depending on how your axes are set up). I don't believe quaternions _ever_ have that particular problem, so not quite sure what is meant by "less often," here.
You’re right, quaternions don’t go singular. I misremembered what the problem was. And the problem with the quaternions is that the multiple revolutions will resolve to the same quaternion and then you don’t know how many times you’ve revolved around. For some applications this is important to know.
The Grass Valley Group's late 1980s real-time digital video effects system, the Kaleidoscope, used quaternions for orientation of 2D planes in 3D space (Cartesian) to avoid gimbal lock although it also offered Euler angles for animation of multiple rotations.
Any animation software uses it. Even if you manually set up rotations of an object, like the camera, via xyz-rotations, as soon as you start animating them via keyframes, the interpolation is done by using quaternions. Maya exposes them in their API, Blender, Unreal also do so, basically any system.
While an animation system might not have had it in the beginning, it can be added later and all the benefits can be used, without doing any major changes to the system. You first transform the Euler rotation into a quaternion rotation, then do your work with them, like interpolating a rotation, and when you want to visualize this interpolation, you just calculate the Euler rotation for a given interpolation step and apply the xyz rotations to the object to visualize it.
18 comments
[ 4.7 ms ] story [ 59.9 ms ] threadIt's interesting to note that complex number was once had the same fate as quaternion and it was also considered as an evil concept at the time by many well-known mathematicians not unlike the concept of zero/sifar/cipher when it's first invented and then popularized by the Arab mathematicians. Modern engineering achievements for example the wonderful world of mobile and digital communication are all based on complex number concept namely in-phase and quadrature or I/Q for short. This venerable concept of I/Q however is limited once you wan to include and consider polarization of the EM wave and this is when quaternion become very handy and useful [3]. I'd not be surprised that the next generation of wireless mobile i.e. 6G will be based on this new 3D quaternion based I/Q or I/Q/P (not yet a concept maybe soon), similar to the impact of I/Q as the basis of successful 2G to the 5G with their OFDM.
[1] A derivation of the quaternion Maxwell’s equations using geometric algebra:
http://peeterjoot.com/2018/03/05/a-derivation-of-the-quatern...
[2] Quaternions in University-Level Physics Considering Special Relativity:
https://arxiv.org/ftp/physics/papers/0308/0308017.pdf
[3] Modeling dual polarization wireless fading channels using quaternions:
https://ieeexplore.ieee.org/document/1708024
In space rotations are of critical importance and ensure stability or instability depending on the axis of rotation
A term I've often heard is "gimbal lock"[1]. Can happen, eg, when a player points the camera straight up, then tries to rotate themselves (depending on how your axes are set up). I don't believe quaternions _ever_ have that particular problem, so not quite sure what is meant by "less often," here.
[1] https://en.wikipedia.org/wiki/Gimbal_lock
https://docs.godotengine.org/en/stable/classes/class_quatern...
While an animation system might not have had it in the beginning, it can be added later and all the benefits can be used, without doing any major changes to the system. You first transform the Euler rotation into a quaternion rotation, then do your work with them, like interpolating a rotation, and when you want to visualize this interpolation, you just calculate the Euler rotation for a given interpolation step and apply the xyz rotations to the object to visualize it.
Unreal's API gives a good overview of the functionality quaternions offer: https://docs.unrealengine.com/4.27/en-US/API/Runtime/Core/Ma...
https://www.youtube.com/watch?v=60z_hpEAtD8
https://www.mathworks.com/help/aerotbx/ug/quatinterp.html
"qi=quatinterp(p,q,f,method) calculates the quaternion interpolation between two normalized quaternions p and q by interval fraction f.
p and q are the two extremes between which the function calculates the quaternion.
Aerospace Toolbox uses quaternions that are defined using the scalar-first convention."