You are on page 1of 6

[standards in a NUTSHELL] Leonard Daly

and Don Brutzman

X3D: Extensible 3D Graphics Standard

E
xtensible 3D (X3D) is the open specification for broad 3D graphics ument consists of multiple parts for a
standard for Web-delivered functionality; 2) define multiple levels current total of seven parts. Typically,
three-dimensional (3D) graph- of functionality for implementation on there are updates for three or four of
ics. It specifies a declarative various classes of hardware; 3) define a these parts undergoing the ISO review
geometry definition language, variety of data-encoding formats; and 4) process at any given time. The first X3D
a run-time engine, and an application maintain compatibility with predecessor specification document (ISO/IEC 19775-
programming interface (API) that pro- technology as much as possible. These 1) was approved by the ISO in 2004. The
vide an interactive, animated, real-time objectives were chosen so that the stan- consortium submits amendments or
environment for 3D graphics. The X3D dard was understandable and usable, the revisions to the ISO every 12 to 18
specification documents are freely avail- resulting files fit into the larger Web months to keep current with advances in
able, the standard can be used without architecture, and the content was dis- 3D graphics processing.
paying any royalties, and numerous playable on a large range of displays. All
implementations are available. of these objectives were met by X3D, TARGET APPLICATIONS
which defined three equivalent encod- X3D is designed for applications where
BACKGROUND ing formats: an Extensible Markup 3D models and behaviors can best illus-
Language (XML) version, a classic trate the spatial relationships and inter-
MOTIVATION VRML version, and a compressed binary active features that are otherwise
It has been obvious since the late 1990s version. An X3D world (or X3D scene) difficult to show. Example applications
that a common, standardized format was defined to be all the 3D content, are legion and include the HSV Football
was needed for 3D graphics. Companies animation behaviors, and user interac- Stadium in Germany (venue/event view-
like ActiveWorlds, Cult3D, and tion needed for running an author- ing), RayGun (social networking), Arabic
MetaStream created browsers that defined virtual environment. language and cultural interaction (train-
would only display 3D content created ing), visual analysis of amino acids and
for that particular browser. By the early ISSUING BODY AND SCHEDULE proteins (scientific), subsea drilling rig
2000s, those companies were going out Although standards development is often simulation (maintenance and training),
of business. The lessons learned by the a slow process, a special relationship radiation therapy and surgical systems
early companies were that a common expedites the rapid yet thorough stan- simulator (medical treatment), Earth
standardized format needed to run on dardization process for X3D. All of the atlas (education and scientific), Anti-
desktop computers, interact with the X3D standards are first developed by the Terrorism Force Protection for the U.S.
World Wide Web, and provide several X3D Working Group of the Web3D Navy (mission planning), and eScene
levels of functionality. Consortium and then reviewed, (emergency response).
The initial X3D effort was started in approved, and issued by the International
1999 by the Web3D Consortium. X3D Organization for Standardization (ISO). STRUCTURE OF THE STANDARD
was the evolutionary successor to the Web3D is responsible for all aspects of The three ISO documents comprising
Virtual Reality Modeling Language X3D development, including market the X3D specification are “Abstract
(VRML97). The X3D language was research, implementation and testing of Functionality,” “Encodings,” and
designed based on lessons learned from features, and standards document devel- “Language Bindings.” The first docu-
VRML97 achievements and many com- opment. Standards documents are then ment (ISO/IEC-19775 Parts 1 and 2)
panies’ early efforts. submitted to the ISO as committee draft defines the architecture and functional-
text. Proposed revisions go through a ity of X3D. The second document
OBJECTIVES series of reviews and approvals by (ISO/IEC-19776 Parts 1–3) defines
The purpose for developing the X3D national bodies to ensure completeness, three different encodings of the func-
standard was to 1) develop a royalty-free correctness, and clarity. tionality. The third document
The X3D specification is defined in (ISO/IEC-19777 Parts 1 and 2) defines
Digital Object Identifier 10.1109/MSP.2007.905889 three separate ISO documents. Each doc- the language-specific API bindings

