A ball tree is a binary tree in which every node defines a D-dimensional hypersphere, or ball, containing a subset of the points to be searched.
Ball-trees are related to the M-tree, but only support binary splits, whereas in the M-tree each level splits to 2m fold, thus leading to a shallower tree structure.