Information Visualization with VRML and X3D - 2003

Nicholas F. Polys
VT Computer Science

Technology Concepts

  • The Declarative paradigm: portable data and applications
  • Standards and the ecology of tools
  • The Scenegraph: Transformation hierarchy & Behavior graph
  • Custom objects encasupate geometries and behaviors

Conceptually, each X3D application is a 3D time-based space that contains graphic and aural objects that can be loaded over a network and dynamically modified through a variety of mechanisms. The semantics of X3D describe an abstract functional behaviour of time-based, interactive 3D, multimedia information. X3D does not define physical devices or any other implementation-dependent concepts (e.g., screen resolution and input devices). X3D is intended for a wide variety of devices and applications, and provides wide latitude in interpretation and implementation of the functionality. For example, X3D does not assume the existence of a mouse or 2D display device.

Each X3D application:
· implicitly establishes a world coordinate space for all objects defined, as well as all objects included by the application;
· explicitly defines and composes a set of 2D, 3D and multimedia objects;
· can specify hyperlinks to other files and applications;
· can define object behaviours;
· can connect to external modules or applications via programming and scripting languages.

The basic unit of the X3D run-time environment is the scene graph. This structure contains all the objects in the system and their relationships. Relationships are contained along several axes of the scene graph. The transformation hierarchy describes the spatial relationship of rendering objects. The behavior graph describes the connections between fields and the flow of events through the system.
An X3D scene graph is a directed acyclic graph. Nodes can contain specific fields with one or more children nodes which participate in the hierarchy. These may, in turn, contain nodes (or instances of nodes). This hierarchy of nodes is called the scene graph. Each arc in the graph from A to B means that node A has a field whose value directly contains node B. See [FOLEY] for details on hierarchical scene graphs.

Fields define the persistent state of nodes, and values which nodes may send or receive in the form of events. X3D supports four types of access to a node's fields:
· initializeOnly access, which allows content to supply an initial value for the field but does not allow subsequent changes to its value;
· inputOnly access, which means that the node may receive an event to change the value of its field, but does not allow the field's value to be read;
· outputOnly access, which means that the node may send an event when its value changes, but does not allow the field's value to be written; and
· inputOutput access, which allows full access to the field: content may supply an initial value for the field, the node may receive an event to change the value of its field, and the node may send an event when its value changes.

Fields are specified for different data types (single = SF, array = MF):

  • 5.2 SFBool and MFBool
  • 5.3 SFColor and MFColor
  • 5.4 SFColorRGBA and MFColorRGBA
  • 5.5 SFDouble and MFDouble
  • 5.6 SFFloat and MFFloat
  • 5.7 SFImage and MFImage
  • 5.8 SFInt32 and MFInt32
  • 5.9 SFNode and MFNode
  • 5.10 SFRotation and MFRotation
  • 5.11 SFString and MFString
  • 5.12 SFTime and MFTime
  • 5.13 SFVec2d and MFVec2d
  • 5.14 SFVec2f and MFVec2f
  • 5.15 SFVec3d and MFVec3d
  • 5.16 SFVec3f and MFVec3f

From Concepts: Extensible 3D (X3D) Part 1: Architecture and base components ISO/IEC FDIS 19775-1:200x:

 

Technology Context

VRML History:

  • scenegraph file format from Open Inventor to describe interactive 3D worlds for the web
    (independent of rendering platform)
  • Viewer software can be a web-browser plug-in or a stand-alone application
  • a difficult road on the commercial side; we are beginning 'Round 4'...
    but common modeling software export VRML (especially geometry) and the old VRML content still runs -
    and runs faster than ever!
  • Some Web3D-specific authoring packages exist;
    the format is legible and world scripting can use Javascript or Java

Web3D is a term referring to open, international media standards or recognized practices of the Web3D Consortium : VRML97, GeoVRML, H-Anim, and... X3D!


The Power of Open Standards

Web3D Consortium : www.web3d.org -
data durability, interoperability, integration.

Highly deployed in Academia and Europe, Asia, and Australia -
continued innovation of technology and content applications
.

Features of Web3D

  • 2D and 3D graphics
  • Animation
  • Spatialized audio and video
  • User interaction
  • Navigation
  • Simulation
  • User-defined objects
  • Scripting
  • Networking : Multi-User , DIS


VRML97 -

Improved stability and speed of viewers for multiple platforms: Windows, Mac, Linux/Irix
http://sdk.web3d.org

Info Viz Examples 1:


