Viper a 3D-modeling and visualization toolkit for  Web-based applications

Andreas Disch, Philip Jacob and Michael Münchhofen

Universität Kaiserslautern/AG,
Computergraphik, 67653 Kaiserslautern, Germany, and

The World Wide Web is a medium through which a manufacturer may allow Internet visitors to customize or compose products. Due to missing or rapidly changing standards these applications are often restricted to relatively simple CGI- or Java-based scripts. Usually, results like images or movies are stored in a database and are transferred on demand to the Web-user. Viper (Visualisierung parametrisch editierbarer Raumkomponenten) is a toolkit [3] written in C++ and Java which provides 3D-modeling and visualization methods for developing complex Web-based applications. The toolkit has been designed to build a prototype, which can be used to construct and visualize prefabricated homes on the Internet. Alternative applications are outlined in this paper. Within Viper, all objects are stored in a scene graph (VSSG), which is the basic data structure of the toolkit. To show the concept and structure of the toolkit, functionality, and implementation of the prototype are described.

Java; VRML; WWW; Modeling; Visualization

1. Introduction

Fig. 1.

Using modern production techniques, many products can be individually customized and manufactured. The changing of parameters by customers results in a huge number of variants which cannot be represented with traditional techniques like print media. This is one of the main problems of manufacturers of homes, where thousands of combinations of materials and outfit exist which cannot all be printed in catalogs. Kampa, one of the biggest manufacturers of prefabricated homes in Germany, is one of the partners of  the Viper project. Figure 1 shows only a few of the possible 976 combinations, which exist for a single type of home.

Because of technical reasons (e.g. statics), some of these combinations are not valid or are simply not offered. During the planning of a home these constraints have to be surveyed by the system and eventually be corrected. The modeling part of the Viper Toolkit on the server side was implemented in C++ to guarantee the performance needed for these operations. The average Internet connection has a bandwidth of less than 2 or 3 kbytes per second which is too small for an interactive construction process without using local routines. Therefore, the construction and modification of parameters is done by Java on the local PC. Information is exchanged using a common data-structure, the VSSG (Viper Symbolic Scene Graph). A Java-based editing tool (LayEd), which uses these structures to communicate with the kernel has been developed as a construction front end.

Fig. 2.

The prototype had to be independent from the operating system and hardware used by the customer. The system should allow the Web-user to construct and render a home from the customer's PC, without having installed any additional software beside an Internet browser. All functions of the prototype are provided by a session manager which is a Web-interface running on an Apache [1] Web-server.

Fig. 3.

The prototype was setup on a cluster of Silicon Graphics O2 workstations, connected with a 100Mbit switch (Fig. 2). After authorization the prototype can be accessed from any PC having a Web-browser and a VRML-plugin (e.g. Cosmoplayer).

Remote-rendering brings photo-realistic images and movies to the Web-user without investing much time or resources on the client side. A distributed renderer generates the images. Results like MPEG-videos or single JPEG-snapshots are brought to the client by the World Wide Web. Alternatively, the Viper Toolkit creates a VRML-scene which can interactively be traversed.   All objects like VSSG's, geometry, and materials are stored in a SQL-database which is administrated via WWW-interface (Viper-Database-Explorer, Fig. 3). Lighting and cameras are directly modified by the user. To change materials and other attributes a parametric editor is provided.  Constructions can be exchanged with CAAD-systems using the AP225 STEP interface designed for architectural applications. After the construction is finished all information is transferred to the manufacturer and can there be used to initiate the production process.

2. The Viper kernel and the Symbolic Scene Graph

The purpose of the Viper Toolkit is to provide a framework for building complex, Web-based graphics applications. To manipulate objects from different domains, the Viper Kernel manages all data in a unified, application-independent format. The object-oriented design of the toolkit allows high-level descriptions of application data because the basic idea is to describe objects and their relationships symbolically.

The common data structure maintained by the kernel is an abstract, dynamically defined description of an application's world: the Viper Symbolic Scene Graph (VSSG). The basic functionality of the kernel is implemented in a library, consisting of elementary applications written in C++.  Using the Viper Toolkit the simple VSSG can for example be rendered or converted to  VRML.  We include a complex  VSSG of the  prefabricated home shown in Fig. 4 and the correspondingVRML-scene.

3. Java-based Modeling and Visualization Toolkit (JaMVis)

In the Viper project we need a toolkit which is based on internet technologies for the visualization and modeling over the net. The CGI and database interfaces were not flexible enough and did not provide any real-time interaction. On that account we developed the JaMVis Toolkit. The toolkit consists of a variety of modules where each solves only a small task. A task can be generic like a database access or the visualization of three dimensional objects. Specialized tasks have the knowledge about the structure how an application should work. An example for that is a task which manages the modeling of a house. We use Java [5] as the programing language and so the applications can be used within a Web-browser or as a standalone application.<
Fig. 4.

As described in the section two we use the Viper Symbolic Scene Graph as the fundamental data structure. This allows us to model our world without assigning a semantic to the data. Time critical tasks have a native interface to other high level programing languages e.g. for the efficient use of graphics hardware. Based on the JamVis Toolkit we developed an editor for  modeling the floors of a house. The editor consist of several Java-Beans [6], which communicate via the event model. A detailed description of LayEd and JaMVis can be found in [2].

4. Conclusion and future work

>Even though the system has been designed to be platform independent we had problems using VRML and Java especially with "older" versions of Web-browsers and VRML-plugins. During the development of the prototype we found several alternative operational areas for the Viper Toolkit, like manufacturing of furniture and interior design. Especially for these applications it would be very helpful for the user to have a global illumination model integrated in the renderer to include indirect illumination in the images or to calculate radiosities for the VRML-scenes.


[1] Apache HTTP server project,
[2] Viper – a 3D-modeling and visualization toolkit for  Web-based applications,
[3] Viper Report, 1995/96.
[4] The Virtual Reality Modeling Language,
[5] The JavaTM programming language,
[6] Java-Beans