Information rich temporal virtual models using X3D

Information rich temporal virtual models using X3D

ARTICLE IN PRESS Computers & Graphics 30 (2006) 287–298 www.elsevier.com/locate/cag Information rich temporal virtual models using X3D Robina Hether...

826KB Sizes 0 Downloads 40 Views

ARTICLE IN PRESS

Computers & Graphics 30 (2006) 287–298 www.elsevier.com/locate/cag

Information rich temporal virtual models using X3D Robina Hetherington, Brian Farrimond, Steve Presland Liverpool Hope University College, Hope Park, Liverpool, L16 9JD UK

Abstract This paper explores the use of eXtensible Mark-up Language (XML) technologies, including eXtensible threeDimensions (X3D), Scene Application Interface (SAI), eXtensible path (Xpath) and eXtensible Stylesheet Language (XSL) to display and manipulate a model along with associated temporal data. X3D, which is the new standard for the display of three-dimensional models over the World Wide Web, offers significant improvements for real-time client-side manipulation over other methods available for use on the Internet. These improvements are due to X3D being an application of XML. Real-time client side manipulation and display of a model and associated textual information through use of a Web Browser and Plugin is demonstrated. A single file is employed to contain all data related to how the structure has evolved and developed over time. This allows the user to view and explore the model in different states (times) and to read relevant historical textural information. r 2006 Elsevier Ltd. All rights reserved. Keywords: Cultural heritage; Architecture; Distributed virtual environment; Representations; Data structure transformations

1. Introduction Computer three-dimensional (3D) modelling allows the visualisation of objects that would otherwise be impossible either because they no longer exist, such as historical artefacts or have been significantly altered, such as buildings which have had additions or sections removed. Computer modelling also allows the user to explore and manipulate the objects; they can be ‘flown over’, ‘spun round’ and ‘entered’. In the past, technical limitations have restricted the distribution and display of three-dimensional models by personal computers. However, recent developments in computer hardware, and in particular the ready availability of graphics cards capable of rendering three-dimensional models, along Corresponding author. Fax: +44 (0) 151 291 3169.

E-mail addresses: [email protected] (R. Hetherington), [email protected] (B. Farrimond), [email protected] (S. Presland).

with the use of high-speed connections mean that it is now possible to make virtual visits to places. Models, on their own however, do not always contain sufficient data to ‘tell the whole story’. For example visits to a real historical site invariably involve the visitor seeking additional information such as that to be found in a guide book. In addition it would be advantageous to make a virtual visit to more than one state of the artefact as the archaeological structure evolves and changes over time, to ‘see’ the whole picture. This paper examines the use of the new standard for three-dimensional modelling, eXtensible three-Dimensions (X3D), to display models over the World Wide Web. It explores the relationship of the new standard with other eXtensible Mark-up Language (XML) technologies. The method developed demonstrates the potential of these new technologies to combine two different data types (3D geometric data and temporal data in the form of text) and has applications in many visualisation fields other than Archaeology. It could be

0097-8493/$ - see front matter r 2006 Elsevier Ltd. All rights reserved. doi:10.1016/j.cag.2006.01.033

ARTICLE IN PRESS 288

R. Hetherington et al. / Computers & Graphics 30 (2006) 287–298

applied to many diverse applications such as the display of the assembly sequence of components and associated instructions, specification information alongside construction models or medical applications. All of these uses require abstract data, a temporal component and three-dimensional visualisation. The concept of augmenting sensory rich virtual environments with abstract information is discussed by Bowman et al. [1] in their work on Information Rich Virtual Environments (IRVEs) where they call for more work into three key areas: implementation, display and interaction. This paper demonstrates how the methodology described by Hetherington et al. [2] can be applied to a larger scale data set to provide an IRVE using a client side Web browser as the means of display. It extends the method by exploring the use of proprietary software to create the model, working with more complex data and dynamically altering the filtering mechanism There were three objectives of the work described in this paper:

 to investigate methods for the construction of a 3D  

temporal model using X3D for display within a web browser window, to investigate methods for the display of temporal data associated with the model in the same web browser window, to investigate procedures to visualise different temporal states of the model.

The techniques were applied to models corresponding to three different states of Stonehenge corresponding to when it was first built in approximately 3000 BC, when it was significantly enlarged in approximately 2400 BC and today [3]. Stonehenge is an especially pertinent case to employ as an example since it can only be visited or seen from a distance unless special permissions have been granted to enter the stone circle and thus there is a real need for the provision of Virtual Visits.

