Contents:

  1. Overview
  2. Supported client systems
  3. Quick setup for Linux PCs
  4. Conventional setup
  5. Using Vizserver
  6. Visualization software
  7. Note on collaborative sessions
  8. Further information

Remote Visualization Guide


Authors: Andrew Usher, Stuart Rankin & Victor Travieso
Last updated:


Overview

This document describes how to use SGI Vizserver on the Prism graphics server (Cosmogrid) for remote (and possibly collaborative) visualization of data on the COSMOS facility. It allows the fast 3D graphics hardware in Cambridge to render data and transmit the finished images interactively, without requiring fancy graphics at the remote user end, large network bandwidth, or the transfer of the original data.

Vizserver works by rendering OpenGL (3D graphics) windows locally, compressing the contents of the local framebuffer and transmitting them over the network to the Vizserver client running on the remote workstation, where the image is decompressed and displayed. The user at the remote workstation interacts with programs running under Vizserver as if they are remotely displaying via X windows in the usual way (with some modifications).

Using Vizserver to display a set of applications, a local Prism graphics pipe can be used either by a single remote user in single-user session mode, or by up to 10 different users (none of whom need be in Cambridge) simultaneously in collaborative session mode, all of whom can view and interact with the same set of displayed applications.

Q. Why not just run my visualization application in the usual way using X windows, or use VNC if I want to collaborate?

A. If you are not running a 3D graphics application, these other methods may be adequate.

Running a 3D graphics application as a normal remote X windows program requires a remote client workstation with sufficient graphics capability (at least GLX capable) to perform the OpenGL 3D image rendering at the client end (note that usually the full resources of the client graphics card are not available for this type of rendering). VNC renders at the server end, and makes fewer demands of the client, but either cannot handle 3D graphics applications at all or does so with greatly reduced performance. The usability of all remote display methods can of course be limited by the network bandwidth between client and server; VNC employs compression techniques to reduce the required bandwidth, but transmits entire desktops (as well as having problems with 3D).

Vizserver, in contrast, renders 3D application windows at the server end with the full hardware-accelerated capability of the server graphics system, while using (on-the-fly tunable) compression to fit the rendered pixels into the available network bandwidth, and making relatively light demands of the client system (which does not need to be GLX capable or have a high-end graphics card - PC requirements are essentially a PentiumIII cpu and 64MB of RAM).

See below for details on how to setup Vizserver on your system. The current version required for all clients is 3.4.4 or later.

Note that prior to June 2005, the Onyx2 system Horizon provided Vizserver functionality, but this has now been superceded by the Prism system Cosmogrid (a.k.a. Cosmos2).


Supported client systems


Automatic setup for Linux PCs (root not required)

