A Web-Based Isosurface Extraction System for Heterogeneous Clients Andrea Clematis *, Daniele D'Agostino *, Walter De Marco*, Vittoria Gianuzzi # *IMATI-CNR Genova, # DISI University of Genova {clematis, dago, walter}@ge.imati.cnr.it,
[email protected]
Abstract We present a practical approach to the design of a Web system for 3D and volumetric data interrogation and visualization. This Web application provides different functionalities including isosurface extraction, mesh simplification, output file production in a standard format, and data compression. The application is designed in a modular way, and its services are suitable for heterogeneous clients, including wireless and diskless Personal Digital Assistant. The use, as much as possible, of widely available public domain software and standard data format are important characteristics of the presented architecture.
1. Introduction An important aspect in the design of a Web based virtual collaborative environment is the provision of an adequate support for remote interrogation and visualization of different type of data. In scientific Web communities, in particular, the interrogation and visualization of 3D or volumetric data sets is of paramount importance. In many cases scientists from different disciplines such as chemistry, biology, geology, physics and medicine, would like to access remote data repositories, perform their interrogation and analysis, and get the results visualized on their local computer. Isosurface extraction [1] is a basic operation that permits to implement many types of interrogations on 3D or volumetric data. The result of a query based on isosurface extraction is a Triangulated Irregular Network (TIN) that should be properly visualized in order to permit to the scientist who issued the query to obtain a useful answer. Here we are interested in addressing problems and possible solutions for the design of a Web application for the remote access, interrogation of 3D data collections, and proper visualization of results on local clients. Moreover we consider that presently great efforts are
made in order to allow scientists get started exploring, analyzing and visualizing data using Web-based systems, also in a Ubiquitous Computing environment [2]. In this context ubiquitous computing could be considered as an extension of Web technologies that enables users to access any resource from anywhere over any platform at any time. This means that the users should be allowed to submit their queries to a data server and get results, through a Web interface from any of available platforms such as a workstation, laptop or Personal Digital Assistant (PDA). Our emphasis will be then devoted to consider a Web based architecture that accommodates heterogeneous clients. The integration of Internet technologies and Computer Graphics permits to develop satisfactory solution to the above stated problems. In this paper we describe how to develop a simple but meaningful Web-based system for remote 3D data interrogation and local visualization of results on heterogeneous clients. The presented solution is based on an open source, public available package for 3D data processing and visualization integrated in a simple Web application. On the client side we propose a solution based on a thin client that can evolve towards more powerful clients. The paper is organized in the following way: in Section 2 we shortly review related works, in Section 3 we provide a background about 3D data interrogation and visualization. The design of and implementation of our system for 3D data interrogation and visualization are described in Section 4. Section 5 provides some experimental result. Concluding remarks and future works are presented in Section 6.
2. Related Works One of the first Web-based systems for volumetric data analysis is described in [3]. This system provides a content-based retrieval tool for 3D volumetric scalar data. This prototype is constituted of a data repository that can be accessed using an HTML form. Data sets matching criteria are presented using thumbnail images, and it is
possible to select one of them, to visualize it and/or extract an isosurface. The result is a VRML file that the client can locally visualize. Several other systems have been developed since then but mainly to be used from a wired workstation, so one of the key problems considered has been how to partition the computational load between the client and the server [4,5,6]. Thin clients having minimal functionality could not well support certain kind of real-time visual data manipulation [7], however we have to take into account that more powerful client side applets made in Java [8] or ActiveX components are not still supported by all kinds of devices, in particular by operative systems presently available for palmtops. For this reason, several powerful visualization systems cannot be adapted easily to this class of devices. Considering the use of clients with limited capacities implies to take into account the limitations due to memory availability, computational power, and display characteristics. The natural approach is the design of a powerful Web application based on a front-end interfaced to a possibly Multi-Tier distributed architecture involving also High Performance Computing systems, based e.g. on clusters of PC [9], and supporting the interaction with a variety of clients, from powerful workstations to diskless wireless PDAs. This approach seems to us even more promising if we consider the size of volumetric data sets that may be of some gigabytes and continues to grow. Another important aspect to keep in mind designing a Web-based architecture for data analysis is the bottleneck represented by the interconnection network. In [10] is noted that, in the specific case of isosurface extraction, sophisticated parallel optimization could be not so useful due to the ratio between the amount of time spent in the computation step and the communication step. The solution to this problem, while expecting for an improvement of the network bandwith, is to reduce the amount of transmitted data. This reduction can be achieved in two ways: • reducing the number of transmitted primitive objects, in our case the number of triangles and points, and this is obtained by simplifying the original mesh, while preserving its characteristics [5,11]; • using a binary or compressed file format for data transmission [12,13]. Our solution is based on the design of a powerful and flexible system that provides to the client different services, including isosurface extraction, mesh simplification, output file production in a portable format, and data compression. The system is designed in a modular way, and provides suitable services to heterogeneous clients.
3. A Software Framework for Volumetric Data Handling, Visualizing and Transmitting. In the last decade many software environments and tools for volumetric data handling and visualization have been developed. In this Section we present one of these tools and its main functionalities for our purposes. We also address the problem of the output file format and compression, considering its implication on data transmission and client structure.
3.1. The Visualization Tool Kit VTK [14] is an open source library for 3D computer graphics, image processing, and visualization created by Ken Martin, Will Schroeder and Bill Lorensen. It is a C++ library, normally used for sequential applications, organized into modules, called kits, that contain related functionalities. These kits are used to build applications for biomedical and scientific information visualization. There are over 600 existing classes with more than 325,000 lines of code. VTK supports a variety of systems and graphics architectures like Windows 98/NT, SGI, Sun, HP, Linux; it supports OpenGL and Mesa and, in addition to C++, VTK allows users to access the class libraries through TCL, Java and Python. Furthermore this library can read a wide variety of file formats, as specified in [15]. The two main algorithms involved in our system are Marching Cubes [16], to perform isosurface extraction, and Decimation [17], to simplify the mesh resulting form the previous step. In the subsequent paragraphs we provide a brief description of the algorithms exploited, focusing on the implementation provided by VTK, referring to further bibliography for a more exhaustive treatment.
3.2. Isosurface Extraction An isosurface in 3D space is the set of points (typically a surface) over that a given function is constant. More precisely, a scalar field consists of tuples (x, f(x)) where x ∈ ℜ3 and f is a scalar function defined over ℜ3. Given a value q, called isovalue, the isosurface extraction process is the computation of the surface, C(q) = { x | f(x) = q }. The Marching Cubes algorithm [16] is the classical approach to extract isosurfaces from volumetric data sets, producing a mesh of triangles or Triangulated Irregular Network (TIN). The algorithm traverses a data set forming cubes with eight vertices. In this manner, the cubes, which have all eight vertices above the threshold value q are
within the solid object, and cubes with all eight vertices below the threshold are completely outside the solid object, delimited by the isosurface. The surface model is built upon remaining cubes, where linear interpolation is used to determine where the surface intersects cube edges and to build the local triangulation. There are 256 possible combinations of the vertices of a cube being above or below the threshold value. This means that there are 254 possible ways how the voxels of the cube can intersect the surface being constructed. In Marching Cubes, these cases can be reduced to only 15, due to symmetry and complementary cases, but this can lead to some topological inconsistency. VTK contains different classes that implements algorithms to compute isosurfaces: • vtkMarchingCubes: this class implements the original algorithm. • vtkSliceCubes: this class is a special version of the previous. Instead of ingesting an entire volume at once it processes only four slices at a time: in this manner it can generate isosurfaces from huge volumes, also storing the resulting triangle during the extraction in a Marching Cubes triangle file. • vtkContourfilter: this class can read also non volumetric data sets, in order to generate an isosurface using the Marching Cubes algorithm. • vtkDividingCubes: this class is based on a different version of the Marching Cubes algorithm, the Dividing Cubes algorithm [18]: while the former uses triangle primitives to reconstruct an isosurface, the latter uses points with normals. The advantage is that the algorithm is applicable for lager data sets, where the number of triangles approaches the number of pixels, but the output is a set of points. For a complete treatment of the isosurface extraction problem see [1].
3.3. Simplification Mesh simplification is the problem of reducing the number of faces in a dense mesh while minimally perturbing the shape [19]. In fact meshes are very often composed by so many triangles that rendering is very difficult, even on a powerful graphical workstation, and typically isosurfaces do not make exception. The problem is more important with less powerful clients, as palmtops, where, in addition to display and rendering limitations, we have to consider memory constraints. The most widely known technique for the simplification of triangular meshes resulting from an isosurface extraction step is called Decimation [17], and is an iterative algorithm that reduces triangle number by deleting some vertices using local operations on geometry and topology.
Starting from it, several proposals have been made, with different evaluation of vertex importance and type of re-triangulation, while some other proposals are based on different approaches [20,21]. Those of interest for us are pertinent to the reduction of the total number of mesh triangles, preserving the original topology and a good approximation of the original geometry, so we have chosen to use vtkDecimate, a class contained in VTK and based on [17]. This class implements the original Decimation algorithm, but has been adapted for a global error bound decimation criterion. For a complete treatment of the mesh simplification problem refer to [22].
3.4 Output Format and Compression VTK is mainly devoted to immediate and local results visualization. It may produce output files using an internal binary file format. This file format provides not very satisfactory storage figures, and most importantly implies that the clients is equipped with a suitable VTK application in order to visualize results. This condition puts a limit to client interactions, and is critical for PDA clients. For this reason we decide to use an alternative format, and Virtual Reality Modeling Language (VRML) [23] provides us some of the desired characteristics. When we process large data set VRML file size could be very large and to reduce the communication time we have to consider the use of a compressed format for transmission. VRML. The Virtual Reality Modeling Language (VRML) [23] is the International Standard (ISO/IEC 14772) file format for describing ni teractive 3D multimedia on the Internet. The first release, the VRML 1.0 specification, was created by Silicon Graphics and based on the Open Inventor file format; the second release, the VRML 2.0, added significantly more interactive capabilities. In December 1997, VRML97 replaced VRML 2.0 and was formally released as International Standard (ISO/IEC 14772-1:1997). VRML files consist of collections of objects, called nodes. Nodes can be grouped into three main types: shape (e.g. cube, cone...), property, which can be used to modify other nodes (i.e. rotation, scale…), and grouping, which contain other nodes, called children, and are used to apply modifying effects only to nodes within it (e.g. to allow hyper-linking). Furthermore, each node contains various parameters, called fields (e.g. a sphere has a radius), and a node can have an image to be used as the texture. The main difference between the two standards is the degree of interactivity: VRML 1.0 describes static worlds, whereas VRML 2.0 can produce dynamic, multimedia words which can incorporate sound and video clips,
where objects can be programmed to move automatically and/or react to user input. There are several VRML viewers and plug-in (both free and non-free) for most platforms: Windows, Unix, Linux, Macintosh and, recently, is available Pocket Cortona [24], a (non-free) VRML viewer for palmtop running Windows CE, the most widespread operating system for palmtops. This is the main reason for the adoption of this format for file output: in this manner we are platform independent, and we can visualize results on devices with very limited capacity, without the necessity of installing ad-hoc costly applications which require large memory space and computational power. Data Compression. In order to decrease downloading time it is necessary to provide an effective method to compress transmitted files. When we deal with 3D data and with TIN in particular we may adopt compression algorithms, which provide nearly optimal memory results by exploiting the intrinsic characteristics of data that we deal with [23]. The use of one of this algorithms requires however to made
available to the client a suitable uncompress algorithm and this may again leads to problems with certain type of clients such as PDAs. For this reason to perform compression we chose a general purposes tool, the GNU GZIP [13].
4. The System Architecture The architecture of our system is described in Figure 1. Input data sets are stored on the server, over which an application that uses VTK classes performs isosurface extraction and possibly simplification, while compression is obtained using GZIP. The interaction with the user is made using HTML pages: an HTML form is used to obtain a variety of input parameters, which are provided to the application using a Common Gateway Interface (CGI) [12] script. The application selects the required data set and extracts the surface for the specified isovalue, than the script return the resulting VRML file as a link in a dynamically created HTML page.
Figure 1. The architecture of the system Input data are volumetric data sets. Presently only binary data files containing XDIM*YDIM*ZDIM attribute values, one for each point belonging to the regular grid that data set represents, but we plan to shortly support the DICOM (Digital Imaging and Communications in Medicine) standard, which is commonly used for the transfer and storage of medical images [27]. Output files are in VRML format. Due to the availability of viewers and plug-in for this format we can avoid to
develop a component to cope with differences between devices, apart for the Web interface. We could use the VRML 1.0 file format, because our application needs only to represent the resulting set of vertices and the TriangleVertex (TV) table: typically interactions with an isosurface is limited to a static but in deep examination, that includes examination in any part, at any orientation and at any scale. However, due the more availability of viewers and
plug-in for the VRML 2.0 format we have adopted the latter format. The Web interface, presented in Figure 2, is made by two main sections, the first related to data set and isoextraction parameters, the second to selection of further processing options and parameters. In the first one the user selects over which data set (whose description is available in another page) he wants to perform isoextraction, providing the isovalue and the name of the output file. In the second the user selects an algorithm to perform the isosurface extraction, if and how he/she wants to simplify the result and if he/she wants a compressed file to speed up its download. Let's see in details these parts.
In the first part there are three fields: the first contains a list of the data sets available for the analysis; in the second the user must provide the required value to extract the isosurface (if the data set is a 16 bit file the possible range is from 0 to 65536, for example); in the third field the output filename has to be specified. The part related to the algorithms is composed by three main sections. The first is about the choice of the algorithm to use to create the isosurface. We have chosen to provide only three of the possible isosurface filter, due the data sets format: vtkMarchingCubes, that is faster for non-huge data set; vtkSliceCube, for data sets that otherwise could not fit into memory; vtkDividingCubes, to provide a different way to represent an isosurface.
Figure 2. The Web interface for a PC client. The second choice is about simplification. The user can indicate if he/she wants to decimate the result or not. If the user selects the simplification, a subpart of the form becomes active and it is possible to insert decimation parameters: • the percentage of reduction, in which the user defines the desired reduction in the total number of triangles;
•
•
the maximum number of iteration, in which the user defines the maximum number of iterations to attempt achieving the desired reduction. It is to notice that because of various constraints, this level of reduction may not be realizable; the maximum error, in which the user sets the largest decimation error that can be achieved by incrementing the error;
• •
the boundary vertex deletion, in which the user turns on/off the deletion of vertices on the boundary of a mesh; the edge preservation, in which the user turns on/off the preservation of feature edges.
The last choice is related to the selection of a compressed output or not. To perform compression we use a general purposes technique, the GNU GZIP tool, to further reduce the downloading time between clients and server. We have tried to limit data that have to be inserted using keyboard, in particular for users that interact using palmtops. The field values are submitted to a CGI script, that invoke a C++ program based upon VTK. We have modified several VTK classes to customize input and output format [28]. VTK allows to take in input volumetric data set that are 16 bit binary files using the vtkVolume16Reader class, but a lot of available data set are 8 bit image: for this reason we have added a method to manage them. Another modification is related to the output. VTK usually does not provide a way to store calculated data, because it is primarily a visualization system. For this reason even it is sometimes possible to store computed data this is made using an internal file formats. In our case there is the class vtkMCubesWriter that writes binary marching cubes files (only for vtkMarchingCubes and vtkSliceCubes object and in Big-Endian format), consisting of a list of triangles, each represented by three records, with each record consisting of six single precision floating point numbers representing a triangle vertex coordinate plus its normal. This representation is not convenient because there are a lot of data replicated (in general a point is shared by more than two triangles) and is readable only by a VTK-based client. For these reasons we implemented a method that saves the calculated data using the VRML 2.0 format. To obtain this file format we need to store the resulting mesh in two tables: the first, the Vertex (V) table, that lists the Cartesian coordinates of each intersection point; the second, the Triangle Vertex (TV) table, that lists each triangle providing the three indices to its vertices. We do that using two auxiliary files, one for each table, in which we store progressively computed data. The main problem is to avoid the insertion of already computed points. To do that we use a hash table.
5. Experimental Results We have tested our application over a Computerized Tomography (CT) scan of a bonsai tree. This is a data set composed by 256 slices of 256*256 8-bit values, and a
total size of 16 MB. Table 1 reports data about data set and resulting file size for different interrogation values. We used as client a palmtop, more precisely a Compaq iPAQ H3630 (equipped with 32 MB RAM and a 206 MHz Intel StrongARM 32 bit RISC Processor), and a workstation with 128 MB RAM and a 1.5 GHz Pentium 4 processor. To analyze the resulting isosurfaces we used the two versions of the Parallel Graphics Limited VRML viewer: Cortona VRML Client for PC, and Pocket Cortona for Pocket PC. The first is free, while for the second is available an evaluation version for 30 days. Each of these viewers is able to manage also gzipped files, because provides itself to extract in a temporary folder. This fact is very important to reduce the downloading time due to the effectiveness of the compression algorithm, as showed in Table 1. Over our palmtop it is possible to manage only file that, uncompressed, are at most 2 MB, while over our PC a satisfactory interaction is possible with results of no more than 10 MB. The use of compression in principle may lead to advantages and disadvantages. The advantages are due to the reduce transmission time, while disadvantages are caused by the decompression time. In a wired or wireless laptop or workstation environment the advantages are superior because of reduced cost of decompression. In a palmtop environment the limited availability of memory defines an upper bound on the maximum quantity of data that could be received. For small size files the decompression time is however small also on palmtops. We observe the same results and capacity of interaction on the two devices for analysis on a small file representing the isosurface for the value 230, as showed in Figure 3. Table 1. Isosurface characteristics Isosurface parameters 2 180 1,962,635 144,800 3,896,986 286,954 File size in Mbyte VRML file 170.8 MB 9.54 MB Compressed file 30.5 MB 2.14 MB Isovalue Points Triangles
230 14,784 28,736 871 KB 197 KB
Even if data sets dimension are quite small, resulting isosurface can be large: for the value 2 we obtain a VRML file of about 170 MB, representing a mesh of about 1,960,000 points (each of this represented using floating point coordinates) and 3,900,000 triangles (each of this represented using three integer indices of the vertices list). A file of this kind of size can be viewed only using a powerful workstation.
Simplification is an effective way to reduce output dimension but preserving the nature of the original isosurface. As an example Figure 4 and Figure 5 represent the same isosurface obtained with isovalue 180 and seem
to be identical. On the contrary Figure 5 is the simplified version, with a maximum error of 20%, and has quite 1/3 points with respect to Figure 4 (see Table 2).
Figure 3. Visualization of the bonsai isosurface for the isovalue 230 on a PC and a PDA
Figure 4. Original isosurface for value 180
6. Conclusions and Future Works
Figure 5. Simplified isosurface for value 180
Due to the huge data sets size and the heterogeneity of the clients we think that the better approach is a thin
client, and a medium-weight server solution, where the user only needs to send requests to the server computer, visualizing the results using a plug-in of the Web browser. This solution could have some disadvantages: • the computational cost is only suffered by the server; • any modification of query parameters involves a new connection and a new query to the server, thus increasing the communication time.
But these problems can efficiently treated: • using the Web interface as a front-end for a High Performance Cluster of PC; • using new emerging communication standards in Internet, as well as in wireless communications, that provide a bandwidth up to 100 Mbps. Table 2. A comparison between the original isosurface for the value 180 and the same obtained applying the simplification step with a maximum error of 20%.
Points Triangles VRML file dimension
Original 144,800 286,954 9.54 MB
Simplified 54,284 106,650 3.47 MB
The main advantage of the thin client is the storage saving, because there isn’t the need to install any part of the application in addition to the visualization application (in our case a viewer or an Internet Explorer plug-in), so more memory is available to download a more precise version of the result. In the present version of our system the choice of a thin client means that we use a standard compression algorithm and we visualize a simplified result, rather than only a part of it, and hence we do not consider the possibility of exploiting different level of details. However we plan to perform several improvements enriching the client: • the first is related to provide a more specific mechanism for compression for triangular mesh, as Edgebreaker [13], that can obtain better results with respect to GZIP, even if it has to be ported to the PDA environment; • the second is to support Level-of-Details technique (LOD) [26]: with Decimation we replace less important triangles with points. But sometimes can be useful to perform the opposite operation, replacing points of the VRML file with triangles, e.g. to better understand some parts of the mesh. From the server side instead, our first enhancement will be the replacement of the CGI script with a Java Servlet, technology that allows to achieve a greater scalability. Furthermore we plan to exploit an High Performance Cluster of PC in order to speed-up the isoextraction process itself, with a particular attention to GRID computing [29], the new powerful and emerging paradigm for distributed computing.
Acknowledgments This work has been supported by CNR Agenzia 2000 Programme "An Environment for the Development of Multiplatform and Multilanguage High Performance Applications based on the Object Model and Structured Parallel Programming" and by MIUR programme L. 449/97-99 SP3 "Grid Computing: enabling Technologies and Applications for eScience".
7. References [1] C. Bajaj, V. Pascucci, and D.Schikore, Accelerated IsoContouring of Scalar Fields, Chapter 3 in Data Visualization Techniques, John Wiley and Sons, 1998. [2] G. D. Abowd, "Ubiquitous Computing: Research Themes and Open Issues from an Applications Perspective", Technical Report 96-24, Georgia Institute of Technology, 1997. [3] T. Todd, and E. R. Jain, "Web-based volumetric data retrieval", Proceedings of the first symposium on Virtual reality modeling language, 1995, pp. 7-12. [4] E. Del Rio, O.Rius, E. García-Ladona, and J. Font. "VADO: a Web based environment for visualisation and analysis of oceanographic data", Oceans'98 MTS/IEEE, vol. I, 1998, pp. 861-865. [5] K. Engel, R. Westermann, and T. Ertl, "Isosurface Extraction Techniques for Web-based Volume Visualization", Proceedings of the 10th IEEE Visualization 1999 Conference (VIS '99), 1999, pp. 139-146. [6] K. Brodlie, "Visualization over the World Wide Web", Scientific Visualization, Dagstuhl 97 Proceedings, IEEE Computer Society Press, 1997, pp 23-29. [7] M. Jern, "3D Data Visualization on the Web", Proceedings of 1998 MultiMedia Modeling, 1998. [8] C. Michaels, and M. Bailey, "VizWiz: a Java applet for interactive 3D scientific visualization on the Web", Proceedings of the 8th IEEE Visualization '97 Conference, 1997. [9] V. P. Holmes, J. M. Linebarger, D. J. Miller, R. L. Vandewart, and C. P. Crowley "Evolving the Web-based Distributed SI/PDO Architecture for High-Performance Visualization" Proceedings of the 34th Annual Simulation Symposium (SS '01), 2001.
[10] S. Lombeyda, M. Aivazis, and M. Rajan, "Parallel Isosurface Calculation and Rendering of Large Datasets in IRIS Explorer", Visualization Development Environments 2000 Proceedings, 2000.
[11] K. Engel, R. Grosso, and T. Ertl. "Progressive Iso-Surfaces on the Web", Late Breaking Hot Topics, IEEE Visualization, 1998. [12] GNU GZIP
[21] C. Montani, R. Scateni, and R. Scopigno, "Discretized marching cubes", Proceedings of the Conference on Visualization, 1994, pp. 281-287.
http://www.gnu.org/software/gzip/
[13] J. Rossignac, "Edgebreaker: Connectivity compression for triangle meshes", IEEE Transactions on Visualization and Computer Graphics, vol. 5, no. 1, 1999, pp. 47-61. [14] The Visualization ToolKit http://public.kitware.com/VTK/ [15] VTK File format http://public.kitware.com/VTK/pdf/file-formats.pdf [16] W.E. Lorensen, and H.E. Cline, , "Marching Cubes: a high resolution 3D surface reconstruction algorithm", Computer Graphics, vol. 21, no. 4, 1987 pp. 163-169. [17] W. J. Schroeder, J. A. Zarge, and W. E. Lorensen, "Decimation of triangle meshes", Computer Graphics, vol.26, n.2, 1992, pp.65-70. [18] H. E. Cline, W. E. Lorensen, S. Ludke, C. R. Crawford, and B. C. Teeter, "Two algorithms for the Three-Dimensional Construction of Tomograms," Medical Physics, vol., 15, no. 3, 1988, pp.320-327. [19] H. Hoppe, "Surface reconstruction from unorganized points", PhD thesis, Department of Computer Science and Engineering, University of Washington, 1994. [20] Y. Livnat, and C. Hansen, "View Dependent Isosurface Extraction", IEEE Visualization '98, 1998, pp. 175-181.
[22] C. Gotsman, S. Gumhold, and Leif Kobbelt, "Simplification and compression of 3d meshes", Proceedings of the European Summer School on Principles of Multiresolution in Geometric Modelling (PRIMUS), 2001. [23] The Virtual Reality Modeling Language http://www.vrml.org/fs_specifications.htm [24] Pocket Cortona: http://www.parallelgraphics.com/products/cortonace [25] The Common Gateway Interface http://www.w3.org/CGI/ [26] H. Hoppe, "Progressive meshes", Proceedings of the 23rd annual conference on Computer graphics and interactive techniques, 1996, pp. 99-108. [27] The Digital Imaging and Communications in Medicine standard http://medical.nema.org/ [28] K. Cristiano, and D. D'Agostino, "Using VTK for Isosurface Extraction in a Distributed Environment", Technical Report 8 - 2002, IMATI - CNR, 2002. [29] I. Foster, and C. Kesselman, The Grid: Blueprint for a New Computing Infrastructure, Morgan Kaufmann, 1998.