medium. This has been mainly through the use of HTML, an open source Mark-up language, and the use of freely available web browsers to suit most computer operating systems. However, the limitations of HTML have led to the development of eXtensible Mark-up Language (XML) [4]. XML has been developed by the World Wide Web Consortium (W3C) and is a text format derived from SGML (Standard Generalized Mark-up Language). As an XML document is a plain text file it provides a software and platform independent way of sharing data. The structuring of the XML data can be used to separate or identify different types of content. This allows for manipulation, filtering and display of data contained in one source. ‘‘..a single data representation which can be presented in multiple contexts or forms’’ (Polys [5]). The standard developed by the World Wide Web Consortium (W3C) to filter, sort and format XML data is known as eXtensible Stylesheet Language (XSL). There are two components of XSL which work together to filter data:

 XPath is a method for accessing parts of an XML 

document and can be used to point to particular information within a document. XSLT is a method for transforming XML documents that makes use of XPath. It can be used to change data stored in an XML document into other file formats. In the case of HTML, for example, each filtered element in the XML file is transformed into an HTML element.

XSLT transformation can take place either on a server or on a client computer. On the client computer, software such as Internet Explorer can be used to carry out the transformation. This study examines the use of client side transformation of data contained within the model file, in X3D format, into HTML for display within a webpage in a web browser.

2. Background and underlying concepts

2.2. XML and temporal data

This section examines related work in order to draw together a number of different strands that have all influenced the development of this work. It looks first at the use of Web3D to view models of historical objects, it then looks at the use of XML to store historical data and finally at work which combines both general XML and specific X3D technologies.

The world is dynamic and everything happens over time. Mitakos et al. [6] state that the progression of time can be considered to have granularity, with events allocated to distinct points in time, i.e. time is discrete. In this study, time will be treated as discrete, with steady-state conditions existing between events. There is little work reported to date on the use of XML to store temporal data. Parkinson [7] used XML to create structures for the storage of historical data using the concept of time stamping. XML, because of its extensibility, was found to offer much greater flexibility for the storage of temporal data than traditional

2.1. XML (eXtensible Mark-up Language) The last decade has seen a phenomenal growth in the use of the World Wide Web as a communications

ARTICLE IN PRESS R. Hetherington et al. / Computers & Graphics 30 (2006) 287–298

relational databases. Parkinson examined time stamping data on objects in the form of XML tags. This means that the data can be sorted or filtered according to the time stamps. Time stamping is a key concept in relation to this project in which the objective is to add temporal data to models. 2.3. X3D In parallel with the development of the World Wide Web there has been a growth in the ability to model 3D objects on computers. The term Web3D is used for any method of displaying 3D data over the WWW. In the early 1990s the Virtual Reality Modelling Language (VRML) was developed to enable three-dimensional models to be displayed over the WWW. However, due to inconsistency of standards and plugins it has not seen comparable uptake to that of HTML. Recently a new standard, X3D (eXtensible 3D) has been developed by the Web3D Consortium [8]. This new standard received International Standards Organization (ISO) approval in August 2004 [9]. Whilst HTML and VRML were developed as complementary technologies, where one can exist without the other, X3D is an application of XML. X3D, given its relationship to XML, is seen as having a greater probability of achieving more widespread use than VRML. Dachselt et al. [10] suggest that the X3D format will be more successful than VRML due to XML-encoding, modularisation through profiles and smarter browsers (yet to be developed). Kim and Fishwick [11] predict that the change to X3D from VRML will be ‘natural and logical’ due to the benefits XML has to offer. Figueroa et al. [12] state that X3D, as it is a form of XML, opens up many alternative interaction techniques. There are a number of ongoing projects using Web3D to create interactive visualisations of cultural heritage artefacts, from small museum objects too valuable/ delicate to handle to complete cities that no longer exist. The Web is seen as a mechanism of making these objects available to scientists, historians and the general public for learning and enjoyment. Most of the work in Web3D is concerned with the creation, storage and management of the virtual representations [13]. To date the majority of the work carried out has been based upon VRML, although the potential of XML and X3D in the future of Humanities Computing has been recognised by Niccolucci [14]. He identified the potential of XML as a means to rescue data from databases going obsolete due to software obsolescence and also to produce quality Cultural Virtual Reality with X3D. However he argues that there are significant difficulties to be overcome to enable practical application of the technologies. Although there is a significant body of work on both VRML and XML, there is very little work in the

