Computergraphik, 67653 Kaiserslautern, Germany
firstname.lastname@example.org, email@example.com and
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.
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  Web-server.
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.
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.
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 , which communicate via the event model. A detailed description of LayEd and JaMVis can be found in .