The code assumed the tree has to have one node on one side and the two on the others after reaching this branch. https://github.com/cshung/RotatingCube/blob/c4920354fc1809a061f14337d140515f97068675/RotatingCube/BinarySpacePartitionTreeNode.cs#L76 This might not be always true if nodes could be on the plane.