I received this question on LinkedIn: I'm working on a 3d dynamic aabb tree based on the concepts of Presson's bullet contribution. I came across a bullet forum thread in which Dirk recommended looking at your box2d implementation. I noticed the major difference is that box2d is a balanced tree using a surface area heuristic while bullet's is unbalanced with manhattan distance heuristic. My guess is that keeping your tree balanced resulted in increased maintenance overhead but decreased tree ...