Thinking about using brlcad for geometry and space transformation issues.. brlcad provides methods for CSG and determining if a ray intersects a solid. (a ray has a starting position and a direction) Most of this is in librt. librt relies upon brl-cad's basic numerics and utility libraries (libbn and libbu), libregex, and libz they are currently compiled as static libs (need to link to them at compile time) but sean says he could add a shared lib option to the brlcad makefile