X3D Resources
  

Extensible 3D (X3D) Graphics: Basic Examples Archive

  
Web3D Consortium home page

This archive provides a wide variety of basic open-source examples that show how to design and build X3D models. Many of these scenes have been used for confirmation, development and testing of essential node capabilities in X3D.


X3D Resources     Javadoc for translated java source 26 Directories, 742 X3D Models .zip archive     Archive Information

CAD Chemical Markup Language course
development Distributed Interactive Simulation Experimental Binary Compression
External Authoring Interface Followers Geospatial
Lattice Xvl Medical Networking
NURBS Points Rigid Body Physics
Script Conformance Security Shaders
Student Projects Units Universal Media Materials
Universal Media Panoramas Volume Rendering VRML 97 Specification
Web 3D Outreach X3D Specifications  

  26 Directory Summaries   742 X3D Models
 Directory SummaryCAD
CAD Teapot

Computer Aided Design (CAD) aids in the creation, modification, analysis, or optimization of model design, with specialized support provided by the X3D CADGeometry component.

The Computer Aided Design (CAD) examples illustrate simple concepts provided by the X3D CAD Geometry Component and CADInterchange Profile. Significant additional work is being pursued by the X3D CAD Working Group and is documented on the X3D CAD Working Group Wiki.

A supporting CAD chapter slideset is available online via X3dGraphics.com.

Technical capabilities are summarized by the SC-4 TC-184 Visualization Requirements For X3D CAD report, published May 2009.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryChemical Markup Language

Chemical Markup Language (CML)

Chemical Markup Language (CML) provides support for most chemistry including molecules, compounds, reactions, spectra, crystals and computational chemistry.

These examples show how to visualize Chemical Markup Language (CML) molecular definitions using previously designed X3D model prototypes by using an XSLT stylesheet transformations. This process is described in the paper "Stylesheet Transformations for Interactive Visualization: Towards a Web3D Chemistry Curricula," originally published in Proceedings of Web3D 2003 Symposium, St. Malo France, 9-12 March 2003, ACM Press.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory Summarycourse
Becky's Road Overpass, sixth grade project

These scenes have been used in X3D course materials.

These are simple example scenes that are useful for teaching and course work. Some have been developed by students learning X3D. A much larger set of scenes and slidesets have been developed as the X3D for Web Authors Examples Archive.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory Summarydevelopment
Additive Subtractive Light example

These scene examples support specification development, player implementations, and demonstration of exemplar X3D capabilities.

These scenes help to demonstrate trial technology and develop new nodes for the X3D Specifications. They support the efforts of the X3D Working Group.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryDistributed Interactive Simulation
DIS Gimbals Example with F18

Distributed Interactive Simulation (DIS) is an IEEE standard for conducting real-time platform-level gaming across multiple host computers and is used worldwide, especially by military organizations but also by other agencies such as those involved in space exploration and medicine.

The IEEE Distributed Interactive Simulation (DIS) networking-protocol standard can be used for synchronized virtual environments and Live, Virtual, Constructive (LVC) simulations. Ongoing development work and DIS details are maintained by the Simulation Interoperability Standards Organization (SISO) which includes the DIS Product Development Group (PDG).

X3D nodes that include DIS support are EspduTransform, DISEntityManager, DISEntityTypeMapping, ReceiverPdu, SignalPdu and TransmitterPdu.

A supporting DIS chapter slideset is available online via X3dGraphics.com. Related work includes X3D-Edit DIS Support as well as the Open-DIS software library, which provides open-source implementations of DIS in C++, C#, Java, Objective-C and JavaScript.

Warning: the Distributed Interactive Simulation (DIS) component in not widely supported. Further work is welcome.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryExperimental Binary Compression
Eight.x3d mesh model used for compression tests

Experimental Binary Compression algorithm models demonstrate the potential of geometric compression techniques.

These developmental examples illustrate how geometric compression based on text-based ASCII encodings might be integrated into X3D scenes via Prototype nodes that encapsulate Script processing. The file-size reduction technique Coding Polygon Meshes as Compressable ASCII by Martin Isenburg and Jack Snoeyink is documented in award-winning papers presented at the Web3D 2002 and 2003 Symposia. A Shout3D implementation demonstration is also available.

Further work on the X3D Compressed Binary Encoding (CBE) can be found at X3D Binary Compression Capabilities and Plans wiki page.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryExternal Authoring Interface

Virtual Reality Modeling Language (VRML97)

VRML97 External Authoring Interface (EAI) was used to pass events from HTML scripts into VRML97 scene scripts.

These scripting examples illustrate how to use the original External Authoring Interface (EAI) in the VRML97 specification. It allows scripts placed in an external HTML page to communicate with a VRML97 scene, using either Java or ECMAScript .

These HTML scripting techniques were later unified with Script syntax inside the scene as the X3D Scene Authoring Interface (SAI).

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryFollowers
Follower algorithm

The X3D Followers component supports specialized linear interpolation for various data types to achieve smooth behavior animation.

These examples illustrate how to use Chaser and Damper nodes, which are defined in the Followers component of the X3D specification. Transitions are computed at run time to produce events that smoothly change from an initial value to a goal value.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryGeospatial
Trips Around World by Martin Reddy