If you have a recentish Linux PC this procedure may work (but obviously we can't test it on every distribution...). It has the twin virtues of (a) not requiring root to install the Vizserver client software, and (b) of incorporating a simple chat client (to make communication easier in collaborative sessions).

Using the cosmogrid script on other (non-Linux) platforms where the SGI client software has been installed centrally may still work - e.g. for MacOSX. In this case the script will take care of the necessary tunnelling and invoke the Vizserver client, but the chat client will not be started.

Note: The IP address of the local system on which you will run the Vizserver client must be registered with Cosmos for security reasons. You must also have a current Cosmos account.

  1. Firstly, download cosmogrid.tgz.

  2. Unpack it as follows to create a directory called cosmogrid:

    tar -zxvf cosmogrid.tgz

  3. Visit the following link and obtain the Linux/IA32 client software:

    http://www.sgi.com/products/software/vizserver/downloads.html

    The current download file is called linux_vizserver_client_3.5.1.tar. Place this in the cosmogrid directory. (At the moment, the earlier linux_vizserver_client_3.4.4.tar and linux_vizserver_client_3.5.tar distributions will continue to work if they were previously installed.)

  4. Enter the cosmogrid directory and run the setup script:

    cd cosmogrid
    ./setup

  5. Now it should be possible to both connect to Cosmogrid and initiate Vizserver by entering the command:

    ./cosmogrid your_cosmos_username

    You will be prompted for your COSMOS password. After successful authentication, several windows will appear:

    • an xterm window called COSMOGRID: Normal X Forward. This contains a shell running on the Cosmogrid server. Any graphical applications started in this shell will be directed over the ssh tunnel to your local X display in the usual way (i.e. not using Vizserver).
    • a window belonging to burble, which is very simple chat client. Either close this if you don't want to use it, or enter your name. A talk box will then appear which can be placed somewhere convenient on the desktop.
    • a Vizserver window requesting your password (again). Pick up the instructions from this point (the username is automatically entered).

Conventional setup (with the aid of root)

This approach assumes your local sysadmin has installed the Vizserver client software the way SGI were expecting. If you happen to be using a Linux PC with an rpm based distribution, consider the quick setup described above which doesn't need root.

First of all you must have the SGI Vizserver client application for your platform. This can be downloaded from SGI (NB our server is running version 3.4.4 and all clients must match this version or version 3.5).

Note: The IP address of the local system on which you will run the Vizserver client must be registered with Cosmos for security reasons. You must also have a current Cosmos account.

Secondly, create a ~/.ssh/config.vizserver file on you local machine with the following content (note that the following is based on OpenSSH 3.7.1p2):

# The ssh-tunnelled Vizserver
Host cosmogrid*
GateWayPorts no
LocalForward 7051 localhost:7051
LocalForward 8192 localhost:8192
LocalForward 8193 localhost:8193
LocalForward 8194 localhost:8194
LocalForward 8195 localhost:8195
LocalForward 8196 localhost:8196
LocalForward 8197 localhost:8197
LocalForward 8199 localhost:8199

To start using Vizserver, please continue to the next section.

Using Vizserver

  1. Start the Vizserver client on your workstation with the command vizserver&.
  2. Make a new connection to Cosmogrid with the following command:
  3. ssh -F ~/.ssh/config.vizserver userid@cosmogrid.damtp.cam.ac.uk    
  4. where userid is the name of your Cosmos account. This sets up a port forwarded connection to Cosmogrid passing through our firewall and maintaining security.
  5. In the hostname box type: localhost (NB not cosmogrid.damtp.cam.ac.uk) and press Log in.




  6. Now enter your usual Cosmos username and password in the appropriate fields and press OK.




  7. You should now see a window like that shown below.




  8. If you wish to join a pre-existing collaborative session, press Join Session. You should then see a window like that shown below.




    Enter the correct Session Name, select a medium Compression level (note this can be adjusted in mid-session) and press OK. The master client (i.e. the client who initiated the collaborative session) must then click OK in a window on his or her screen in order for your attempt to join to succeed.

  9. Otherwise press Start Session to start a new session (note that only one session can run at any one time). You should now see one of the Session Start windows shown below, depending upon whether you go on to select a collaborative or single-user Session Type.



    Collaborative



    Single-User


    Type in a suitable name for the new session if you want a collaboration (this is greyed out otherwise).

    Select a medium Compression level (note this can be adjusted in mid-session, and is unnecessary if you are starting a collaborative session from the local graphics console).

    Press OK.

  10. After a short time a new console window should appear (usually with a grey background - see below). This is where you run your visualization applications on Cosmogrid. Simply execute an application as normal and all OpenGL based graphics will be compressed, sent to you and then decompressed at the client according to the setting specified. Note that X GUI components aren't compressed, only the graphics rendering area. [Also, at the time of writing, only native 64-bit applications are compatible with Vizserver due to the absence of 32-bit Vizserver libraries (so IRIS Explorer will work, but e.g. IDL, Maple and Mathematica won't). Users wishing to collaborate using these applications, without OpenGL graphics, might consider VNC (man vncserver).]




    If in a collaborative session you wish to chat, run the command burble_server& in the Vizserver console window. Each (Linux PC) participant running the burble client program can type messages into their client, and the server window will display these to all. The burble client is included in the cosmogrid.tgz package - users of the quick method will already be running this program (it is started automatically by the cosmogrid script).

  11. Whilst in a session, you can adjust the compression with a trade off in terms of quality against speed, with the dialogue box below. Changes may take a couple of seconds to take effect.






  12. At the end of your session, simply click on Stop session and then click on Log out. Remember to close the initial ssh connection to cosmogrid.


Visualization software

This is a (growing) list of visualisation software available on Cosmogrid which can work with Vizserver:

More texture movies..


Note on collaborative sessions

When involved in a collaborative visualization, each participant can be involved in the session, either passively or actively.

If using the application passively, no input is taken from that user, who can observe the session as it progresses but not interact with it.

When a collaborative session is started, the initiating user is the master of the collaboration. He or she has sole control initially, with other collaborators automatically placed in passive mode. This can be changed by using the moderated input section of the Vizserver Session Control, however, the master user will always have overall control (see below).

The master user can allow input from an individual participant by checking the input box for a particular user, or totally disable moderation, thus allowing input from any user at any time. Warning: This can be very confusing!

Whilst in previous versions of Vizserver, one collaborator would have to be situated at the local graphics console, this is no longer the case as of Vizserver 3.1. Collaborations can now be instigated between client machines, for example two linux boxes, although there can only be one global collaborative session at any one time.

The local graphics console, which is driven by the other Prism graphics pipe, can still participate in a collaborative session, but it is not a requirement. Vizserver will use the second graphics pipe if a session is initiated remotely, so use of Vizserver does not interfere with use of the local console.

Further information

For further information, see:

For help with Vizserver or any of the visualization packages, please email us.