This is a second year university project to investigate collision detection in a 3D environment, and how spacial partitioning systems can be used to reduce the number of collision checks that must be made.
I started by implementing a standard O(n^2) algorithm and then implementing both a grid based partitioning structure and a dynamic octree structure to reduce to number of collision checks that must be made.
Click here to download the project. (Source, executable and documentation)