code: def barycentric_to_points(triangles, barycentric):
      
      barycentric = np.asanyarray(barycentric, dtype=np.float64)
      triangles = np.asanyarray(triangles, dtype=np.float64)
  
      if not util.is_shape(triangles, (-1, 3, 3)):
          raise ValueError('Triangles must be (n,3,3)!')
      if barycentric.shape == (2,):
          barycentric = np.ones((len(triangles), 2),
                                dtype=np.float64) * barycentric
      if util.is_shape(barycentric, (len(triangles), 2)):
          barycentric = np.column_stack((barycentric,
                                         1.0 - barycentric.sum(axis=1)))
      elif not util.is_shape(barycentric, (len(triangles), 3)):
          raise ValueError('Barycentric shape incorrect!')
  
      barycentric /= barycentric.sum(axis=1).reshape((-1, 1))
      points = (triangles * barycentric.reshape((-1, 3, 1))).sum(axis=1)
  
      return points
docs: Convert a list of barycentric coordinates on a list of triangles
      to cartesian points.
  
      Parameters
      ------------
      triangles : (n, 3, 3) float
        Triangles in space
      barycentric : (n, 2) float
        Barycentric coordinates
  
      Returns
      -----------
      points : (m, 3) float
        Points in space