IEEE SIGNAL PROCESSING MAGAZINE [130] NOVEMBER 2007


abstractly defined in ISO/IEC-19775-2. defines the binary file encoding with animation (H-Anim) bodies, and the
These documents are split into parts, optional compression (ISO/IEC- IEEE Distributed Interactive Simulation
each of which addresses a specific topic. 19776-3). (DIS) network protocol.
Summarizing: ■ X3D Language Bindings: ECMA- The rendering, texturing, and mod-
■ X3D Architecture and Base Com- Script defines the ECMAScript API to eling functionalities are designed for
ponents defines the architecture and the SAI (ISO/IEC-19777-1). consistent cross-platform interoper-
abstract definitions of all X3D compo- ■ X3D Language Bindings: Java ability, based on the functionalities
nents (ISO/IEC-19775-1). defines the Java API to the SAI provided by the low-level graphics-ren-
■ X3D Scene Access Interface (SAI) (ISO/IEC-19777-2). dering engines OpenGL and DirectX.
defines the abstract API to X3D Such capabilities can also be imple-
(ISO/IEC-19775-2). TECHNOLOGY mented directly by a software renderer
■ X3D Encodings: XML Encoding when such hardware-driven graphics
defines the XML file encoding of an FUNCTIONALITIES acceleration is not available. Rendering
X3D world (ISO/IEC-19776-1). X3D provides a wide variety of capabili- and texturing features range from sim-
■ X3D Encodings: Classic VRML ties used by the 3D community for ren- ple uniform coloring, color-per-face,
Encoding defines the classic VRML dering, texturing, modeling, animation, color-per-vertex, and texture-image
file encoding of an X3D world and user interactivity. Other advanced mapping to multiple-texture tech-
(ISO/IEC-19776-2). X3D components include geospatial niques and procedural shaders on an
■ X3D Encodings: Binary Encoding positioning, interchangeable humanoid associated graphics processing unit.

X3D Scenes, Event Passing with External


X3D Streams HTML Web Pages or Applications

X3D Browser

Parsers
Scene Access Interface (SAI)
X3D XML Classic VRML Binary
Encoding Encoding Encoding Application Programmer Interfaces

New Node and Prototype Construction

Scripting Engines
X3D Nodes, Prototype and
Node Types External Prototype EcmaScript
Java
Others
Scene Graph Manager

Scene Graph Renderable Nodes Event Graph Animation Nodes

(a) (b)

[FIG1] Example software architecture for an X3D browser with the main parts: (a) file parsing and rendering and (b) animation and
dynamic scene-graph manipulation.

IEEE SIGNAL PROCESSING MAGAZINE [131] NOVEMBER 2007


[standards in a NUTSHELL] continued

