Extensible 3D (X3D)
Part 1: Architecture and base components

Introduction

# General

Extensible 3D (X3D) is a software standard for defining interactive web- and broadcast-based 3D content integrated with multimedia. X3D is intended for use on a variety of hardware devices and in a broad range of application areas such as engineering and scientific visualization, multimedia presentations, entertainment and educational titles, web pages, and shared virtual worlds. X3D is also intended to be a universal interchange format for integrated 3D graphics and multimedia. X3D is the successor to the Virtual Reality Modeling Language (VRML), the original ISO standard for web-based 3D graphics (ISO/IEC 14772). X3D improves upon VRML with new features, advanced application programmer interfaces, additional data encoding formats, stricter conformance, and a componentized architecture that allows for a modular approach to supporting the standard.

This section describes the design objectives behind the development of X3D and provides an overview of the features of X3D.

# Design objectives

X3D has been developed to meet a specific set of market and technical requirements. To meet these requirements, X3D has adopted the following design objectives:

- Separate the runtime architecture from the data encoding,
- Support a variety of encoding formats, including the Extensible Markup Language (XML),
- Add new graphical, behavioural and interactive objects,
- Provide alternative application programmer interfaces (APIs) into the 3D scene,
- Define subsets of the specification ("Profiles") that meet different market needs,
- Allow for the specification to be implemented at varying levels of service, and
- Eliminate, where possible, unspecified or underspecified behaviours.

# X3D features

X3D has a rich set of features to support applications such as engineering and scientific visualization, multimedia presentations, entertainment and educational titles, web pages, and shared virtual worlds. The X3D feature set includes:

- 3D graphics - Polygonal geometry, parametric geometry, hierarchical transformations, advanced materials and lighting for Physically Based Rendering (PBR), multi-pass/multi-stage texture mapping,
- 2D graphics - Text, 2D vector and planar shapes displayed within the 3D transformation hierarchy,
- Animation - Timers and interpolator to drive continuous animations; humanoid animation and morphing,
- Humanoid Animation - full-fidelity representations of human skeleton with motion animation,
- Metadata - comprehensive inclusion of typed metadata sets,
- Spatialized audio and video - Sound generation and rendering, audiovisual sources mapped onto geometry in the scene, support for Web Audio API [W3C-WebAudio] and MIDI 2.0 [MIDI 2.0],
- User interaction - Mouse-based picking and dragging; keyboard input,
- Navigation - Cameras; user movement within the 3D scene; collision, proximity and visibility detection,
- User-defined objects - Ability to extend built-in X3D browser functionality by creating user-defined data types,
- Scripting - Ability to dynamically change the scene via programming and scripting languages,
- Networking - Ability to compose a single X3D scene out of assets located on a network; hyperlinking of objects to other scenes or assets located on the World Wide Web; improved control of loading, refresh rates and security,
- Physical simulation - Humanoid animation; geospatial datasets; integration with Distributed Interactive Simulation (DIS) protocols,
- Geospatial positioning - Ability to accurately position X3D scene objects geospatially.,
- CAD geometry – ability to represent CAD models mapped from CAD systems.,
- Layering – Ability to organize X3D scenes into rendering groups so that objects in each layer can overlay objects in underlying layers.,
- Support for programmable shaders – Ability to replace the X3D lighting model with custom shader programs.,
- Particle systems – Ability to generate systems of particles that can represent fire, smoke, and other such effects, and
- Volume rendering – Ability to specify and render volumetric data sets, as used within medical imaging, for example.

For a complete list of X3D features, consult the component descriptions in clauses 7 through 42 of this document.