code: def bounds_tree(triangles):
      
      triangles = np.asanyarray(triangles, dtype=np.float64)
      if not util.is_shape(triangles, (-1, 3, 3)):
          raise ValueError('Triangles must be (n,3,3)!')
  
      # the (n,6) interleaved bounding box for every triangle
      triangle_bounds = np.column_stack((triangles.min(axis=1),
                                         triangles.max(axis=1)))
      tree = util.bounds_tree(triangle_bounds)
      return tree
docs: Given a list of triangles, create an r-tree for broad- phase
      collision detection
  
      Parameters
      ---------
      triangles : (n, 3, 3) float
        Triangles in space
  
      Returns
      ---------
      tree : rtree.Rtree
        One node per triangle