X3D -

  • A software standard for web and broadcast multimedia content
  • Universal interchange format
  • Successor to VRML97
    New features
    : Additional data encodings – eg XML, Improved APIs, Stricter conformance, Modular architecture, Extensibility
  • The new ISO standard from Web3D

Design Goals, improving on VRML97:

  • Support new graphical, behavioral, and interactive types
  • Separate runtime architecture from data encoding
  • Provide alternative application programmer interfaces (APIs) into the 3D scene
  • Modularize the architecture Lightweight core + add-on components
  • Define subsets of the specification (“profiles") that meet different market needs
  • Allow for the specification to be implemented at varying levels of service
  • Allow for the specification to be extended more easily
  • Eliminate, where possible, unspecified or underspecified behaviors

XML Encoding

  • Single data representation which can be presented in multiple contexts or forms
  • ‘High-level markup’ tags may be defined
  • Opens up a whole ecology of tools and integration techniques

Profiles allow a broad range of application domains

  • Interchange
  • Interactive (currently = MPEG4 profile)
  • Extensibility
  • VRML97 Base
  • Full

Native X3D Viewers: Anima ; Xj3D (opensource toolkit) ; BitManagement ; Octaga

Or, translate to VRML or other format for delivery!


Implementation strategies:

  • Authoring - X3D, VRML... X3DEdit, Spazz3D, VRMLPad, SceneBuilder ...
  • Programmatic generation - SQL (w/ PHP or Perl) or XSL Transformations
    [iterate through records and attributes, building visual markers into the scene]

Overview of Web3D Publishing

We divided the scene into 'blocks' which described the various functional parts of the scene.
These were:

  1. Define environment & locations
  2. Define User Interface & Viewpoints
  3. Model objects & prototypes
  4. Define interactions
  5. Organize and collect scene
  6. Optimize scene with post-production tools

The degree of 'granularity' & 'encapsulation' in the scene abstraction will impact the data representation, its generation, as well as its storage and retrieval

The result of good design is an implicitly structured X3D 'Document' describing our various scenes in the form of:

Content type
- Header
- PROTOs & EXTERNPROTOS
- World set ( Backgrounds, ProximitySensor)
- HUD & User Interface Scripts
- Environment & Populus set (geometries)
- ROUTES

This allows a modular structure to the scene that could be build from any number of applications or databases to the final target presentation.

Figure 7.1  X3D Publishing Paradigms Summarized: S = Source, V = View, T = Transformation

 

Info Viz Examples 2:

Database Generation:

XSL Transformations for 'archived' file publishing:

 

Info Viz Design

Data Type

Quantitative

 

Ordinal

 

Nominal

Graphical Representation

position

length

angle / slope

area

volume

color / density

    (Cleveland and McGill, 1980)

position

density

color

texture

connection

containment

length

angle

slope

area

volume

    (Mackinlay, 1986)

position

color

texture

connection

containment

density

shape

length

angle

slope

area

volume

    (Mackinlay, 1986)

Custom Visual Markers: Authors can aggregate nodes and field interfaces into ‘Prototype’ nodes (PROTOs) which can be easily instantiated and reused in other scenegraphs and scenegraph locations.  Prototypes allow the efficient definition, encapsulation, and re-use of interactive 3D objects.  As we will see, Prototypes are especially suited to design visual markers and interactive widgets.  In the interest of promoting the re-use of code without redundancy, Prototypes can also be defined in external files (EXTERNPROTOs).  This prototype definition is a separate, singular resource that can be instantiated into multiple scenes. 


Info Viz Examples 3:

Overview and Detail Geo maps- External Authoring Interface + Netscape
http://ias.trident3d.net/ucm/tridentS.html

Anatomy Landmarks - NIST - OGL
http://ovrt.nist.gov/projects/vrml/h-anim/landmarkInfo.html
Focus + Context http://ovrt.nist.gov/projects/cardlab/vrmlhead.htm

VIsible Human exports - External Authoring Interface
http://sprojects.mmip.mcgill.ca/anatomy3d

PathSim ; demo


The Specs:

http://www.web3d.org/fs_specifications.htm
http://www.web3d.org/x3d.html

The Software:

http://sdk.web3d.org

References:

There are some good books out there as well as online reference manuals and tutorials.

See especially the
ACM Web3D Symposium Proceedings
!

http://csgrad.cs.vt.edu/~npolys

http://csgrad.cs.vt.edu/~npolys/XSLT_X3D.pdf

http://www.virtuworlds.com/media_02/mediaview.html#wares
especially Courseware - Coursenotes etc from Web3D Symposium tutorial 2002

Enjoy opening up new dimensions for the WWW !!!