docs: def alignment_matrix_3D(u, v):
      '''
      alignment_matrix_3D(u, v) yields a 3x3 numpy array that rotates the vector u to the vector v
      around the origin.
      '''
      # normalize both vectors:
      u = normalize(u)
      v = normalize(v)
      # get the cross product of u cross v
      w = np.cross(u, v)
      # the angle we need to rotate
      th = vector_angle(u, v)
      # we rotate around this vector by the angle between them
      return rotation_matrix_3D(w, th)