Authors: Andrew Usher, Stuart Rankin & Victor Travieso
Last updated:
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.
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).
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.
tar -zxvf cosmogrid.tgz
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.)
cd cosmogrid
./setup
./cosmogrid your_cosmos_username
You will be prompted for your COSMOS password. After successful authentication, several windows will appear:
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.
vizserver&. ssh -F ~/.ssh/config.vizserver userid@cosmogrid.damtp.cam.ac.uk
localhost (NB not cosmogrid.damtp.cam.ac.uk) and press Log in.




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.
Collaborative


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.

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).


Website: http://www.nag.co.uk/welcome_iec.asp.
IRIS Explorer is a commercial tool for developing customised visualization applications.
See the online documentation for more information.
Website: Ionization FRont Interactive Tool
Ifrit is a visualization program to render 3D data sets, originally designed to visualize ionization fronts in cosmological simulations. It can be used for particle, isosurface, volume and vector field visualizations, and has many facilities to create complex scenes and animations from various data sets.
module load cosmolib
ifrit
Inside ifrit, select the menu 'File -> Open Basic Particles' and load the data file '/usr/local/ifrit/demo_part_0001.txt'.
In the top row of tabs, click on 'Particles' and check 'Show' to render the data.
From the 'Main' tab you can set different properties of the visualization area, and under the 'Animation' header you can export frames to a collection of images or directly to an MPEG-2 movie.
You can access the documentation from the 'Help' menu or consult the user guide online for further information on Ifrit.
Partiview is a free 3D viewer for particle-based data sets. To start this on Cosmogrid, use the command partiview. The example data sets and source can be found under /usr/local/partiview.
Press ESC in the partiview window to exit. See http://www.haydenplanetarium.org/hp/vo/du/parti-guide/node55.html for brief mouse navigation instructions.
See the Partiview User Guide (http://www.haydenplanetarium.org/hp/vo/du/parti-guide/partiview-guide.html), and also http://bima.astro.umd.edu/nemo/amnh/.
Vis5d+ is both a file format and an OpenGL-based volumetric visualization program for grid-based datasets, in three space and one time dimensions. It is based on older software called Vis5d (see http://www.ssec.wisc.edu/~billh/vis5d.html).
To start this on Cosmogrid, use the command vis5d. The command given on its own produces a list of options.
http://ab-initio.mit.edu/h5utils/) contains a utility for converting text and HDF5 files into Vis5d format.
Website: Visualization and Analysis Platform for Ocean, Atmosphere and Solar Researches
Vapor is a visualization tool for Unix and Windows systems that provides facilities for 3D visualizations of multi variate data. It's specially suited for vector and scalar time varying field visualization, with good support for very large data sets.
$ module load vapor
$ vaporgui
In the Vapor GUI, select the renderer "3DTexture" instead of "3DTexture-Shader".
Use the menu "File -> Open Session" and load 'VaporSaved-12803.vss' under '/usr/local/vapor/'. This will set up some properties, color and opacity values suitable for the example data set.
Select the menu "Data -> Load Dataset into current session" and open the file '128_03_box.vdf' located in '/usr/local/vapor/'
If you now set the Rendering tab to enable, the field will appear in the visualizer window.
You can rotate the 3D scene with the mouse, and select different opacity and color values for the volumes. In the Animation tab you can evolve the different time steps.
In the View menu, you can capture every frame of an animation into a jpeg image file, and use mencoder to encode the images into a movie. Here is a high resolution example (Uses the MPEG-4/ffmpeg codec).
For more information on the Vapor software, including ways to convert your data into the vapor data format, you can consult the manuals at the Vapor website. If you use images created with vapor in presentations or publications, please cite it.
Website: POV-ray Homepage
POV-ray is a ray tracing program that allows you to create high quality images from simple or complex geometrical objects. It includes a sophisticated description language which supports mathematical expressions, macros and loops, a comprehensive library of ready made objects and textures and advanced graphic capabilities like bump mapping, radiosity, atmospheric effects, etc. It is specially suited for the creation of images and non-interactive movies to illustrate cosmological concepts, for example, brane collisions.
You can invoke 'povray' on COSMOS and COSMOS2 after loading the cosmolib module. Note that large rendering tasks - such as the creation of a high resolution animation - should be submitted to the batch queues. Email 'cosmos_help' if you need help composing a parallel rendering job.
The directory '/home/cosmos/share-ia64/povray' contains several example files included in the distribution. A good collection of physics and mathematics related povray images and tutorials can be found online, for example, here.
Website: MPlayer Homepage
MEncoder, part of the MPlayer distribution, is a powerful tool to create movies from collection of images in common picture formats like jpeg, tga or png. The easiest way is to export every frame of an animation to an image file with a file name that includes ascending number index, eg. image001.jpg to image200.jpg - Most of the visualization software mentioned in this page has such an option. You can then encode the images as a movie by going into the directory and typing (you might need to load the cosmolib module first - 'module load cosmolib') :
$ mencoder mf://*.jpg -mf fps=20:type=jpg -ovc lavc -lavcopts vcodec=msmpeg4:mbd=2:trell -oac copy -o movie.avi
The 'vcodec=' option chooses the encoding format. Some of the most popular ones are 'mpeg4' (divx4/5), 'msmpeg4' (divx3), and 'msmpeg4v2'. You can see all the codecs and options that mencoder accepts in the manual page by typing 'man mencoder'. To play the movie, you can use 'mplayer' on cosmos2, e.g. to play the movie in full screen and looping:
$ mplayer movie.avi -fs -loop 0
|
|
|
|
|
|
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.
For further information, see:
For help with Vizserver or any of the visualization packages, please email us.