docs: def from_indexed_arrays(cls, name, verts, normals):
          """Takes MxNx3 verts, Mx3 normals to build obj file"""
  
          # Put header in string
          wavefront_str = "o {name}\n".format(name=name)
  
  
          new_verts, face_indices = face_index(verts)
          assert new_verts.shape[1] == 3, "verts should be Nx3 array"
          assert face_indices.ndim == 2
  
          face_indices = fan_triangulate(face_indices)
  
          # Write Vertex data from vert_dict
          for vert in new_verts:
              wavefront_str += "v {0} {1} {2}\n".format(*vert)
  
          # Write (false) UV Texture data
          wavefront_str += "vt 1.0 1.0\n"
  
          for norm in normals:
              wavefront_str += "vn {0} {1} {2}\n".format(*norm)
  
          assert len(face_indices) == len(normals) * 2
          for norm_idx, vert_idx,  in enumerate(face_indices):
              wavefront_str += "f"
              for vv in vert_idx:
                  wavefront_str += " {}/{}/{}".format(vv + 1, 1, (norm_idx // 2) + 1 )
              wavefront_str += "\n"
  
          return cls(string=wavefront_str)