anchor.diff:  
   *_Any 3D rotation is equivalent a unit quaternion stem:[q] that stem:[\left|q\right|=1]._*
   
  +---
   .Side Note
   ****
   This claim actually has 2 sides. Let me go a little be more in details in math term: 
  
positive.code: :stem: latexmath
  :figure-caption!:
  
  === Before We Start
  
  Quaternion is widely used in game engines to represent 3D rotation. As a game engineer you might be using quaternion explicitly or implicitly in your daily work, but do you really understand what is going on under the hood when you are calling “rotate a vector” or “combine two rotations”? Why rotating a vector stem:[v] by quaternion stem:[q] is calculated by a “sandwich” multiplication: stem:[qvq^{-1}] ? Why rotating by quaternion stem:[q_1] then stem:[q_2] is in the reversed order: stem:[{q_2}{q_1}], and can you visualize the result rotation axis and angle?
  
  
negative.code: 
  The order of stem:[q=-{q_b}{q_a}] on the right hand side is important. It means flip along stem:[\vec{a}] first and then stem:[\vec{b}]. Actually all unit quaternion multiplication needs to be “read” from right to left when we are thinking about the order of applying those rotations.
  
  ---
  .Side Note
  ****
  We can however get rid of the negative sign by choosing stem:[\vec{a}] and stem:[\vec{b}] differently.
  