Open Channel Foundation
Not Logged In |  | 
Open Channel Foundation


Quick Application Search:


CAVERNsoft G2
Get this title!
¤ 
Get CAVERNsoft G2
¤ 
Monitor new releases


Basic information
¤ 
News
¤ 
CAVERNsoft G2 Discussion
¤ 
Reviews
¤ 
FAQ
¤ 
Contributors
¤ 
Vision & Direction
¤ 
History
¤ 
Documentation
¤ 
Support
¤ 
Bugs
¤ 
Patches & Enhancements


Additional resources
¤ 
CAVERNsoft G2 Users
¤ 
Useful links


Foundation :: Visualization and Virtual Reality :: CAVERNsoft G2

CAVERNsoft G2 FAQ


What platforms does it support?
Back to top

G2 is supported on SGIs and Linux mainly but the networking libraries are also supported under Solaris and Win98/NT/2000.


What is the difference between CAVERNsoft and CAVERNsoft G2?
Back to top

G2 differs from the earlier architecture (G1) in a number of important ways:

  • Firstly, it is completely incompatible with G1.
  • Fundamentally G2 breaks all of G1's services into separate and smaller classes. In essence G2 is a toolkit whereas G1 was a monolythic system. G2 will make it easier for us to maintain and port to other platforms, but at the same time should increase flexibility for you.
  • G2 relies heavily on a client/server architecture. Hence many of the networking classes in G2 have client and server versions. Our experience with G1 has shown that although client/server symmetric systems allowed us to more easily build collaborative systems in general, in practice most of the architectures we built were client/server systems. Hence by adopting this out-right we can significantly simplify CAVERNsoft's overall architecture.
  • G2 places the responsibility of threading on the application. G1 was heavily threaded and hence the application program would respond to a series of callbacks. This was in principle a useful concept however in practice we have found many incompatibilities between threads and existing libraries such as Performer, OpenGL and the CAVE library. Hence many server classes in G2 have a Process() member function that can be called within a loop. This loop can be executed in a thread if the programmer so chooses. The programmer is responsible for creating that thread.
  • G2 significantly simplifies G1's persistent shared memory system (Information Resource Broker) both architecturally and at the API level. At the architectural level, data is now only shared via reliable TCP connections. It was found that in practice the only time we shared data over unreliable UDP links was for avatar data or streaming audio. We can do this far more effectively and simply using G2's UDP reflector class. Persistence however is still been supported by G1's database. Hence databases from G1 are still compatible in G2. However the philosophy in G2 is for it to serve the distribution of small pieces of data (such as the location of objects in a scene) rather than both small data and massive data. Although G2 can still handle the same sized datasets in G1, it is does so less efficiently. We will inevitably improve this over time, however it is recommended that for moving large datasets one should use the remoteIO classes in G2. These are designed so that they can move files larger than 2 Gigs. In the future it will be enhanced to be able to move multi-gigabyte files over parallel connections hence making better use of available network bandwidth.


Open Channel Software runs entirely on Open Source Software. We return value to the Software community in the form of services and original software. Most of our content is currently available as source code, with the copyright owned by the original author, All Rights Reserved. Everything else is Copyright ©2000 - 2013 Open Channel Software.

View our privacy statement.
Contact webmaster at openchannelsoftware dot org with questions.