The interface between C++ and Tcl/Tk is performed manually (unlike VTK). It makes it painful to write but the syntax is easy to understand.
The librairies are used by the way (or not) of an interface, loaded dynamically depending of what we want to do. Most of the existing C++ functions are associated with a Tcl command whereas all the visualization is performed with Tk and OpenGL.
We also want to be able to use the libraries without Tcl/Tk and OpenGL. It means that our application doesn't need any graphical tools. By example, Tcl/Tk should not be mandatory to create console applications.
Therefore, we must provide ``basic'' and Tcl/Tk versions of each library. The idea of libraries vs modules comes from this need.
We use naming convention.