The X3D Geospatial component provides support for geographic and geospatial applications that includes the ability to utilize double-precision geospatial coordinates and to handle large multi-resolution terrain databases.

These examples illustrate capabilities provided by the X3D Abstract Specification Geospatial Component. Significant additional work is being pursued by the X3D Earth Working Group Executive Summary and is documented on the X3D Earth Working Group Wiki.

The supporting Geospatial Component - X3D Earth chapter slideset is available online via X3dGraphics.com.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryLattice Xvl
Lattice technology

LatticeXvl was an experimental parametric geometry approach that was not adopted into the X3D standard. These nodes nevertheless demonstrate extensibility techniques for integrating new capabilities using X3D DOCTYPE (DTD). The Xvl nodes are merely experimental: not approved by the X3D Abstract Specification, not in the X3D XML Schema, and not in the X3D Unified Object Model (X3DUOM).

The LatticeXvl examples do show how Lattice technology from the XVL3D company was integratable as a commercial extension within X3D. This technique is repeatable. The extension approach to XML DTD validation has been maintained through each version of X3D, and is documented further in the actual X3D DTDs and Schemas.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryMedical
Body Skin IndexedFaceSet (IFS) by NIST

The X3D MedicalInterchange profile is designed for Exchange of polygonal geometry, volumetric data and accompanying documentation between medical imaging systems. Potential implementation includes industry-specific applications that use X3D as an interchange format, but link to proprietary databases and hardware.

These examples support the work of the Web3D Medical (MedX3D) Working Group. Ongoing work is documented on the Medical Working Group Wiki.

Related work appears in the Humanoid Animation examples and the National Institutes of Health (NIH) 3D Print Exchange.

Bones All Skeleton
top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryNetworking
Network Rerouting over Alternate Routes

This directory includes several experiments with X3D Networking.

Long-running efforts have attempted to define and build a new NetworkSensor node for X3D. Although useful design progress was made by the X3D working group, this work did not reach closure because author-written implementations did not appear to be possible using X3D prototypes encapsulating sandbox-restricted JavaScript network access from within an HTML browser. Further implementation and evaluation work might someday be pursued using an X3D browser implementation.

Examples of additional networking techniques for X3D can also be added to this archive. Of related interest: the Distributed Interactive Simulation (DIS) examples in this archive, which include native X3D support for the IEEE Distributed Interactive Simulation (DIS) networking-protocol standard.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryNURBS
Fred the Bunny

Non-Uniform Rational B-Spline (NURBS) provide a parametric mathematical model for generating and representing smooth curves and surfaces.

Non-Uniform Rational B-Spline (NURBS) provide a convenient and efficient manner to generate curved lines and surfaces which can be smooth at any viewing distance. Since these surfaces are generated parametrically, only a small amount of data need be provided for describing complex surfaces. These examples support the X3D NURBS component.

These capabilities hold significant potential value for use by the Computer Aided Design (CAD) and Medical working groups.
top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryPoints

This directory includes experiments with extensions for X3D Points.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryRigid Body Physics
Xj3D rigid-body car example

Rigid Body Physics modeling deals with objects as solid, unchangeable sets of mass having a velocity that can be connected together via various joint types that allow one body's motion to affect another.

These examples support the X3D Rigid Body Physics component for simple kinematics, first implemented by Xj3D.

Warning: the Rigid Body Physics component in not widely supported and these examples are insufficiently tested. Further work is welcome.

Of related interest: Distributed Interactive Simulation (DIS) examples.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryScript Conformance
Script Event Passing

Script Conformance examples test the ability of Script nodes to receive, process and produce events that respond to user commands and trigger animation behaviors in the X3D scene graph..

The Script Conformance examples provide examples for the X3D Scripting Component, as implemented using the X3D language binding for ECMAScript. and the X3D language binding for Java.

Original examples are derived from "The Virtual Reality Modeling Language and Java," Communications of the ACM, vol. 41 no. 6, June 1998, pp. 57-64 by Don Brutzman.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummarySecurity
Padlock closed

Security is an essential part of Web activity - this directory documents how to apply World Wide Web Consortium (W3C) security standards for XML Encryption (privacy) and XML Digital Signature (authentication) to X3D scenes.

The X3D Security Examples show how to use the World Wide Web Consortium (W3C) Security Recommendations for XML Signature and XML Encryption with X3D.

Padlock open
X3D Resources: Security provides an additional set of security issues and resources. Additional security examples are being prepared as part of the X3D for Advanced Modeling project.
top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryShaders

Shaders are special programs that interact directly with graphics hardware for special effects using light, darkness, and color within a model's appearance.

A programmable shader allows authors to directly specify how an object is rendered by providing a method of programmatically modifying sections of the rendering pipeline. This allows replacement of the traditional fixed-function graphics API pipeline to support visual effects that typically cannot be implemented using other node components in this standard.

These example scenes illustrate the X3D Programmable Shaders Component. Unfortunately, unlike X3D, shader languages are typically hardware-specific and not interoperable across different platforms. Mutually compatible X3D interfaces and syntax are defined for the OpenGL shading language (GLSL) binding, Microsoft high level shading language (HLSL) binding and the nVidia Cg shading language binding.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryStudent Projects
Pinball Table Model

