Visualization over the Internet
Andreas Kolb ak@teleweb.atInstitute of Computer Graphics Vienna University of Technology Austria |
Abstract
Scientific visualization is a powerful tool to investigate and analyze complex problems such as CFD-simulation data or medical volumetric datasets. Especially these days where data sets in the range of gigabytes to terabytes have to be illustrated and investigated a large number of valuable visualization techniques have been developed by researchers all over the world. Unfortunately, it takes quite a long time until these scientific advances are available to a broad user community. This is the point where the Internet jumps in as becoming more and more the bridge between scientists providing advanced visualization techniques for complex systems and users all over the world who investigate their problems in various applications.
Keywords: Visualization, Internet
1. Introduction
1.1 WWW as a platform
One of the most impressing developments in communication technology during the past decade has been the amazingly fast evolution of the World Wide Web based on the Internet. The useful combination of intuitive web browsers with similar look and methods of interaction on multiple platforms and servers spreading information all over the web provides a powerful facility to distribute information to a large number of users. Information sharing was never easier than now with the facility Internet.
The main advantage of the Internet is its independence of hardware and software and thereafter makes it possible to connect new developments in the field of scientific visualization and almost any other topic with a large community of users.
1.2 Motivation
Scientific visualization is typically used to illustrate and investigate numerical data with the aim on images that are easier to interpret than the raw underlying numbers. The development of new visualization techniques is usually done by scientists using expensive specialized hardware and visualization software which is in common ways not accessible to the ordinary users. The results of their research can only be passed to other scientists with similar hard- and software or some lucky users who are also owner of such special devices and software components. This is usually only a small subset of potential users, but to reach a broader field of audience, the developed visualization techniques have to be implemented on other, common platforms as well. This step is very time and money intense and, of course, not taken by scientists at all. Because the number of users who have a desktop PC is significantly higher than the number of users currently working with high performance visualization systems, a visualization solution running on simple desktop PCs will improve the distribution of innovative methods from scientific developers to users significantly. The benefits for the developers would be more feedback from a broader field of users and thereafter the possibility to tune the system so that it fits the users best.
To cope with that problem the world wide web might be the key. Due to its "near" platform independence and intuitive way to use it hides the complexity of the beneath internet and connects computers from various types and platforms.
1.3 Demands on a visualization technique
To be broadly accepted by the user community a good visualization technique must cope with the following problems and include these important features:
2. Visualization over the WWW
2.1 Advantages and Disadvantages
The usage of the word wide web at visualization techniques has initiated the development of many platform independent data and program standards. The distribution and retrieval of information has become much more easier than ever before due to standardization taking place on several levels:
As HTML for textual information and JPG/GIF for two dimensional images VRML has gained importance as a modeling language. For three dimensional scenes it can easily be integrated into WWW pages opening the opportunities to present three dimensional data sets with optional user interaction.
Finally, the programming language JAVA [Jav] has created the possibility to write and compile software once and run it on different platforms without modification. JAVA is close coupled with HTML and VRML, providing a toolkit to create portable and interactive applications based on the internet. The disadvantage which comes with that independence is the lower performance in comparison to "machine native" compiled code. The reason for that loss of performance is that JAVA code is interpreted instead of being executed directly. There are several ways to cope with that problem like just-in-time compilers, which translate JAVA code into native machine code before the execution or to use a processor which accepts JAVA as machine language. Such an approach is made by the Sun company the development of the "pico Java" kernel as an inexpensive network computer.
The most common reference model of visualization over the word wide web is the visualization pipeline described in Upson [Ups] and McNabb[Nab]. This model sees the visualization process as a pipeline in which a source of data is fed in and filtered, mapped and rendered to create a final image to envision the data.
The filter process selects the data of interest, the map process creates an abstract geometrical representation of the data perhaps a contour map and the render process takes the 3D geometry from the map process and applies lightning, shading and projection to create a final image. This pipeline is shown in the figure below:
Figure 1: Visualization Pipeline
This model can also be applied to
visualization over the web. The flow begins with the data set and
ends with the final visualization image at the viewer, but
different scenarios occur when considering who has responsibility
for the intermediate processes and where to cut this pipeline to
use the internet as a connecting medium. Generally three
scenarios can be distinguished which differ mainly in their
characteristics of flexibility and demands on the visualization
server and the client performance which are explained in the next
sections in detail.
3. Methods of visualization
3.1 2D visualization publishing
The user sends a request to the publisher in which he tells his needs and wishes by selecting the desired parameter in, for example, HTML forms. The publisher uses CGI scripts to process the information given by the user and creates the visualization as an image or video sequence and posts it on the web. The viewer can investigate this depiction either directly with his browser or download it for using a helping application such as an MPEG player or an image processing program. This scenario is shown in the figure below:
Figure2: 2D visualization, getting images across the WWW
The advantages and disadvantages are clear: This is the least expending method for the viewer to get his visualization as all the filtering, mapping and rendering is done by the visualization server. The client has only to download the picture or video sequence that was rendered once. A major disadvantage for the publisher is that he has to render a new image for every new view the users selects or parameter changed. This means high demands of performance on the visualization server and makes interactive working by the user almost impossible.
3.1.1 Graphical Address Browser of Vienna
The municipal authorities of Vienna provide a very special service over the net [Gab]. The users can enter an address with the name and number of any street or place of Vienna, choose a resolution and are served with the according sector of Viennas map. Further more the users can change the viewpoint by clicking into the image or choose another resolution. It comes in very handy that at some resolutions the routes of all kind of public transport are printed on the map with the according stations. A sample of such a map is shown on the figure below.
Figure 3: Sector of Viennas map
3.2 3D visualization
With this method the publisher transmits the visualization as a three dimensional model to the user. The most common way to do this nowadays is using VRML, which allows to shape a world rather than a simple image. The viewer has the possibility to render the model as he wish with a special browser and may change the viewpoint to gain more insight into the visualized data.
With a VRML visualization the viewer has much more freedom to investigate than viewing a simple image but the abstract model of the data has often been predefined by the publisher and cant be changed by the viewer even if there are some visualizations where the user can set parameters according to the model to be visualized via HTML forms. The figure below depicts this method and the place, where the visualization pipeline is cut by the internet. With this method the visualization work is divided into the viewers part the rendering - and the remaining server part which presupposes more computing speed at the viewers side due to the rendering part. But even with the rendering part passed to the users side the visualization server still has to compute visualizations for many users which costs much performance and resources.
Figure 4: 3D visualization, getting objects building a world across the WWW
3.2.1 Normal Mode Visualization
Figure 5: Screenshot of a 3D visualization with a VRML file
3.3 Visualization Software Publishing
The third method occurs when the viewer is doing the whole visualization and no computational power needs to be provided by the publisher. This bears the most advantages for the publisher as the resources he has to provide to facilitate his visualization technique are minimized. In terms of the visualization pipeline described earlier the whole pipeline moves to the viewer.
Figure 6: Visualization software publishing
Another major advantage of this method is
the independence of the viewer from the publisher during the
visualization. But on the other hand the disadvantage of this
method is that the client has to do all the computations and so
must provide high computing resources. A supreme example of
visualization software publishing is the VizWiz JAVA applet which
is described in the next sections in detail.
4. VizWiz
4.1 Introduction
To describe a scientific visualization tool in detail the Java applet VizWiz [Viz], developed at the University of California San Diego, is introduced here in a brief way. As a Java applet VizWiz is completely platform independent and usable over the whole world wide web. It provides basic interactive scientific visualization functionality, such as isosurfaces, cutting planes and elevation plots. The data can be uploaded into the applet by the user via the applets web server and the visualization is generated and can be investigated interactively as shown below.
Figure 7: The VizWiz user interface
The unique feature of VizWiz is that it makes interactive scientific visualization possible for any data set across the internet. The viewers only prerequisite is a Java enabled browser which are wide spread and available without any fee like Netscapes Communicator or Microsofts Explorer. VizWiz is not only a useful platform independent visualization system but also a demonstration of both the pros and contras of implementing such a complex application as a Java applet.
Plenty of scientific visualization tools are available today but all of these applications share a major disadvantage they are platform dependent. Even some of them are released for multiple platforms, but they are only ported from the source, native platform onto other platforms. This means great work due to the structure of visualization systems. They are graphic intense and often use platform if not even hardware specific routines that are not portable easily. Additionally, developers of multi-platform systems must test the code on every platform, support every version separately and of course have deep insights into every platform they develop for. If changes or new releases are made they have to bee made and tested for every platform, too. VizWiz as a Java applet has only to be developed, coded and tested once and also works on every Java supporting platform ranging from a simple 486 PCs to a SGI or SPARCstation. Nowadays there is no way to perform 3D visualizations on such a wide variety of platforms with so little overhead for both the user and the programmer.
Another main disadvantage of most of the visualization systems out by now is that they must be download or purchased and installed by the user before they can be used or tested. Although this is not really difficult but very annoying, time intense and often disappointing when the system does not meet with the users requirements. In other words it is not possible at all to try out a tool without downloading it, installing and configuring it. Making an application tool available as a Java applet copes with that problem as it runs automatically when the web page in which it is implemented is download by the viewers browser. VizWiz also automatically load a sample data set which can be immediately used to get in touch which various functions of VizWiz. Another motivation to develop a system using Java was that VizWiz is resident on the internet and nor locally on the viewers machine and can be used from everywhere through the internet.
As a conclusion the main topics of the motivation developing using Java were to provide
4.3 VizWiz and Java
Java has been rumored as the language that will enable a shift in storage of application from the desktop to the internet. The powerful combination of CGI scripts and the WWW itself opens a wide range of possible applications. But these applications have a shared feature. They are based on user input into an HTML form and thus are not interactive in the sense a Java applet makes possible. The main problem while developing VizWiz in Java was that a Java applet is not allowed to access the file system on the machine it is executing for security reasons. How the developers cope with that problem is explained in the next chapter.
As briefly mentioned in the chapter about motivation of development there were several goals the developers wanted to archive which are explained in detail below:
4.4.1 Platform independence
Although it is impossible to archive real
platform independence, Java is the best way to approximate it.
The major problem using Java was the performance as the only way
to implement 3D graphics without requiring that the user have
installed any supporting software besides a Java enabled browser
is to use the standard Java API. As Java programs are interpreted
and not executed directly they are generally slower than their
counterparts in native code would be. But the loss of performance
due to the interpretation is only the smallest one. All the
windowing and graphics code VizWiz uses are made through Java
which means by software rather than by machine specific
accelerators and other hardware. As VizWiz is both
computationally and graphically intensive sacrificing of direct
hardware graphics support bears the major loss in performance.
This problem will be solved in future releases with the Java 3D
API since it will enable to take advantage of 3D hardware.
4.4.2 Ease of initial use
Using Java for developing VizWiz the applet is downloaded automatically and running it the first time is no more difficult than simply visiting a web page. The developers cope with the security problem that Java applets are not granted direct file access in a very special way. This feature is very understandable from the security aspect but is a very hindering one when developing a useful application where it is necessary and obvious for "normal" programs to load data from the users machine and save settings, outputs and temporary files. VizWiz uses CGI scripts and HTML forms to solve this explained in point 5.4.5 "Visualization of users data"
4.4.3 Visualization functionality
As VizWiz needed to provide a set of basic visualization functions the developer included support for isosurfaces, cutting planes, point clouds and elevation plots. All the surface functions are polygon surfaces which can either be filled or visualized using a wireframe. All visualization objects are implemented in the same manner as a set of vertices and connection indices. Additionally a base color for each line or polygon is specified. Furthermore, all visualization services use the same rendering engine which makes it easy to add new services.
In addition to the static position of every polygon two more parameters are calculated by VizWiz. A color based on the base color and the angle the polygon makes with the light source and a distance from the camera used for polygon sorting during rendering.
The control panel on the left side of the window allows to change parameters affecting the display like resolution, scaling and loading files. On the right side there is an inspector panel which is context sensitive, a different one for each object, which allows to change individual parameters for the particular display object. The display area in the center shows the actual visualization and can be rotated by dragging the mouse over it.
4.4.4 Interactivity
To archive both an adequate performance and an interactive visualization tool various techniques had to be used while developing VizWiz. To compensate the loss of performance due to Javas inability to use potential 3D hardware the developers used smart caching to avoid duplication of computations, simplified rendering and interactive resolution control through the control panel.
4.4.5 Visualization of users data
As VizWiz is running in standard browsers
like Netscape or Internet Explorer it has no direct access to the
file system of the viewers machine. HTML is not entirely
restricted from reading the local file system so the developers
used a HTML/CGI workaround to upload the viewers data. The name
of the file containing the data to be visualized can be entered
by the viewer into an HTML form and the contents of the selected
file will be uploaded to the VizWiz server and processed by a CGI
script. This script reads the data and generates a new file on
the server which is readable by the VizWiz applet and
downloadable by the viewer.
5. Conclusions
VizWiz is an intuitive to use tool with the ability to visualize own data sets at an acceptable performance. But it is obvious that tools like VizWiz should use Java3D as in natural Java the performance penalties due to the missing opportunity of using machine dependent 3D hardware is the most hindering point.
Generally as the computing speed of desktop
PCs of "ordinary" users increases the
visualization pipeline will move to the users in the next time.
Applets like VizWiz will be the next visualization techniques as
every publisher can host such services at almost no cost.
6. References
[Gab] | WWW,
"Graphisches Adreßortungssystem", http://www.magwien.gv.at/gismap/cgi-bin/wwwgis/adrsuche/ |
[Hab] | R.B. Haber and D. A. McNabb, "Visualization idioms: A conceptual model for scientific visualization systems" pp74-93, IEEE, 1990 |
[Nor] | WWW,
"Normal Mode Visualization", http://www.pc.chemie.th-darmstadt.de/vrml/vib/ |
[Ups] | C. Upson et al, "The Application Visualization System: A computational environment for scientific visualization", IEEE Computer Graphics and Applications, Vol 9, Number 4, pp30-42, 1989 |
[Viz] | WWW, "VizWiz, a Java applet for interactive 3D scientific visualization on the Web", http://sdsc.edu/vizwiz/vizwiz.html |