systemtree.com

In computer science, binary space partitioning (BSP) is a method for recursively subdividing a space into convex sets by hyperplanes. This subdivision gives rise to a representation of objects within the space by means of a tree data structure known as a BSP tree. Parametric Binary Dissection (PBD) is a new algorithm that can be used for partitioning graphs embedded in 2 or 3dimensional space.
Rendering: How BSP tree works
This program implements a bsp tree with collision, note that the camera cannot exits the environment. this is done by a simple ray to bsp collision test and if the test fails then the camera gets set back to its previous transformation (matrix)
Binary space partitioning is a generic process of recursively dividing a scene into two until the partitioning satisfies one or more requirements. It can be seen as a generalisation of other spatial tree structures such as kd trees and quadtrees, one where hyperplanes that partition the space may have any orientation, rather than being aligned with the coordinate axes as they are in kd trees or quadtrees. When used in computer graphics to render scenes composed of planar polygons, the partitioning planes are frequently (but not always) chosen to coincide with the planes defined by polygons in the scene.