X3D geometric modeling capabilities tioned earlier. Code external to the X3D [Figure 1(a)] and animation and dynam-
range from low-level triangle-definition environment may only use the SAI. ic scene graph manipulation [Figure
nodes (for the highest-possible perform- Further extensibility is provided with- 1(b)]. Browsers and applications that
ance) to geometric primitives (box, in X3D itself through a prototyping implement X3D capabilities are free to
cone, cylinder, and sphere) and more mechanism. Authors can create proto- use any software architecture desired, as
advanced geometric nodes such as type definitions of new nodes construct- long as end results are visually and func-
extrusion, elevationgrid, and nonuni- ed from previously defined nodes and tionally correct.
form rational Bézier spline (NURBS) then re-instance them as needed. X3D uses a hierarchical directed
parametric surfaces. acyclic scene graph to define the loca-
X3D provides straightforward func- tion relationships and appearances of
tionality for animation and interactivity. the 3D world. X3D also uses the run-
All of the animation nodes work by key- Full time portion of the architecture to pro-
frame animation using linear interpola- Immersive vide real-time animation and user-
tion. Complex animation sequences are interaction capabilities, which greatly
Interactive
efficiently constructed by linearly increase the “liveness” and perceived
approximating the desired result. User- realism of the scene.
Interchange
interactivity nodes capture events from X3D scene files are encoded in XML,
standard interface devices (e.g., mouse classic VRML, or compressed binary for-
Core
and keyboard) and provide this data mat. The XML encoding allows for self-
inside the X3D environment for process- validating X3D content that is Web-
ing by the browser’s run-time engine. CAD compatible and maximizes interoperabil-
Complex animation and user inter- ity with other Web languages. The classic
action can also be driven by software VRML encoding has the same structure
written in the ECMAScript (commonly as, and is backward compatible with,
[FIG2] X3D profiles are carefully nested to
known as JavaScript) or Java program- provide increasing functional sophisti-
VRML97. The compressed binary encod-
ming languages. The X3D specification cation. Note that the CADInterchange ing minimizes file size and maximizes
requires support for ECMAScript within profile is labeled CAD in the diagram. parsing speed, allowing faster transmis-
the X3D environment, whereas Java sion and faster loading.
support is optional in order to keep X3D scene graphs are typically defined
Web-based implementations small and ARCHITECTURE as one or more files that are available to
lightweight. Code within the X3D envi- The example architecture of a sample the browser locally or using Hypertext
ronment can use either X3D’s event X3D browser, illustrated in Figure 1, Transfer Protocol (HTTP). Each file is
passing mechanism or the SAI men- consists of file parsing and rendering expressed in a single encoding, but differ-
ent files may use different encodings and
even refer to each other. These encodings
are isomorphic to each other, allowing
X3D HARDWARE AND SOFTWARE PRODUCTS equivalent content functionality to exist
Conformant Products (Interchange Profile, as of Autumn 2007) in any of the three forms.
• Xj3D (http://www.xj3d.org) from Yumetech, Inc. (http://yumetech.com) The X3D run-time architecture in
• FreeWrl (http://freewrl.sourceforge.net) from Communications Research Figure 1(b) includes the SAI and script-
Centre, Canada (http://www.crc.ca) ing engines. The SAI allows an applica-
• Flux Player from Media Machines (http://www.mediamachines.com) tion external to the X3D browser to
Other Products perform operations inside the scene
Software (everything from creating the environ-
• BS Contact VRML/X3D from Bitmanagement Software GmbH (http:// ment and adding nodes to manipulat-
www.bitmanagement.com) ing the environment) during run time.
• Flux Studio from Media Machines (http://www.mediamachines.com) The SAI also governs the internal inter-
• Octaga Player, Octaga Professional, Octaga Exporter, and Octaga Panorama face for direct manipulation of the envi-
(http://www.octaga.com) ronment by script code embedded in
• WireFusion, Demicron Ltd. (http://www.demicron.com) the X3D scene. X3D defines the SAI for
Hardware ECMAScript and Java, with a struc-
• SensAble haptics through the use of H3D API (http://www.sensegraphics. turally equivalent SAI binding for C++
com/products.php) likely to undergo future specification
• H3D API also support SeeReal 3D monitors, DepthQ 3D projectors review. Browsers typically implement at
least one of these languages.

IEEE SIGNAL PROCESSING MAGAZINE [132] NOVEMBER 2007


TOOLS
X3D RESOURCES
A number of tools support the creation
and display of X3D worlds. X3D-Edit is a Tutorials
free Java-based X3D/XML editor. It can • L. Daly and D. Brutzman, “Advanced X3D graphics,” in SIGGRAPH 2003
also translate from XML to either classic Tutorial, July 2003 [Online] Available: http://www.realism.com/x3d/tutorials
VRML or VRML97 files using an extensi- • C. Thorne and V. Weiley, “The next generation of virtual worlds with VRML,
ble stylesheet language for transforma- X3D and MPEG4,” in Proc. Graphite 2003 Int. Conf. Computer Graphics and
Interactive Techniques in Australasia and South East Asia, Melbourne,
tions (XSLT) converter. Flux Studio is a
Australia, Feb. 2003.
WYSIWYG PC-based world building
application. Other applications are list- Overviews
• X3D Help [Online]. Available: http://www.web3d.org/x3d/content/
ed in the “X3D Resources” section.
examples/help.html
Common X3D browsers are BS
• X3D Wiki [Online]. Available: http://www.web3d.org/x3d/wiki/index.php/
Contact (Windows), Flux Studio Main_Page
(Windows), FreeWRL (Macintosh and
Books and Articles
Linux), Octaga Player (Windows),
• D. Brutzman and L. Daly, X3D: Extensible 3D Graphics for Web Authors.
WireFusion (Java–Windows, Macintosh, Morgan-Kaufmann, 2007.
and Linux), and the first X3D browser, • V. Geroimenko and C. Chen, Eds., Visualizing Information Using SVG and
Xj3D (Java–Windows, Macintosh, Linux, X3D. New York: Springer, 2005.
and Solaris). There are free-for-use • E. Dethe, “XML Matters: The Web ain’t just for 2D any more,” [Online].
download versions for all of these X3D Available: http://www-128.ibm.com/developerworks/web/library/x-matters43
browsers. FreeWRL, Flux Player, and • X3D Specifications [Online]. Available: http://www.web3d.org/x3d/
Xj3D are open source. specifications
Example Software
PROFILES AND LEVELS Browsers
In general, a wide range of many differ- • BS Contact VRML/X3D, and BS Contact Geo [Online]. Available:
ent technical capabilities exist in 3D http://www.bitManagement.com
graphics. X3D strikes an effective balance • Flux Player [Online]. Available: http://www.mediamachines.com
between lightweight, efficient Web-based • FreeWRL [Online]. Available: http://freewrl.sourceforge.net
delivery and sophisticated computation- • Octaga [Online]. Available: http://www.octaga.com
intensive applications by allowing • Xj3D [Online]. Available: http://www.xj3d.org
authors to precisely define what capabili- Content Creation Tools
ties are needed in each scene. Nodes with • Flux Studio [Online]. Available: http://mediamachines.com
related functionality are collected into • H3D API: X3D Based Open Source Haptics and 3D Visualization API [Online].
Available: http://www.h3d.org
components. Most components are split
• Octaga Player and Modeller [Online]. Available: http://www.octaga.com
into levels, where a level is a collection of
• SwirlX3D [Online]. Available: http://www.pinecoast.com/swirl3d.htm
nodes within the component that are • X3D-Edit [Online]. Available: http://www.web3d.org/x3d/content/
similar in complexity. The 34 compo- README.X3D-Edit.html
nents provide hierarchical object-orient- • See more at the Tool Listing on Web3D [Online]. Available: http://
ed interface definitions and specify the www.web3d.org/tools
fundamental means for expressing X3D Applications
world functionality. • RayGun and eScene [Online]. Available: http://www.planet9.com
X3D defines each profile as a collec- • Case studies [Online]. Available: http://www.web3d.org/casestudies
tion of components at specific levels. It Test Sequences
is a shorthand mechanism for declaring • Web3D Consortium Conformance Test Program [Online]. Available:
the required functional sophistication of http://www.web3d.org/x3d/conformance
the X3D world. There are six defined Discussion List
profiles: four market-driven profiles • Unmoderated discussion list [Online]. Available: http://x3d-public@web3d.org
(“Interchange,” “CADInterchange,” Other Related Resources
“Interactive,” and “Immersive”) and two • Collada [Online]. Available: http://www.collada.org
definitional profiles (“Core” for minimal • World Wide Web Consortium (W3C) [Online]. Available: http://www.w3c.org
features, and “Full” for all features). The • Open Geospatial Consortium (OGC) [Online]. Available: http://www.opengeospa-
nesting relationship between the profiles tial.org
is shown in Figure 2. The palette of • An expanded version of this resources list (http://www.realism.com/x3d/
capabilities provided in each profile is references)
carefully scoped to allow both efficient

IEEE SIGNAL PROCESSING MAGAZINE [133] NOVEMBER 2007


[standards in a NUTSHELL] continued

software implementation and sensible port interactivity and specifically does time required to render each individual
content creation. not address rendering of 3D content. screen display, i.e., each frame. Scene
The Interchange profile is designed OpenInventor was the primary prede- complexity is carefully structured and
for the basic exchange of model geome- cessor of VRML. It is not active, but optimized to maximize rendering frame
try and texture-image content between Coin3D fully supports OpenInventor rate. X3D provides author-controlled
various 3D content-creation applica- 3D. Coin3D is designed more for local mechanisms (such as subtree switching
tions. It includes simple animation applications rather than Web-based and or level-of-detail proximity checks) that
interpolation but not user interaction. Web-aware applications. Collada is can remove unneeded elements from
The CADInterchange profile adds geo- maintained by the Khronos Group as an the rendering cycle to improve per-
metric nodes and data structures to open digital asset exchange and archive formance. Current personal computer
support the exchange of computer-aided format. Neither Coin3D nor Collada has systems with graphics-hardware accel-
design (CAD) data between different been approved by an independent stan- eration are able to render all but the
X3D-based applications. It maintains dards organization. most complex scenes at visually smooth
the hierarchical piece/part structure as Complementary relationships be- rates (15 frames/s or faster). However,
normally defined in common CAD mod- tween X3D and other formats are likely neither the X3D standard nor the con-
els. The Interactive profile adds user to continue to grow, since X3D is formance test suite specifies a mini-
interaction, network protocols, and designed as a broadly capable format that mum or maximum frame rate, since
additional lighting. The Immersive pro- is easily imported and exported while the scope of X3D capabilities and varia-
file is designed to provide all of the nec- remaining suitably stable for long-term tions in both implementations and
essary functionality to develop a archival purposes. delivery platforms can vary so widely.
desktop-based immersive environment. There is no requirement for graphical
It is the most commonly used profile. PERFORMANCE hardware acceleration; however, the
The Core profile defines only the basic frame rate may be significantly slower
functionality of X3D. It has no dis- CONFORMANCE on systems without it. In any case, ani-
playable nodes and is useful only as a The Web3D Consortium runs a confor- mations must proceed at the proper
base for adding individual components mance program that issues an “X3D con- real-time speed regardless of frame
to build highly optimized and special- formant” seal to software or hardware rate, guaranteeing a consistent end-
ized worlds. The Full profile includes all products that pass the conformance test. user experience.
X3D functionality. Although no browser The test suite is initially self-adminis-
yet supports the entire Full profile, tered by implementing company mem- FURTHER TECHNICAL
some are nearly complete. Because mul- bers, and test results are formally verified DEVELOPMENTS
tiple implementations (including at by the Web3D Consortium. The individ- The X3D specification is designed to be
least one open-source implementation) ual tests check functional conformance both flexible and extensible, and so it
must demonstrate interoperability to the standard for a particular profile continues to be revised and amended.
before new component technologies can (now available for the Interactive profile). Such additions can support new func-
be included in the X3D standard, multi- The conformance program is being tionality as it is introduced and deployed
ple browsers support each of the many expanded and implemented for the other by the 3D hardware industry. Current
X3D components. profiles. Browsers may choose to support X3D efforts include adding superior bina-
any combination of profiles, but Core is ry compression, improved navigation
COMPARISON WITH OTHER always required. Therefore, the Core pro- features, geospatial visualization as part
STANDARDS file conformance test suite is also built of X3D Earth, and network protocols for
X3D is the only open standard available into the conformance test suites for the distributing the X3D event model. The
that provides thorough support for real- other profiles. Web3D Consortium has member policies
time, interactive animation and render- The Web3D Consortium’s confor- and working practices in place to help
ing of 3D graphics. Formal development mance program is designed to promote ensure that no undeclared proprietary
of the VRML standard, which is the pred- consistent and reliable implementations intellectual property is included in the
ecessor of X3D, was completed with the of the X3D standard across multiple plat- specifications. Patented technology may
release of X3D. forms. Browsers seeking to claim X3D be adopted, but only under royalty-free
Other related formats include conformance must at least meet the terms, in order to ensure the widest pos-
Universal 3D (U3D), OpenInventor, functionality as specified for that confor- sible Web use.
Coin3D, and Collada. U3D is designed mance profile. X3D is designed to work compatibly
for repurposing and visualization of within the context of the World Wide
CAD models and provides for geometry, SPEED Web and thus needs to interoperate
continuous level of detail, data stream- The run-time processing performance with other XML-based specifications,
ing, and animation. U3D does not sup- of an X3D browser is controlled by the applications, and file formats. To this

IEEE SIGNAL PROCESSING MAGAZINE [134] NOVEMBER 2007


end, the Web3D Consortium is actively
engaged with several external organiza-
tions to ensure interoperability and
compatibility with other standards (the
World Wide Web Consortium and Open
Geospatial Consortium) and to develop
best-practice conversions (Khronos
Group for Collada). It continues to
improve X3D, providing important new
business opportunities and further
extending the Web.
X3D technical development contin-
ues to be innovative and exciting.
Companies, institutions, and individuals
can all take advantage of X3D’s many
capabilities and steady growth. Each is
also welcome to join the Web3D
Consortium to further advance the X3D
Celebrating the Vitality of Technology
graphics standard.

RESOURCES
Tutorials, overviews, books, links to
available software, and other
resources are included in the “X3D
Resources” sidebar. An expanded ver-
Today’s technologies are changing at
sion of the resources list is also avail-
a pace faster than ever. Every issue of
able following a link provided in “X3D
the Proceedings of the IEEE examines
Resources.”
new ideas and innovative technologies
PRODUCTS to keep you up to date with develop-
Information on software and hardware ments within your field and beyond. Our
products using X3D is available in “X3D unique multidisciplinary approach puts
Hardware and Software Products.” today’s technolo-
No other publication
gies in context, keeps you in touch
ACKNOWLEDGMENT and our guest with the evolving world
editors bring of technology better
The authors thank Dr. Kris Watkins for
you the expert than the Proceedings
helpful review comments. of the IEEE.
perspective you
AUTHORS need to understand the impact of new
Leonard Daly (Leonard.Daly@ discoveries on your world and your work.
realism.com) is the president of Daly
Realism, an Internet consulting compa- Enrich your career and broaden your
ny. He is a member of the editorial team horizons. Subscribe today and find
for the X3D standard. out why the Proceedings of the IEEE
Don Brutzman (brutzman@ nps.edu) is consistently the most highly cited
is an associate professor at the Naval general-interest journal in electrical and
Postgraduate School in Monterey, computer engineering in the world!*
*Source: ISI Journal Citation Report (2004)
California, and cochair of the X3D work-
ing group.
Both are coauthors of the book X3D: Call: +1 800 678 4333
Extensible 3D Graphics for Web Authors or +1 732 981 0060
(www.x3dGraphics). [SP] Fax: +1 732 981 9667
Email: customer-service@ieee.org
www.ieee.org/proceedings

IEEE SIGNAL PROCESSING MAGAZINE [135] NOVEMBER 2007


791-Qg.indd 1 6/26/06 10:48:25 AM

You might also like