289

application of X3D combined with XML. Polys [5] has demonstrated how chemical structures can be displayed through a combination of Chemical modelling language (CML) and X3D. Kim and Fishwick [11] have examined the concept of creating dynamic models with X3D. According to Polys the potential impact of convergence between X3D and XML has yet to be understood or explored. One aspect of this work is to show buildings or structures evolving over time. Chiu et al. [15] in their work on digital urban models recognise the need to record and visualise buildings at different times in a digital model. Farrimond et al. [16] demonstrate how historical data in a temporal database can be used to generate dynamic 3D models expressed in VRML. This work is concerned with an archaeological application of X3D and XML in which they are employed to enable buildings or artefacts that no longer exist or have changed significantly to be viewed, and to combine these views with relevant temporal or historical data such as dates and descriptions. This work builds upon earlier work by Hetherington et al. [2] where three methods of combining temporal data with a simple model were investigated, as illustrated in Fig. 1. This figure shows three data combinations being transformed:

 a pure X3D file  a pure XML file  a combination of both X3D with XML This work takes the method of embedding the temporal data within one pure X3D file using MetaData, and applies it to a much more complex model. In the earlier work the use of XSLT and DOM (Document Object Method) to extract and filter abstract data was investigated and compared. In this method XSLT is used to filter the temporal data with ECMAScript employed to dynamically alter the XSLT filter. The model is embedded into a webpage and the state (or time) of the model can be altered using SAI (Scene Access Interface) [17]. 2.4. X3D modelling concepts X3D is an application of XML, which conforms to a DTD (Document Type Definition) as set out by the Web3D Consortium [8]. X3D can be used to create basic primitives, for example, the X3D code given in Fig. 2 creates a cylinder and specifies a viewpoint and background. It can also be used to create complex geometric models however, the generation of complex models by hand-coding is a non-trivial task and rarely done. The code shown does, however, demonstrate that X3D can be seen as an easy to read text file, with syntax similarities to VRML, Java 3D and Direct X. The generation of larger, more complex geometries is invariably achieved using proprietary 3D modelling software.

ARTICLE IN PRESS 290

R. Hetherington et al. / Computers & Graphics 30 (2006) 287–298

Fig. 1. Combination and filtering of X3D and XML data.

Fig. 2. The use of X3D to create a cylinder.

2.5. Incorporation of temporal data It is possible to contain text data for display as part of the X3D model using the Text node, however when displayed within the model it can be difficult to read and is not suitable for large amounts of data. A better solution is to combine abstract data with the geometric detail of the 3D model by use of Metadata nodes. Metadata nodes are part of the final, approved, X3D specification which can be used to provide information about a parent node. The data contained within the Metadata is not intended for rendering as part of the 3D model, it is there to contain associated data. This means that abstract or textual information can be contained

within the X3D file. Fig. 3 illustrates the use of some of the Metadata nodes (the MetadataSet node acts as a parent or grouping node). Although the example shows only the MetadataString node used for text, the specification also allows for the use of integers and floating point numbers. Another use of the MetadataString node could be to store URLs to link to the file to other resources on the Web. 2.6. Visualisation of different states Another aspect of the X3D specification of importance for this study is the ability to group objects together and choose which group to be rendered by use

ARTICLE IN PRESS R. Hetherington et al. / Computers & Graphics 30 (2006) 287–298

291

Fig. 3. Fragment of X3D code used to store abstract data.

Fig. 4. X3D code fragment showing Grouping for Times.

of the Switch node. Fig. 4 illustrates how the X3D file can be structured using the Group node to organise both the geometries and metadata elements of the building which relate to different times. The Switch node is used to tell the browser which Group to render by altering the value of the attribute whichChoice. whichChoice will be assigned a value according to the user’s chosen time selected by a mouse click on a link from within the webpage containing the plugin displaying the model. The value 1 indicates that no Group is displayed, 0 for the first Group, 1 displays the second and so on. Nodes such as the Background or Viewpoint which remain constant through changes of state are placed outside the Switch tag. Another aspect of X3D modelling is the efficient handling of elements of geometry which appear in more than one time period (or Group node). An example is the terrain in the Stonehenge model which appears in more than one time period, but not all. Such elements, are defined in full once, given a name using the DEF attribute and repeated using the USE attribute to refer to that name as shown in Fig. 5

