def METHOD_NAME(self, objects, axis=0):
    """Populate a kd-tree with given objects.
    Parameters
    ----------
    objects : sequence[tuple[[float, float, float] | :class:`~compas.geometry.Point`, int or str]]
        The tree objects as a sequence of point-label tuples.
    axis : int, optional
        The axis along which to build.
    Returns
    -------
    Node or None
        The root node, or None if the sequence of objects is empty.
    """
    if not objects:
        return
    objects.sort(key=lambda o: o[0][axis])
    median_idx = len(objects) // 2
    median_point, median_label = objects[median_idx]
    next_axis = (axis + 1) % 3
    return Node(
        median_point,
        axis,
        median_label,
        self.METHOD_NAME(objects[:median_idx], next_axis),
        self.METHOD_NAME(objects[median_idx + 1 :], next_axis),
    )