Information Systems and VRML Worlds
Dušan Hanuska
Department of Computer Science and Engineering
Faculty of Electrical Engineering and Information Technology
Slovak University of Technology
Bratislava / Slovakia
Abstract
VRML (Virtual Reality Modeling Language) is dynamically growing and used for modeling the virtual reality for World Wide Web. Nowadays used version VRML 97 is rich of elements witch allow impressive data representation in 3D space, but it still misses streaming and multi-user elements. Combination of VRML and Java language creates really strong tool for development of the dynamic virtual worlds and on-line presentation of the data taken from any kind of database.
Keywords: World Wide Web, Hypertext Mark-up Language, Virtual Reality Modeling Language, Java, VRML External Authoring Interface in Java, Database.
VRSM application structure
Whole project structure can be divided into three main parts, which communicate with each other and exchange the data. This structure is shown on the Figure 1.
Figure 1: Application Structure
Whole process of the application is divided by functionality into its two subprocesses as shown on Figure 2.
Figure 2: Data flow diagram.
Data used in this project came from existing working information system of the company, which stores information about computers, printers, faxes, modes and the other electronic devices in the company. This information system uses it's own data storage format and it was not possible to use it for presentation purposes directly. The system only supports the export of the data to the table form in the text format and these data are able to import into database format with more general use. I have chosen the MS Access 97 format for its simplicity and impretension. Empty database was filled up by data about the computers and the printers. A few more tables were needed to include the information about 3D presentation values, like size of the rooms, etc.
There are two tables with size and positioning information except of computer and printer table. The table called rozmery (sizes) consists of three fields: width, length a height. It contains only one record witch values are the basic room size in each dimension. Another table needed is the table called miestnosti (rooms) which records the number of the room, the number of the floor, on which is the room located, x, y, and z coordinate of the center of the room. Sirka (wide) field specifies how many times is the room wider than the basic one.
Figure 3: Tables and their relationships
Relations are as follow: Table "rozmery"; is not in relationship with any other table. Table "miestnosti" is bounded with its "cislo" (number) field with the table Printer and Computer by its "miestnost" (room) field. Number of the room in the "cislo" field of the "miestnosti" table should be unique; number of the room in the "miestnost" field of the Printer and the Computer table can be repeated. It means that one computer cannot be in more than one room, but there may be more than one computer in the same room.
Applet can be divided into three functional parts: awt part, jdbc-odbc part and EAI part. These three parts work on different activity upon its specific field and they exchange the data between each other.
Figure 4: Parts of the Java applet
AWT part of the applet is the only visible part. Its objective is to display the user interface, which the user uses to input the data and to get results displayed. From the functional point of view, this part is responsible for user-computer communication. This communication is done using awt classes, which are included in Java in the standard installation. Inputs are made by list boxes choices and button clicks, and the output data are shown via changing the list items in the list boxes. Dependently on the inputs the queries are sent into the database and the result data are proceeded. These data are used in further specification of the query or they are sent for presentation in 3D space.
JDBC-ODBC part of the applet is not visible, and is used for communication between the applet and the database. Communication is done using jdbc-odbc driver, which is a part of Java. This part of the applet receives the data in the form of queries, sends these queries into the database, and receives the data from database a sends them for further processing.
EAI (External Authoring Interface) part handles the communication between the applet and the VRML virtual world located at the same web page. This part of the applet just sends processed data for 3D visualization into VRML world using External Authoring Interface for Java. The main disadvantage of the EAI is that the virtual world and the applet have to be on the same web page. They can not be on different pages or different frames.
Part of the application, which is oriented to display the data in 3D space, is presented by virtual reality or by scene of the virtual world, which is composed and described by virtual reality modeling language, VRML. It was necessary to use VRML 2.0 or VRML 97, because the virtual scene used in the application is not static. VRML 97 offers good possibilities of combining static scene with dynamic features and such way bring the life into the virtual reality. It supports scripting as well and the interface for different languages, such as JavaScript or Vrmlscript is also designed very well.
The design consisted of two consequent parts: modeling the static objects, which will be displayed and writing scripts, witch will handle dynamic presentation of the found objects in the building. These searchable objects are dynamically created and destroyed in the scene graph of the model of the building. The change of the scene is the reaction to the object finding or to the user interaction. This change consists of the dynamic change of the viewpoint or the change between displaying whole building or one floor only.
Figure 5: VRML world structure
The large complexity of the project was expected, therefore the project was build from the bottom up. The simple objects, like printer, computer, walls, and doors, were created at first and were tested as well. Larger and more complex objets, like floors and whole building were built upon these simple ones.
The functionality between these objects was created at the last phase. It was objects own functionality and the functionality handling the user interaction, because I decided to limit the user actions by not allowing him to use the standard way of controlling the navigation in the virtual world. It was necessary to design HCI (Human-Computer Interface). HCI should be simple and easy to navigate inexperienced user intuitively and to get the user to learn the way of using it himself. This HCI was designed originally as a standalone part, but it had to be implemented on the top level to be accessible from Java EAI. Finally, the following file structure was designed. This structure is hierarchic and doesn't copy the directory structure. It is designed upon common and different features of the objects and upon their complexity. It was necessary to create three basic elements: the building as one part, each floor and objects, which are searched in the database. The building is modeled in the cover.wrl file; each floor is modeled in the floorXX.wrl file, where XX corresponds to the floor number. The objects searched in the database are created in the separate files like printer.wrl or computer.wrl. All these three elements are united and controlled from the main swh.wrl file, which handles the user interface as well.
Directory structure is designed as showed on the Figure 8.
Figure 6: Directory structure
Main directory called swh contains basic files, which are linked into next files, which are divided into individual subdirectories.
The content of each directory is as follow:
The main advantages of such directory structure are arrangement, transparency, and extensibility.
The main advantages of this search machine are:
The advantages of the HCI:
Figure 7: Human-Computer Interface
The VRSM application uses three most common Internet languages: HTML - the worlds most used text file Internet format, VRML - international standard for web 3D, Java - platform independent applet and application language "Write once, run anywhere".
Figure 8: VRSM application composition model
The VRSM application can be extend or enhanced in these ways in the future:
Internet of the future goes 3D. You are able to explore many virtual worlds on the Internet nowadays. But you are the only one who is in there. You are the only one visitor. Today version of the VRML doesn't support multi-user (MU) access to its virtual world, and it doesn't support streaming data, which you need to use in MU worlds.
On February 23-26 1999 has been held the fourth annual symposium about web 3D technologies -VRML 99, first time in Europe (Paderborn, Germany). There were many discussions and many seminars about the future way of the web 3D formats for the Internet, not only about VRML, which is very robust and that cause it difficult to implement. But it still misses multi-user and streaming features; witch might be the part of next version of the VRML, called VRML NG (Next Generation), VRML 2000, X3D or whatever.
The other next step to the brighter future of VRML is that Platinum has announced the VRML browser plug-in Platinum (Cosmo) player open source for non-commercial use. It means that we will be able to use the code, change it, improve it, fix the bugs, extend it for special purposes, and so on.
[1] The Virtual Reality Modeling Language 1.0, ISO, 4.4.1995
http://www.vrml.org/Specifications/VRML1.0/
[2] Bell, G. - Parisi, A. - Pesce, M.: The Virtual Reality Modeling Language 1.1, ISO, 16.12.1995
http://vag.vrml.org/vrml1.1.html
[3] The Virtual Reality Modeling Language 2.0, ISO, 4.8.1996
http://www.vrml.org/Specifications/VRML2.0
[4] Carey, R. - Bell,G. - Marrin, Ch.: The Virtual Reality Modeling Language 97, ISO, 20.12.1997
http://www.vrml.org/Specifications/VRML97/VRML97/index.html
[5] Marrin, Ch. - Kent, J.: Proposal for a VRML Script Node, Authoring Interface, VRMLScript Reference, Silicon Graphics, Inc., 6.10.1996
http://vrml.sgi.com/moving-worlds/spec/vrmlscript.html
[6] Marrin, Ch.: Proposal for a VRML 2.0 Informative Annex, EAI Reference, Silicon Graphics, Inc., 21.10.1997
http://vrml.sgi.com/moving-worlds/spec/ExternalInterface.html
[7] Marrin, Ch.: Anatomy of a VRML Browser, Silicon Graphics, Inc., 26.8.1996
http://reality.sgi.com/cmarrin_engr/vrml/Interface.html
[8] VRML Architecture Group, VAG
http://www.vrml.org/index.html
[9] The VRML Consortium, The VRML Consortium, Inc., 31.7.1997
http://www.vrml.org/index.html
[10] Daub, M. D.: A Brief History of VRML, 15.4.1996
http://www-astronomy.mps.ohio-state.edu/~stephens/vrml/vrml_history.html
[11] Crispen, B.: VRML History, 5.6.1997
http://fly.hiwaay.net/~crispen/vrml/history.html
[12] Pesce, M.: VRML History, 1996
http://www.nrh.com/deepthoughts/history.htm
[13] Nadeau, D. R.: How to view VRML 2.0, Netscape, 20.8.1997
http://www.netscapeworld.com/netscapeworld/nw-12-1996/sidebars/browsers.html
[14] Nadeau, D. R.: See what VRML 2.0 is all about and start building shapes today, Netscape, 9.9.1997
http://www.netscapeworld.com/netscapeworld/nw-12-1996/nw-12-vrmltechniques.html
[15] Cromwell, R.: VRML 2.0 Moving Worlds Tutorial and Test Page, Westlake Solutions, Inc., 1996
http://demo.westlake.com/vrml2/
[16] Marks, G. - Shiple, J.: Do it yourself VRML, Construct, Inc.
http://www.construct.com/tools/vrml/howto.html
[17] Norton, A.: Colors in VRML, 10.7.1996
http://reality.sgi.com/cmarrin/vrml/colormodel.html
[18] Descartes, A.: Interfacing Java and VRML, Hermetica, Nov. 1996
http://www.arcana.co.uk/technologia/java/jvrml/index.html
[19] Clay, G.: Advanced Uses of VRML2, Silicon Graphics, Inc., 1996
http://vrml.sgi.com/develop/experts/advancedVRML2/advancedVRML7.html
[20] Couch, J.: A Simple create VrmlFromX Lesson, Silicon Graphics, Inc., 1996
http://webspace.sgi.com/developer/tips
[21] Roskothen, M.: Slide It !, Silicon Graphics, Inc., 1996
http://webspace.sgi.com/developer/tips
[22] Roskothen, M.: Adding Parents and Children Nodes, Silicon Graphics, Inc., 1996
http://webspace.sgi.com/developer/tips
[23] Joel, P.: Infinite Reality, Silicon Graphics, Inc., 1996
http://webspace.sgi.com/developer/tips
[24] Thornborrow, Ch.: Scripting Concepts, Silicon Graphics, Inc., 1996
http://webspace.sgi.com/developer/tips
[25] DeCuir, J. D.: Simple Scripting in VRML 2.0, Silicon Graphics, Inc., 1996
http://webspace.sgi.com/developer/tips
[26] Diehl, S.: VRML++: Adding Classes to VRML, Universität des Saarlandes
http://www.cs.uni-sb.de/RW/users/diehl/vrml++/content.html
[27] Gerding, D. J.: 20 Questions on VRML, CNET, Inc., 7.10.1997
http://www.cnet.com/Content/Builder/Authoring/Vrml/index.html?dd
[28] VRML Frequently Asked Questions, 28.2.1996
http://www.oki.com/vrml/VRML_FAQ.html
[29] Crispen, B.: FAQ v1.0, comp.lang.vrml, 28.5.1997
http://fly.hiwaay.net/~crispen/vrml/faq.html
[30] VRML 2.0 EAI FAQ, Finlayson Consulting VRML Group, 5.11.1997
http://www.tomco.net/~raf/faqs/eaifaq.html
[31] VRML, Grafman Productions, 1996
http://www.graphcomp.com/grafman/vrml/tips.html
[32] Reed-Ballreich, C.: Texture Mapping in VRML 2.0, 3Name3D, 8.10.1996
http://www.ywd.com
[33] Carey, R. - Bell, G.: The Annotaded VRML 97 Reference Manual
http://www.best.com/~Erikk/Book/book.shtml
[34] Lipkin, D.: Proposal for a VRML Informative Annex, Recommended Practices for SQL Database Access, 20. augusta 1998
http://www.vrml.org/WorkingGroups/dbwork/dbex.html
[35] Flannagan, D.: Programování v jazyce Java, O'Reilly 1997. 488 s.