3. Building, displaying and filtering a complex model This section describes the process of creating a complex temporal model of Stonehenge. It outlines the problems encountered with organising the data into

different time groupings and incorporating the abstract temporal data. It then discusses how the one data source can be used to generate different 3D representations corresponding to different times and how it can be filtered to generate and display the associated temporal data. The finished model, with the three states of the model corresponding to different times, can be seen in Fig. 6.

3.1. Creation of a complex archaeological model, incorporating temporal data At the time of writing there are only two commercially available modelling programs available to produce X3D directly, as opposed to software such as 3ds Max where the model has to be exported and transformed into X3D. The modelling programs are Viz X3D [18], which was released after the model described in this paper had been started, and X3D-edit [19]. The latter is a scene editing tool, which is very useful for the creation of syntactically correct X3D. However, it does not lend itself to the creation of complex models. It was decided to use 3ds Max version 5 [20] to create the model because it is comparatively easy to use and it can export models in the form of VRML, which can then be converted to X3D.

ARTICLE IN PRESS 292

R. Hetherington et al. / Computers & Graphics 30 (2006) 287–298

Fig. 5. Code fragment to show how X3D can be used to handle repeated elements.

It was necessary to identify a method to create code which could be organised into time groupings in the most economic manner (for download over the web, a smaller file size means a faster download time). For the first attempt at exporting VRML separate model files were used for each time period. The intention was to convert the VRML into X3D then ‘copy and paste’ the code into a master text document containing the Switch, Group and Metadata nodes structured for the different time periods. This was not successful as 3ds Max added names to the elements which caused conflicts as the same names were used for different elements. A common feature of many software packages such as AutoCAD and Flash is to use layers to separate different elements or groups of elements, so the second method investigated was to arrange the objects in the model corresponding to different time periods onto different layers. However it was found that 3ds Max does not handle layers well, with conflicts arising with objects moving between layers. Finally the use of the Grouping feature of 3ds Max to organise the model information into different time periods was investigated. This approach was found to be successful in that it generated model data which could be used as required. The VRML code generated by 3ds Max was converted to X3D using Viz X3D. It was found that the structure of the code automatically generated by 3ds Max was over elaborate with a series of unnecessary nested Groups. Also, although the Stonehenge model has a significant number of repeats of geometries, everything was modelled as a new geometry. The generated X3D code required significant post-editing to simplify the grouping in order for the Switch tag to work. However, the issue of the repeated geometries was not tackled, leaving the file larger than is strictly necessary.

The temporal data and document structure, in the form of the Switch, Group and Metadata nodes, were then hand-coded into the X3D document using a text editor. Metadata was a relatively late addition to the X3D specification and so is not recognised by Viz X3D or the plugin BS Contact. 3.2. Rendering of the model in a webpage Having created the X3D model it then needed to be displayed. The objective was to display the model in a web page accompanied by temporal data as illustrated in Fig. 7, the different states of the model and associated temporal data are displayed by clicking on the hyperlinks. Fig. 8 shows the actual display of the Stonehenge model and temporal data in the browser window. The model viewpoints can be altered either by using presets entered into the X3D file or by the user ‘moving’ within the model. The user can click on a hyperlink to display the model at different times from the same viewpoint. Display of the 3D model requires the use of a browser plugin. There are a number of plugins now available for the display of X3D. Two were used in this study, BS Contact 6.1 [21] and Flux 1.2 beta [22]. Both can be embedded into a web page with the code shown in Fig. 9. The classid attribute value shown calls the Flux plugin, a different value of clsid:4B6E3013-6E4511D0-9309-0020AFE05CC8 would be used for BS Contact 6.1. 3.3. Real-time client-side manipulation of the rendered model The state of the model corresponding to different times can be altered within the client-side browser window by use of an API (Application Programming

ARTICLE IN PRESS R. Hetherington et al. / Computers & Graphics 30 (2006) 287–298

293

Fig. 6. Screenshots of the model at different times or states.

Interface), a method of sending an instruction to the plugin from the webpage that contains the model displayed in Internet Explorer. The new specification for X3D introduced a new standard SAI (Scene Access Interface) [17]. Fig. 10 shows the code to alter the state of the model using BS Contact. The parameters node, field and value are contained within the X3D file and are accessed using an ECMAScript function (The plugins used have different APIs, but the concept is the same). In the example for BS Contact the model refers to the name given to the object tag used to embed the model into the webpage shown in

