code: def seeds_from_surface_coordinates(
      triangles, vts_values, triangles_idx, trilinear_coord
  ):
      """Compute points from triangles_indices and trilinear_coord
  
      Parameters
      ----------
      triangles : [n, 3] -> m array
          A list of triangles from a mesh
      vts_values : [m, .] array
          List of values to interpolates from coordinates along vertices,
          (vertices, vertices_normal, vertices_colors ...)
      triangles_idx : [s] array
          Specifies which triangles should be chosen (or not)
      trilinear_coord : [s, 3] array
          Specifies the weight/probability of choosing each triangle
  
      Returns
      -------
      pts : [s, ...] array
          Interpolated values of vertices with triangles_idx and trilinear_coord
  
      See Also
      --------
      random_coordinates_from_surface
      """
      if vts_values.ndim == 1:
          vts_values = np.reshape(vts_values, (-1, 1))
  
      # Compute the vertices for each chosen triangle
      tris_vals = vts_values[triangles[triangles_idx]]
  
      # Interpolate values for each trilinear coordinates
      return np.squeeze(
          np.einsum("ijk,ij...->ik", tris_vals, trilinear_coord)
      )
  
imports: import numpy
label_desc: Use image node_id 2 for calling a global function with example usage: seeds_from_surface_coordinates(triangles, vts_values, triangles_idx, trilinear_coord) and returns: np