Here's an overview of how the code is arranged: Library (LGPLv3): ================= API: libdimension/dimension.h, libdimension/dimension/*.h (Implementations for libdimension/dimension/$file.h are generally at libdimension/$file.c) Ray tracing algorithm: libdimension/ray_trace.c Bounding hierarchy: libdimension/prtree.{c,h} Library internals: libdimension/dimension-internal.h and its #includes Tests: libdimension/tests/*.{c,cpp} Benchmarks: libdimension/bench/*.c Python Module (LGPLv3): ======================= Implementation: libdimension-python/dimension.{pyx,pxd} Platform-specific components: libdimension-python/platform.{c.h} Tests: libdimension-python/tests/*.py Client (GPLv3): =============== Implementation: dimension/dimension.in Tests: dimension/tests/*.dmnsn