Fig. 9 and the node altered is the Switch node illustrated in Fig. 4 which controls the rendering of different groups within the model. The example for Flux is more complex, it has been modelled on the Java SAI. The first two functions, shown in Fig. 11, initialise the plugin and load the model. The final function passes the value to the Switch node. 3.4. Filtering and display of the temporal information In order to display the temporal information in the webpage as shown in Fig. 8 the X3D data for the

ARTICLE IN PRESS 294

R. Hetherington et al. / Computers & Graphics 30 (2006) 287–298

Fig. 7. X3D as the sole source for both the model and temporal data.

Fig. 8. Model and temporal data displayed in browser window.

ARTICLE IN PRESS R. Hetherington et al. / Computers & Graphics 30 (2006) 287–298

295

Fig. 9. Code fragment to insert an X3D model into a webpage.

Fig. 10. Code to handle SAI with BS Contact.

Fig. 11. Code fragment to handle SAI with Flux.

different times has to be filtered and converted into HTML. This is achieved using XPath and XSLT in one XSL file. The code shown in Fig. 12 is the filtering mechanism used to extract temporal information from the X3D file. The line of code oxsl:for-each select ¼ "xxxx"4 uses ‘‘xxxx’’ as a placeholder that will be replaced by values representing the different time periods relating to the Grouping in the X3D file. The ECMAScript code to load the X3D and XSL files into the web page and subsequently to transform the X3D using the XSL is given in Fig. 13. The first three statements load the X3D into an ActiveXObject. The

second three statements load the XSL file into another ActiveXObject. The next three statements modify the ActiveXObject containing the XSL by using the filter parameter to replace xxxx in the original XSL. The final statement carries out the XSL transformation on the X3D generating HTML that is displayed within the webpage as identified by the odiv4 container with an id set as insertTimeData The HTML code, shown in Fig. 14 is simplified, without the formatting and layout of the full working webpage. The first set of links, the three anchor tags oa4, have two functions called when the link is clicked, setNodeEventIn and time which pass parameters to the

ARTICLE IN PRESS 296

R. Hetherington et al. / Computers & Graphics 30 (2006) 287–298

Fig. 12. Code for the XSL file.

Fig. 13. Code to load and transform XML data.

functions shown in Figs. 11 and 13 respectively. The second section of code inserts the X3D model into the webpage using the oobject4 tag. The last section shows the odiv4 tag which contains the HTML string containing the temporal data returned from the transformed X3D file. The complete working model and associated temporal data can be seen at: http://www.robina.co.uk/x3d/

4. Conclusions The objectives of the work described in this paper have been met by the application of the technologies XML, X3D, SAI, XPath and XSLT. These technologies can be used to display and manipulate a model along with associated temporal data. The example employed, Stonehenge, demonstrates real-time client side manip-

ulation and display of the model and associated textual information through the use of a Web Browser and Plugin. The methods for the construction of a 3D temporal model using X3D for display within a web browser window were demonstrated. Propriety software was used to generate models with relatively complex forms. It was found that code produced in this manner was over elaborate and inefficient especially for use over the World Wide Web. Significant hand-coding was required to tidy up the code and to add the temporal data using the Metadata tags. Differentiation between the different time states was achieved successfully by use of the Grouping feature of the software. The display of temporal data associated with the model in the same web browser window was explored. It was found that a single X3D file could be used to contain all the data relating to how the structure has

ARTICLE IN PRESS R. Hetherington et al. / Computers & Graphics 30 (2006) 287–298

297

Fig. 14. HTML code fragment.

evolved and developed over time with the temporal data incorporated by use of the Metadata tag. XPath and XSLT were demonstrated to filter and display this data. The visualisation of different temporal states of the model has been described. The use of the Grouping and Switch tags to structure the document allowed the use of SAI to enable the user to view and explore the model in different times. It was found that XSL technologies could be combined with client side ECMAScript to filter and display historical information relevant to a particular time. Many 3D visualisations have a temporal component and related abstract data, therefore the technique described in this paper has applications in many visualisation fields other than Archaeology. For instance it could be used to show the medical progression of an illness or how engineering structures are assembled. There are also many potential commercial applications for the addition and extraction of text and numerical data to 3D representations of objects. Future work will look at the further development of the method to models of buildings. It will look firstly at how abstract data, such as specification information in the form of text or numerical data such as costings can be added to and subsequently extracted from the model. It will also look at the extraction of data in meaningful ways from the geometrical data contained within the X3D file. The geometric data generated by current 3D modelling software is intended for the visualisation and rendering of the model, however, the dimensional data is of use in understanding the model. For instance volumetric or length dimensions are of use to construction professionals. If information regarding quantities is directly extracted from the model file it can dramatically reduce problems of updating construction information

