The window in figure 1 (see below) shows the so called MapEditor, which is the main part of the user interface.
It is a Qt-based program to allow interaction with COVISE. In a collaborative session there are as many user interfaces as there are participants. One user is the master and has the complete control over the environment while the others are slaves and can do nothing besides requesting the master role.
The large area in the middle is for placing modules. Connected, they form a flow chart like execution pipeline. By clicking on a module in the module list the user places the desired modules in the MapEditor window. Connecting the modules on a Point-and-Click basis defines the data flow between the modules.
Architecture
The main processes are the User Interface (UI) called MapEditor, the Controller, the COVISE Request Broker (CRB) and the applicaton modules. (See Figure 2, below.)
The local workstation normally is the one where COVISE is started. On this machine the user interface pops up and the Controller is started. All other processes are created from here, either using exec calls for local processes or rexec/rlogin/rsh/ssh for processes on remote computers.
The user can include additional hosts into a session for remote module execution. On each machine, a shared data space exists, which normally consists of shared memory. The CRB administers the use of this shared data space in a database-like fashion.
Collaborative Sessions
COVISE allows several users to work in a collaborative way. One can invite other users on different hosts to participate in the current COVISE session. The user who initiated the collaborative session becomes the master. On all machines a user interface pops up and a CRB is started. Application modules can be started on any host participating in the session. Renderer modules play a special role: in a collaborative session Renderers run locally on each machine. When the master user manipulates the objects in the Render window, only small synchronisation information has to be sent to the other renderer modules. When the master rotates the scene, the new transformation matrix is sent to the controller which in turn sends it to all other (slave-) Renderers. Of course every user can request the master role. For audio- and videoconferencing standard tools like InPerson or the public domain MBONE tools VIC/VAT are usually used.
Integration of Custom Codes and File Formats
Own simulation or rendering codes can be integrated into COVISE as new modules by adding a few calls from the COVISE libraries to create COVISE objects from data and for communication with other COVISE modules.
Virtual and Augmented Reality
The modular structure of COVISE makes it very easy to integrate new modules for special tasks. The complex three-dimensional structure of the datasets that are visualized with COVISE made us look for more advanced visualization techniques. The result was a virtual reality rendering module called COVER (COVISE Virtual Environment), which is based on Iris Peformer. COVER has been replaced by OpenCOVER which is based on OpenSceneGraph.
Click here to get more information about OpenCOVER.
Supported Platforms
COVISE comes with various functionalities that are supported on different machines. For a single or multi user session you need the User Interface, the Controller, the CRB, the application modules amd the OpenInventor renderer running on your system.
For distributing application modules on remote machines (for example if you want to run a simulation module on a NEC-SX8 supercomputer) you only need the CRB on the remote machine.
The desktop visualization module is based on OpenInventor. The virtual reality renderer is based on OpenSceneGraph.
Windows 7-11, Server 2008R2, XP, 32 & 64 bit versions
Mac OS X 10.3-10.6
Linux, Red Hat Enterprise , Fedora, SuSE, Debian, Ubuntu, 32 & 64 bit.