Student Projects are interesting and fun!

These are interesting scenes authored by X3D students who have taken the X3D for Web Authors Further contributions are welcome. Be sure to follow the X3D Scene Authoring Hints for reasonably consistent descriptions, metadata, layout and naming conventions within each model scene.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryUnits

Yardsticks

Unit statements can redefine the base units of length/angle/force/mass values in an X3D scene from meters/radians/newtons/kilograms to other units of interest.

These examples demonstrate use of the X3D Units statements proposed for X3D version 3.3. Unit statements define conversion factors from default units in order to simplify the creation of content using minimal data translation. The original proposal provides further detail.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryUniversal Media Materials
Universal Media

Universal Media Materials provide numerous complex Material values to simply scene authoring and improve geometry appearance.

These Universal Media examples provide a large suite of color-coordinated X3D/VRML Materials for easy usage by authors. Visual scenes are provided for browsing and selection from each collection. Entries can be copied directly or used via (internal or external) prototype declarations.

This library of materials is originally converted from SGI's Open Inventor material examples. Material library selections are also built into the X3D-Edit authoring tool. Example use is further explained in the X3D for Web Authors slideset Chapter 5 - Appearance Material Textures.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryUniversal Media Panoramas
Universal Media

Universal Media Panoramas are texture-mapped high-resolution Background nodes.

These Universal Media examples provide a large suite of X3D/VRML Background nodes with customized images for easy author use. Visual scenes are provided for browsing and selection from each collection. Background nodes can be copied directly with multiple url site addresses included for each image texture in order to improve reliability.

Example use is further explained in the X3D for Web Authors slideset Chapter 11 - Lighting and Environment.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryVolume Rendering
Basic Brain, Shaded: X3D Specification Volume Visualization example

The X3D Volume Rendering component represents a 3D portion of space with a renderable grid of voxel values for advanced visualization and presentation techniques.

The Volume Rendering examples illustrate concepts and capabilities defined by the X3D version 3.3 ISO specification for X3D Volume Rendering Component, produced by the Web3D Medical Working Group.

Volume data is typically encoded in the NRRD (Nearly Raw Raster Data) format. Further information is found in this archive's README file. See build.xml for datasets.zip download support.

NRRD (Nearly Raw Raster Data)
top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryVRML 97 Specification

Virtual Reality Modeling Language (VRML97)

The VRML97 Specification was the second-generation predecessor specification that eventually led to the X3D Graphics International Standard, maintaining full compatibility with the X3D ClassicVRML Encoding.

Many 3D graphics systems support the Virtual Reality Modeling Language (VRML97). These scenes support the Examples section of the VRML97 specification.

The baseline source kept under version control is in .x3d form, and the autogenerated products include versions using the VRML97 .wrl file extension. These examples are maintained for historic reasons and interoperability testing. Backwards compatibility of scenes remains a significant strength of the X3D specification, which includes a fully interoperable ClassicVRML file encoding as well as numerous conversion and translation tools.

Historic predecessor document references include the VRML Script Node Authoring Interface proposal of 6 October 1996, and the Virtual Reality Modeling Language (VRML) 1.0 Specification of 26 May 1995.

top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory SummaryWeb 3D Outreach
Web3D Consortium Logo

This directory collects models and scenes for outreach by the Web3D Consortium, the Standards Development Organization (SDO) that supports real-time graphics communication on the Web.

The Web3D Consortium is a nonprofit organization that develops and maintains the X3D, VRML, and H-Anim standards. These are 3D file formats and runtime specifications for the delivery and integration of interactive 3D data over networks.

Extensible 3D (X3D) Graphics (X3D) is the open, royalty-free, ISO-standard data language and run-time architecture for 3D graphics. It provides for real-time, interactive, animatable 3D objects displayed in a browser or other network connected or stand-alone display. The simple examples in this directory support the creation of outreach and marketing models for the Web3D Consortium and X3D Graphics. X3D Specification Logo
top

Directory Viewpoint Slideshow

Javadoc for translated java source

 Directory Summary X3D Specifications
X3D Specification Logo

These examples are used in the X3D Specifications to illustrate correct X3D usage and capabilities.

The X3D Abstract Specification authoritatively defines the functionality of X3D scenes. It specifically describes how geometry rendering and user interaction can be accomplished on any 3D device. Multiple file encodings (.x3d, .x3dv, .x3db) and multiple language bindings (ECMAScript .js, Java .java) can equivalently represent an X3D scene. These examples support five different X3D specifications:

top

Directory Viewpoint Slideshow

Javadoc for translated java source

Archive InformationtopOnline at
https://www.web3d.org/x3d/content/examples/Basic

Master source-code model archive is under subversion control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic

The X3D Resources: Examples page and Savage Developers Guide provide more information about the production of this archive.

Point of contact:
Don Brutzman (brutzman at nps.edu)
README.txt
Open-Source License
Validate XHTML 1.1 Content Catalog XML
Autogenerated 2024-02-14-08:00