when the model is altered. The work will apply client side technologies to extract, compute and display this numerical data. It will investigate how the X3D model file will be structured for efficient extraction and computation of the data.

Acknowledgements Special thanks to a number of people who have helped with this work. Neil and John Hill who provided the 3ds Max model and descriptive copy of Stonehenge. Toni Parisi and Dave Arendash for assistance with Flux.

References [1] Bowman DA, North C, Chen J, Polys NF, Pyla PS, Yilmaz U. Information-rich virtual environments: theory, tools, and research agenda. In: Proceedings of the ACM symposium on virtual reality software and technology, New York: ACM; 2003, p. 81–90. [2] Hetherington R, Scott J, 2004 Adding a fourth dimension to three dimensional virtual spaces. In: Proceedings of the Web3D symposium. New York, USA: ACM Siggraph; 2004, p. 163–172. [3] Souden D. Stonehenge—Mysteries of the stones and landscape. UK: Collins and Brown, English Heritage; 1997. [4] W3C, Extensible markup language (XML), http://www. w3c.org/XML/ [5] Polys NF. Stylesheet transformations for interactive visualisation: towards a Web3D chemistry curricula. In: Proceedings of the Web3D 2003 symposium, ACM Siggraph; 2003, p. 85–90. [6] Mitakos T, Gergatsoulis M, Stavralas Y, Ioannidis EV. Presenting time-dependant information in multidimensional XML. In: Proceedings of the 23rd international

ARTICLE IN PRESS 298

[7] [8] [9]

[10]

[11]

[12]

[13]

R. Hetherington et al. / Computers & Graphics 30 (2006) 287–298 conference on information technology interfaces, Croatia, 2001, p. 111–116. Parkinson C. An innovative approach to the storage of historical data. MSc thesis, University of Liverpool, 2002. Web3d Consortium, X3D Overview. http://www.web3d. org/x3d/overview.html Trevett N. Web3D Consortium, August 9, 2004—SIGGRAPH—Los Angeles, http://www.web3d.org/news/releases/ archives/000092.html Dachselt R, Hinz M, MeiXner K, Contigra. An XMLbased architecture for component-orientated 3D applications. In: Proceedings of the seventh international conference on 3D Web Technology, ACM; 2002, p. 153–163. Kim T, Fishwick PA. A 3D XML-based customized framework for dynamic models. In: Proceedings of the seventh international conference on 3D web technology, ACM, 2002, p. 103–109. Figueroa P, Green M, Hoover HJ. In: Tml: a description language for VR applications. In: Proceedings of the seventh international conference on 3D web technology, ACM, 2002, p. 53–58. Wojciechowski R, Walczak K, Cellary W, White M. Building virtual and augmented reality museum exhibi-

[14]

[15]

[16]

[17]

[18] [19] [20] [21] [22]

tions. In: Proceedings of the Web3D 2004 symposium, ACM Siggraph, 2004, p. 135–144. Niccolucci F. XML and the future of humanities computing. In: Proceedings of the seventh international conference on 3D web technology, New York: ACM; 2002, p. 43–47. Chiu M- L, Lan J- H. Discovery of historical tainan: a digital approach. Automation in Construction 2001;10: 355–68. Farrimond B, Hetherington R. Using 3D to visualise temporal data, ivo4. In: Proceedings of the eight international conference on information visualisation, Los Alamitos, CA, USA, IEEE Computer Society; p. 108–17. Web3d Consortium, Extensible 3D (X3D)Part 2: Scene access interface (SAI), http://www.web3d.org/x3d/ specifications/ISO-IEC-19775-IS-X3DAbstractSpecification/ Part02/index.html Viz X3D, http://www.vizx3d.com/ Don Brutzman, X3D-Edit, http://www.web3d.org/x3d/ content/README.X3D-Edit.html 3ds Max, http://www.discreet.com/ BS Contact 6.1, http://www.bitmanagement.de/index. en.html Flux, http://www.mediamachines.com