The VisGen (visualization generator) component is responsible for generating the geometry. It is a general purpose component that can be used across visualization applications. The reason for the abstraction is so that the visualization applications do not become dependent on a particular visualization package or toolkit. At the same time, it allows the component to be interchanged with another component supporting the same interface. For instance, the regular VisGen component could be replaced with another VisGen component that acts like a collaborative visualization server, sending the geometry across the network to all the participants in the session.
Another useful feature of having a VisGen component is that it acts as a builder, creating the internal visualization package objects dynamically. In our case, since we are using vtk, the VisGen facilitates building dynamic vtk pipelines. Normally, vtk pipelines are developed statically by putting them in the C++ code and then compiling. Using the VisGen, the pipeline can be built during run-time. The VisGen allows the user to add datasets, change filters, remove and add segments of the pipeline, etc.
One other feature of the VisGen is that it provides a higher level interface to visualization algorithms. The person that writes the VisGen must know a great deal about the visualization package (vtk), but anybody can use the VisGen with minimal instruction. In a sense, the VisGen hides some of the ugly details of the visualization package being used.
In the end, the VisGen has to produce some "standard product" that describes the geometry that was generated. One possible "standard product" could be VRML. For now, the "standard product" is a collection of vtkActors. These can be rendered on the desktop very simply using vtk. In the CAVE, they are translated to equivalent Performer structures since vtk cannot handle rendering to multiple displays simultaneously. Basically, another small component is attached to the output of the VisGen that automatically takes care of the translation. See the section about vtkActorToPF.