Difference between revisions of "TC184 Visualization Requirements for X3D CAD"

From Web3D.org
Jump to: navigation, search
(VRML97 elsewhere is spelled jointly)
(missing Image:DisEspduTestPanelDemo.pngexists but without "small")
Line 13: Line 13:
 
* Format assessments are conducted by the Technical Experts that make up the 3D Visualization ad hoc committee
 
* Format assessments are conducted by the Technical Experts that make up the 3D Visualization ad hoc committee
 
* Each technical expert will be required to read the specification for the format being reviewed and assess its ability to support the 36 3D Visualization requirements
 
* Each technical expert will be required to read the specification for the format being reviewed and assess its ability to support the 36 3D Visualization requirements
* The technical expert will assign a value to each of the requirements a value of 0 – 5 will be assigned on each requirement. The value will define the level of support the technical expert found for the requirement while reviewing the format specification.
+
* The technical expert will assign a value to each of the requirements a value of 0 – 5 will be assigned on each requirement. The value will define the level of support the technical expert found for the requirement while reviewing the format specification.
  
 
Formats under consideration for adoption as a 3D Visualization standard must either be already accepted by ISO or evaluated through the ISO Harvesting process.
 
Formats under consideration for adoption as a 3D Visualization standard must either be already accepted by ISO or evaluated through the ISO Harvesting process.
 
* X3D is already eligible as an approved set of ISO standards.
 
* X3D is already eligible as an approved set of ISO standards.
* The X3D family of specifications are already approved by ISO. The Web3D Consortium is a Category C liaison to the ISO/IEC JTC1 SC24, and SC24 WG6 is the responsible working group.
+
* The X3D family of specifications are already approved by ISO. The Web3D Consortium is a Category C liaison to the ISO/IEC JTC1 SC24, and SC24 WG6 is the responsible working group.
 
* The [http://web3d.org/x3d/workgroups/cad X3D CAD Working Group] is responding to this survey of requirements support to determine suitability of X3D Graphics Specification for CAD interoperability.
 
* The [http://web3d.org/x3d/workgroups/cad X3D CAD Working Group] is responding to this survey of requirements support to determine suitability of X3D Graphics Specification for CAD interoperability.
  
Line 30: Line 30:
 
** 36 Layout component
 
** 36 Layout component
  
* (Draft) X3D CAD Component Revision: Parametric Surfaces and Boundary Representations (BREPS)
+
* (Draft) X3D CAD Component Revision: Parametric Surfaces and Boundary Representations (BREPS)
  
 
* ISO/IEC FCD 19776-1:200x — X3D XML encoding — Edition 2
 
* ISO/IEC FCD 19776-1:200x — X3D XML encoding — Edition 2
Line 65: Line 65:
 
= Summary of Scores =
 
= Summary of Scores =
  
The following table presents the self-assessment scores of the [http://www.web3D.org/workgroups/cad X3D CAD Working Group] of the [http://www.web3D.org Web3D Consortium].
+
The following table presents the self-assessment scores of the [http://www.web3D.org/workgroups/cad X3D CAD Working Group] of the [http://www.web3D.org Web3D Consortium].  
  
 
Interestingly, if current working-group effort to add B-REP capabilities to the X3D CAD Component is considered, few technical showstoppers remain that might limit X3D applications from implementing full support of TC184 Visualization Requirements.
 
Interestingly, if current working-group effort to add B-REP capabilities to the X3D CAD Component is considered, few technical showstoppers remain that might limit X3D applications from implementing full support of TC184 Visualization Requirements.
Line 275: Line 275:
 
== Requirement 1: STEP Consistency ==
 
== Requirement 1: STEP Consistency ==
  
* '''Formal Requirement.''' The information delivered via the visualization format should be consistent with the complete standardized product representation used for exchange and archiving purposes - the ISO STEP standard.
+
* '''Formal Requirement.''' The information delivered via the visualization format should be consistent with the complete standardized product representation used for exchange and archiving purposes - the ISO STEP standard.
  
* '''Survey Description.''' (same)
+
* '''Survey Description.''' (same)
  
 
----
 
----
Line 283: Line 283:
 
* '''X3D response.'''
 
* '''X3D response.'''
  
No formal assessment has been performed correlating ISO X3D constructs to the ISO STEP standard. Such an activity has significant potential value.
+
No formal assessment has been performed correlating ISO X3D constructs to the ISO STEP standard. Such an activity has significant potential value.
  
X3D is the third-generation successor to the ISO-standard Virtual Reality Modeling Language (VRML97). As such it is designed as an interchange scene graph compatible with a wide variety of 3D file formats and application programming interfaces (APIs). Over 12 years of adoption and continuing deployment demonstrate that X3D serves well for visualization interchange and interoperability. Given these broad proven successes, the X3D working group is confident that X3D is likely to map satisfactorily to STEP visualization requirements.
+
X3D is the third-generation successor to the ISO-standard Virtual Reality Modeling Language (VRML97). As such it is designed as an interchange scene graph compatible with a wide variety of 3D file formats and application programming interfaces (APIs). Over 12 years of adoption and continuing deployment demonstrate that X3D serves well for visualization interchange and interoperability. Given these broad proven successes, the X3D working group is confident that X3D is likely to map satisfactorily to STEP visualization requirements.
  
 
== Requirement 2: STEP Mapping ==
 
== Requirement 2: STEP Mapping ==
  
* '''Formal Requirement.''' A published mapping specification as agreed to by SC4 is required from STEP to the visualization format
+
* '''Formal Requirement.''' A published mapping specification as agreed to by SC4 is required from STEP to the visualization format
  
* '''Survey Description.''' (same as preceding requirement)
+
* '''Survey Description.''' (same as preceding requirement)
  
* '''X3D response.''' Such a correspondence has not been created, but it is feasible and valuable to produce. Nothing prevents such an effort. Likely the biggest contribution might be mechanisms for embedding STEP metadata within X3D model components for tool usage. The [http://www.web3D.org Web3D Consortium] is interested in pursuing such a possibility.
+
* '''X3D response.''' Such a correspondence has not been created, but it is feasible and valuable to produce. Nothing prevents such an effort. Likely the biggest contribution might be mechanisms for embedding STEP metadata within X3D model components for tool usage. The [http://www.web3D.org Web3D Consortium] is interested in pursuing such a possibility.
  
 
Commercial translators already allow automatic conversion from STEP (AP203 & AP214) to X3D. For instance, [http://www.okino.com OKINO Polytrans] supports the following STEP->X3D export functionality:
 
Commercial translators already allow automatic conversion from STEP (AP203 & AP214) to X3D. For instance, [http://www.okino.com OKINO Polytrans] supports the following STEP->X3D export functionality:
Line 311: Line 311:
 
** Control over the conversion of Spline Shape primitives to NURBS or linear curves in the output file, or else conversion to meshes or NURBS surfaces if the curve(s) are closed.
 
** Control over the conversion of Spline Shape primitives to NURBS or linear curves in the output file, or else conversion to meshes or NURBS surfaces if the curve(s) are closed.
  
Example reference links for Polytrans:
+
Example reference links for Polytrans:  
 
[http://www.okino.com/conv/exp_vrml.htm STEP -> X3D],  
 
[http://www.okino.com/conv/exp_vrml.htm STEP -> X3D],  
 
[http://www.okino.com/conv/imp_vrml.htm X3D -> STEP],  
 
[http://www.okino.com/conv/imp_vrml.htm X3D -> STEP],  
Line 317: Line 317:
 
[http://www.okino.com/conv/exp_vrm6.gif NURBS settings panel]
 
[http://www.okino.com/conv/exp_vrm6.gif NURBS settings panel]
  
== Requirement 3: STEP & Product Life Cycle ==
+
== Requirement 3: STEP & Product Life Cycle ==
  
* '''Formal Requirement.''' The 3D visualization format may be used across the whole extended enterprise, throughout the supply chain, without restriction to a particular functional area
+
* '''Formal Requirement.''' The 3D visualization format may be used across the whole extended enterprise, throughout the supply chain, without restriction to a particular functional area
  
* '''Survey Description.''' (same as preceding requirement)
+
* '''Survey Description.''' (same as preceding requirement)
  
 
----
 
----
  
 
* '''X3D response.'''
 
* '''X3D response.'''
X3D is a widely used visualization standard for model interchange which includes file-format encodings for the Extensible Markup Language (XML), ClassicVRML and compressed binary. It is well suited for visualizing models across the extended enterprise. XML representations permit integration of metadata, animation behaviors and intelligent queries within the model, thus making models adaptable to requirements in different groups within an enterprise.
+
X3D is a widely used visualization standard for model interchange which includes file-format encodings for the Extensible Markup Language (XML), ClassicVRML and compressed binary. It is well suited for visualizing models across the extended enterprise. XML representations permit integration of metadata, animation behaviors and intelligent queries within the model, thus making models adaptable to requirements in different groups within an enterprise.
  
 
Because of this broad applicability, X3D is used for a variety of purposes relevant to CAD visualization.  
 
Because of this broad applicability, X3D is used for a variety of purposes relevant to CAD visualization.  
 
** Showcase purposes: ability to build integrated X3D applications with customized user-interface functionality and behavior animation embedded in the scene.
 
** Showcase purposes: ability to build integrated X3D applications with customized user-interface functionality and behavior animation embedded in the scene.
** Industrial design: rich geometry representations, CAD Component, usefulness as an interchange format.
+
** Industrial design: rich geometry representations, CAD Component, usefulness as an interchange format.
 
** Public relations, thanks to: Most of the browser implementations can be embedded in a webpage, allowing lightweight 3D enhanced websites.
 
** Public relations, thanks to: Most of the browser implementations can be embedded in a webpage, allowing lightweight 3D enhanced websites.
  
Line 351: Line 351:
 
all aspects of [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/ X3D ISO/IEC 19775].
 
all aspects of [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/ X3D ISO/IEC 19775].
  
== Requirement 4: View Geometry, Attributes, Viewing Attributes, Management and other information ==
+
== Requirement 4: View Geometry, Attributes, Viewing Attributes, Management and other information ==
  
* '''Formal Requirement.''' Display 3-D representation of parts and assemblies independent of any CAx or PDM system. Any data within the scope of ISO 10303-1231 and 10303-1230 may have a viewable representation of Geometry, Attributes, Viewing parameters, and Management and other information.
+
* '''Formal Requirement.''' Display 3-D representation of parts and assemblies independent of any CAx or PDM system. Any data within the scope of ISO 10303-1231 and 10303-1230 may have a viewable representation of Geometry, Attributes, Viewing parameters, and Management and other information.
  
* '''Survey Description.''' Format is able to store the data which is the 3-D representation of parts and assemblies independent of any CAx or PDM system. Any data within the scope of ISO 10303-1231 and 10303-1230 may have a viewable representation of Geometry, Attributes, Viewing parameters, and Management and other information.
+
* '''Survey Description.''' Format is able to store the data which is the 3-D representation of parts and assemblies independent of any CAx or PDM system. Any data within the scope of ISO 10303-1231 and 10303-1230 may have a viewable representation of Geometry, Attributes, Viewing parameters, and Management and other information.
  
 
----
 
----
  
* '''X3D response.'''
+
* '''X3D response.'''  
 
ISO/TS 10303-1230:2005 specifies the application module for Configuration controlled 3D parts and assemblies.
 
ISO/TS 10303-1230:2005 specifies the application module for Configuration controlled 3D parts and assemblies.
It contains the following sections. X3D provides excellent support for each of these capabilities.
+
It contains the following sections. X3D provides excellent support for each of these capabilities.
 
** '''Products that are three-dimensional parts and assemblies''' can be modeled using regular X3D shapes and geometry, further structured using grouping nodes provided in [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/index.html 32 CAD geometry component]
 
** '''Products that are three-dimensional parts and assemblies''' can be modeled using regular X3D shapes and geometry, further structured using grouping nodes provided in [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/index.html 32 CAD geometry component]
 
** '''Configuration control data and product definition data''' tends to be application specific, but can be stored within the relevant portions of a model using [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/core.html#Metadata 7.2.4 Metadata] component
 
** '''Configuration control data and product definition data''' tends to be application specific, but can be stored within the relevant portions of a model using [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/core.html#Metadata 7.2.4 Metadata] component
 
** '''Shape representations that includes advanced boundary representation, faceted boundary representation, manifold manifold surfaces with topology, geometrically bounded surface and wireframe geometry, wireframe with topology, and constructive solid geometry in three-dimensions.''' can use numerous X3D capabilities, including [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/geometry3D.html 13 Geometry3D component], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/geometry2D.html 14 Geometry2D component], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/nurbs.html 27 NURBS component], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/CADGeometry.html 32 CAD Geometry Component]
 
** '''Shape representations that includes advanced boundary representation, faceted boundary representation, manifold manifold surfaces with topology, geometrically bounded surface and wireframe geometry, wireframe with topology, and constructive solid geometry in three-dimensions.''' can use numerous X3D capabilities, including [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/geometry3D.html 13 Geometry3D component], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/geometry2D.html 14 Geometry2D component], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/nurbs.html 27 NURBS component], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/CADGeometry.html 32 CAD Geometry Component]
** '''Geometric presentation of geometric shape representations by the application of colours, layers and groups''' is possible via a broad range of grouping, appearance, material and texture components: [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/group.html 10 Grouping component], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/index.html 11 Rendering component], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/texturing.html 18 Texturing component], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/index.html 35 Layering component]
+
** '''Geometric presentation of geometric shape representations by the application of colours, layers and groups''' is possible via a broad range of grouping, appearance, material and texture components: [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/group.html 10 Grouping component], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/index.html 11 Rendering component], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/texturing.html 18 Texturing component], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/index.html 35 Layering component]
** '''Geometric and dimensional tolerances applied to geometric shape representations.\''' are possible. The X3D Specification is designed for more general use, but nothing prevents applications from building GD&T extensions. Furthermore, such capabilities can be portably embedded within models by using the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/index.html 29 Scripting component] and [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/concepts.html#PrototypeSemantics 4.4.4 Prototype semantics]
+
** '''Geometric and dimensional tolerances applied to geometric shape representations.\''' are possible. The X3D Specification is designed for more general use, but nothing prevents applications from building GD&T extensions. Furthermore, such capabilities can be portably embedded within models by using the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/index.html 29 Scripting component] and [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/concepts.html#PrototypeSemantics 4.4.4 Prototype semantics]
** '''Textual annotation and notes applied to geometric shape representations''' can be applied using the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/index.html 15 Text component]
+
** '''Textual annotation and notes applied to geometric shape representations''' can be applied using the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/index.html 15 Text component]
  
 
Relevant X3D components include:
 
Relevant X3D components include:
Line 384: Line 384:
 
== Requirement 5: Display selection & editing ==
 
== Requirement 5: Display selection & editing ==
  
* '''Formal Requirement.''' Any graphically selected element should be highlighted. All selected part or assembly from the assembly tree should be highlighted. The user should have the ability to, temporarily, turn on and off the display of selected elements (point, line, surface, solid annotation, mark-up, etc.) The user should have the ability to, temporarily, change the visual attributes of part(s) (e.g., turn parts on and off, change colour, make transparent) by selecting them from the assembly tree. The user should have the ability to select and display parts and assemblies sorted out by layers, colours, materials, dates, and other numerical or textual attributes.
+
* '''Formal Requirement.''' Any graphically selected element should be highlighted. All selected part or assembly from the assembly tree should be highlighted. The user should have the ability to, temporarily, turn on and off the display of selected elements (point, line, surface, solid annotation, mark-up, etc.) The user should have the ability to, temporarily, change the visual attributes of part(s) (e.g., turn parts on and off, change colour, make transparent) by selecting them from the assembly tree. The user should have the ability to select and display parts and assemblies sorted out by layers, colours, materials, dates, and other numerical or textual attributes.
  
* '''Survey Description.''' The Format supports storage of data or constructs which enable the following activities in an implementing system
+
* '''Survey Description.''' The Format supports storage of data or constructs which enable the following activities in an implementing system
  
 
  - Any graphically selected element should able to be highlighted.
 
  - Any graphically selected element should able to be highlighted.
Line 404: Line 404:
 
Viewer applications usually move a 2D cursor icon in front of the rendering 3D scene to show current screen position of the pointing device.
 
Viewer applications usually move a 2D cursor icon in front of the rendering 3D scene to show current screen position of the pointing device.
 
Selected elements raise events, which in turn can raise and generate subsequent events, leading to precisely animated scene-graph modifications.
 
Selected elements raise events, which in turn can raise and generate subsequent events, leading to precisely animated scene-graph modifications.
** Object selection is handled by [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/pointingsensor.html Pointing device sensor component]
+
** Object selection is handled by [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/pointingsensor.html Pointing device sensor component]
** Rendering property alteration capabilities include any desired modification of appearance, single-sided or two-sided material values, transparency, texture images
+
** Rendering property alteration capabilities include any desired modification of appearance, single-sided or two-sided material values, transparency, texture images
** Line properties and fill properties are especially helpful for indicating selection.
+
** Line properties and fill properties are especially helpful for indicating selection.
  
 
Relevant X3D components include
 
Relevant X3D components include
Line 416: Line 416:
 
== Requirement 6: Print/Plot ==
 
== Requirement 6: Print/Plot ==
  
* '''Formal Requirement.''' Print and/or plot the information displayed on the screen. Users should be able to specify a scale to plot the image relative to native model boundaries, i.e., displayed images should be plotted at full scale, ½ scale, etc.
+
* '''Formal Requirement.''' Print and/or plot the information displayed on the screen. Users should be able to specify a scale to plot the image relative to native model boundaries, i.e., displayed images should be plotted at full scale, ½ scale, etc.
  
* '''Survey Description.''' There are no restrictions in the format specification which prohibit the ability to print and/or plot the information displayed on the screen. No restrictions on the ability to scale and plot the data which represents the image relative to native model boundaries, i.e., displayed images could be plotted at full scale, ½ scale, etc. by an implementing system.
+
* '''Survey Description.''' There are no restrictions in the format specification which prohibit the ability to print and/or plot the information displayed on the screen. No restrictions on the ability to scale and plot the data which represents the image relative to native model boundaries, i.e., displayed images could be plotted at full scale, ½ scale, etc. by an implementing system.
  
 
----
 
----
Line 424: Line 424:
 
* '''X3D response.'''
 
* '''X3D response.'''
  
Applications implementing X3D often offer support for plotting 2D images at different scales and perspectives. Similarly, 3D printing is also feasible using various scales and output devices. No restrictions are included in the file format, leaving applications free to perform these functions as appropriate.
+
Applications implementing X3D often offer support for plotting 2D images at different scales and perspectives. Similarly, 3D printing is also feasible using various scales and output devices. No restrictions are included in the file format, leaving applications free to perform these functions as appropriate.
  
 
[[Image:Shape_small.jpg]]
 
[[Image:Shape_small.jpg]]
Line 437: Line 437:
 
== Requirement 7: Zoom/Pan ==
 
== Requirement 7: Zoom/Pan ==
  
* '''Formal Requirement.''' Zoom/Pan into a local area of a 3D image without losing visual accuracy.
+
* '''Formal Requirement.''' Zoom/Pan into a local area of a 3D image without losing visual accuracy.
  
* '''Survey Description.''' Data format does not restrict an implementing system from providing Zoom/Pan into a local area of a 3D image without losing visual accuracy.
+
* '''Survey Description.''' Data format does not restrict an implementing system from providing Zoom/Pan into a local area of a 3D image without losing visual accuracy.
  
 
----
 
----
Line 466: Line 466:
 
== Requirement 8: Camera Rotation ==
 
== Requirement 8: Camera Rotation ==
  
* '''Formal Requirement.''' Rotate the camera viewing perspective about a point either by an arbitrary or a specific axis. Rotation can occur either as a function of mouse/key input or by keying in exact angles. This is necessary in order to orient the parts relative to critical views for detailed analysis.
+
* '''Formal Requirement.''' Rotate the camera viewing perspective about a point either by an arbitrary or a specific axis. Rotation can occur either as a function of mouse/key input or by keying in exact angles. This is necessary in order to orient the parts relative to critical views for detailed analysis.
  
* '''Survey Description.''' Format provides content definition which enables implementing systems to rotate the camera viewing perspective about a point either by an arbitrary or a specific axis.
+
* '''Survey Description.''' Format provides content definition which enables implementing systems to rotate the camera viewing perspective about a point either by an arbitrary or a specific axis.
  
 
----
 
----
Line 474: Line 474:
 
* '''X3D response.'''
 
* '''X3D response.'''
  
Camera position and orientation can be precisely controlled for detailed model analysis. User-driven rotations occur by default as a function of pointer or arrow-key input. Alternatively applications or scenes may control rotation by allowing users to enter an exact angle. Precomputed view paths can be controlled using animation interpolators or follower nodes.
+
Camera position and orientation can be precisely controlled for detailed model analysis. User-driven rotations occur by default as a function of pointer or arrow-key input. Alternatively applications or scenes may control rotation by allowing users to enter an exact angle. Precomputed view paths can be controlled using animation interpolators or follower nodes.
  
In X3D, camera functionality is primarily represented by the Viewpoint node. Viewpoint defines a specific location in the local coordinate system from which the user may view the scene. All subsequent changes to the viewpoint node's coordinate system change the user's view. Each Viewpoint includes a text description to assist user navigation and identify locations. The centerOfRotation field supports precise examination of objects. The Home key restores the original Viewpoint parameters by resetting local-user navigation steps. Applications can optionally provide an undo/redo history of user navigation steps.
+
In X3D, camera functionality is primarily represented by the Viewpoint node. Viewpoint defines a specific location in the local coordinate system from which the user may view the scene. All subsequent changes to the viewpoint node's coordinate system change the user's view. Each Viewpoint includes a text description to assist user navigation and identify locations. The centerOfRotation field supports precise examination of objects. The Home key restores the original Viewpoint parameters by resetting local-user navigation steps. Applications can optionally provide an undo/redo history of user navigation steps.
  
An author can automatically move the user's view through the world by binding the user to a Viewpoint node and then animating either the Viewpoint node or the transformations above it. Such guided tours can be triggered by timers as well as user selection, proximity or visibility.
+
An author can automatically move the user's view through the world by binding the user to a Viewpoint node and then animating either the Viewpoint node or the transformations above it. Such guided tours can be triggered by timers as well as user selection, proximity or visibility.
  
 
Here is the specification of the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/navigation.html 23.4.6 Viewpoint] node:
 
Here is the specification of the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/navigation.html 23.4.6 Viewpoint] node:
 
  Viewpoint: X3DViewpointNode {  
 
  Viewpoint: X3DViewpointNode {  
  SFBool     [in]     set_bind
+
SFBool [in] set_bind
  SFVec3f   [in,out] centerOfRotation 0 0 0   (-∞,∞)
+
SFVec3f [in,out] centerOfRotation 0 0 0 (-∞,∞)
  SFString   [in,out] description       ""
+
SFString [in,out] description ""
  SFFloat   [in,out] fieldOfView       π/4     (0,π)
+
SFFloat [in,out] fieldOfView π/4 (0,π)
  SFBool     [in,out] jump             TRUE
+
SFBool [in,out] jump TRUE
  SFNode     [in,out] metadata         NULL   [X3DMetadataObject]
+
SFNode [in,out] metadata NULL [X3DMetadataObject]
  <b>SFRotation [in,out] orientation       0 0 1 0 [-1,1],(-&infin;,&infin;)</b>
+
<b>SFRotation [in,out] orientation 0 0 1 0 [-1,1],(-&infin;,&infin;)</b>
  <b>SFVec3f   [in,out] position         0 0 10 (-&infin;,&infin;)</b>
+
<b>SFVec3f [in,out] position 0 0 10 (-&infin;,&infin;)</b>
  SFBool     [in,out] retainUserOffsets FALSE
+
SFBool [in,out] retainUserOffsets FALSE
  SFTime     [out]   bindTime
+
SFTime [out] bindTime
  SFBool     [out]   isBound
+
SFBool [out] isBound
 
  }
 
  }
  
 
The NavigationInfo mode supplements Viewpoint information by specifying navigation type, transitionType between Viewpoints (LINEAR ANIMATE TELEPORT), transitionTime, user navigation speed (meters/sec), fieldOfView angle, view frustum parameters for near/far clipping plane, plus user avatar parameters for terrain following and object-collision standoff.
 
The NavigationInfo mode supplements Viewpoint information by specifying navigation type, transitionType between Viewpoints (LINEAR ANIMATE TELEPORT), transitionTime, user navigation speed (meters/sec), fieldOfView angle, view frustum parameters for near/far clipping plane, plus user avatar parameters for terrain following and object-collision standoff.
  
Note that the operation of all X3D nodes is defined in a device-independent manner. Authors can create scenes that work well on hand-held devices, desktop displays, headsets and immersive CAVE displays.
+
Note that the operation of all X3D nodes is defined in a device-independent manner. Authors can create scenes that work well on hand-held devices, desktop displays, headsets and immersive CAVE displays.
  
 
Relevant X3D components include  
 
Relevant X3D components include  
Line 506: Line 506:
 
== Requirement 9: Bill of Material (BOM) ==
 
== Requirement 9: Bill of Material (BOM) ==
  
* '''Formal Requirement.''' A selectable representation of the product structure (assembly Bill of Materials) should be displayed.
+
* '''Formal Requirement.''' A selectable representation of the product structure (assembly Bill of Materials) should be displayed.
 
The product structure should be evident and individual parts and assemblies should be able to be displayed/highlighted by selecting from the product structure.
 
The product structure should be evident and individual parts and assemblies should be able to be displayed/highlighted by selecting from the product structure.
 
The product structure representation shall be associated to the geometry representation, i.e. there is a bi-directional link between a part reference in the product tree and the corresponding part geometry.
 
The product structure representation shall be associated to the geometry representation, i.e. there is a bi-directional link between a part reference in the product tree and the corresponding part geometry.
  
* '''Survey Description.''' The format provides data constructs such that an implementing system can define a selectable representation of the product structure (assembly Bill of Materials)
+
* '''Survey Description.''' The format provides data constructs such that an implementing system can define a selectable representation of the product structure (assembly Bill of Materials)
 
The product structure should be evident and individual parts and assemblies should be able to be displayed/highlighted by selecting from the product structure.
 
The product structure should be evident and individual parts and assemblies should be able to be displayed/highlighted by selecting from the product structure.
 
The ability to support a bi-directional link between a part reference in an implementations product tree and the corresponding part geometry.
 
The ability to support a bi-directional link between a part reference in an implementations product tree and the corresponding part geometry.
Line 517: Line 517:
  
 
* '''X3D response.'''
 
* '''X3D response.'''
Authors and conversion tools can create X3D models directly from BOM listings.
+
Authors and conversion tools can create X3D models directly from BOM listings.  
  
 
The X3D [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/CADGeometry.html 32 CAD Geometry component] defines parts and assemblies:
 
The X3D [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/CADGeometry.html 32 CAD Geometry component] defines parts and assemblies:
Line 540: Line 540:
 
== Requirement 10: Screen Capture ==
 
== Requirement 10: Screen Capture ==
  
* '''Formal Requirement.''' Capture the currently displayed image and save as another file. Users should be able to select from several neutral file types for the saved image.
+
* '''Formal Requirement.''' Capture the currently displayed image and save as another file. Users should be able to select from several neutral file types for the saved image.
  
* '''Survey Description.''' An implementing system will be able to capture a displayed image of the data stored in the format and save it as another file type.
+
* '''Survey Description.''' An implementing system will be able to capture a displayed image of the data stored in the format and save it as another file type.
  
 
----
 
----
Line 548: Line 548:
 
* '''X3D response.'''
 
* '''X3D response.'''
  
Printing or plotting the information displayed on the screen is performed by applications. X3D browsers generally integrate mechanisms to capture the rendered scene either by video recording or single-frame image capture. No internal mechanisms are defined that might prohibit image capture.
+
Printing or plotting the information displayed on the screen is performed by applications. X3D browsers generally integrate mechanisms to capture the rendered scene either by video recording or single-frame image capture. No internal mechanisms are defined that might prohibit image capture.
  
 
http://web3d.org/membership/login/groups/CAD/WikiImages/screenshot.JPG
 
http://web3d.org/membership/login/groups/CAD/WikiImages/screenshot.JPG
Line 555: Line 555:
 
== Requirement 11: Measurement ==
 
== Requirement 11: Measurement ==
  
* '''Formal Requirement.''' Basic measurement capability would include the ability to get arbitrary point-to-point measurements.
+
* '''Formal Requirement.''' Basic measurement capability would include the ability to get arbitrary point-to-point measurements.
 
Additional required functionality would include measurements relative to features such as Vertices (end of line), Lines (edge), Surfaces (face), and Parts.
 
Additional required functionality would include measurements relative to features such as Vertices (end of line), Lines (edge), Surfaces (face), and Parts.
 
Advanced measurement includes distance along a curve or surface. The visualization tool should provide the capability to retrieve as much relevant information as possible, i.e., location, angle, size, area, volume, mass, etc.
 
Advanced measurement includes distance along a curve or surface. The visualization tool should provide the capability to retrieve as much relevant information as possible, i.e., location, angle, size, area, volume, mass, etc.
 
All measurements should be exact to model tolerance. The tool should measure in the unit of the native data.
 
All measurements should be exact to model tolerance. The tool should measure in the unit of the native data.
  
* '''Survey Description.''' Data stored in the format enables implementing systems to provide basic measurement capabilities such as
+
* '''Survey Description.''' Data stored in the format enables implementing systems to provide basic measurement capabilities such as
 
  - arbitrary point-to-point measurements.
 
  - arbitrary point-to-point measurements.
 
  - measurements relative to features such as Vertices (end of line), Lines (edge), Surfaces (face), and Parts.
 
  - measurements relative to features such as Vertices (end of line), Lines (edge), Surfaces (face), and Parts.
Line 572: Line 572:
 
* '''X3D response.'''
 
* '''X3D response.'''
  
X3D applications are capable of performing measurement tasks. X3D scene data is recorded using SI units, namely meters and radians.
+
X3D applications are capable of performing measurement tasks. X3D scene data is recorded using SI units, namely meters and radians.
 
** X3D uses a Cartesian coordinate system in which three coordinate values (x, y, and z), stored as single-precision floating point values are sufficient to uniquely define any point in space.
 
** X3D uses a Cartesian coordinate system in which three coordinate values (x, y, and z), stored as single-precision floating point values are sufficient to uniquely define any point in space.
 
** Coordinate-frame transformation mechanisms are consistent throughout the X3D specification.
 
** Coordinate-frame transformation mechanisms are consistent throughout the X3D specification.
Line 580: Line 580:
 
[[Image:Measurement_small.jpg]]
 
[[Image:Measurement_small.jpg]]
  
Authors can also embed Inline scenes, scripts or prototype widgets within a scene to facilitate end-user measurement via any X3D browser. Example scene follows [https://savage.nps.edu/Savage/Tools/Authoring/GridsExample.x3d GridsExample.x3d], along with a corresponding example user-modified version of the same scene showing embedded measurement capabilities: [http://web3d.org/membership/login/groups/CAD/WikiImages/GridsExampleMeasurement.png GridsExampleMeasurement.png]. Embedded touch sensors enable users to toggle measurement grids on/off, and to drag graphs along their respective centerline axes in order to facilitate visual measurement of irregular dimensions. Coordinate values for each grid are updated via Script node calculations in EcmaScript, all in response to end-user manipulations of the X3D scene in an ordinary X3D browser.
+
Authors can also embed Inline scenes, scripts or prototype widgets within a scene to facilitate end-user measurement via any X3D browser. Example scene follows [https://savage.nps.edu/Savage/Tools/Authoring/GridsExample.x3d GridsExample.x3d], along with a corresponding example user-modified version of the same scene showing embedded measurement capabilities: [http://web3d.org/membership/login/groups/CAD/WikiImages/GridsExampleMeasurement.png GridsExampleMeasurement.png]. Embedded touch sensors enable users to toggle measurement grids on/off, and to drag graphs along their respective centerline axes in order to facilitate visual measurement of irregular dimensions. Coordinate values for each grid are updated via Script node calculations in EcmaScript, all in response to end-user manipulations of the X3D scene in an ordinary X3D browser.
  
 
http://web3d.org/membership/login/groups/CAD/WikiImages/GridExampleMeasurementInstantReality.png  
 
http://web3d.org/membership/login/groups/CAD/WikiImages/GridExampleMeasurementInstantReality.png  
Line 588: Line 588:
 
== Requirement 12: Sectioning ==
 
== Requirement 12: Sectioning ==
  
* '''Formal Requirement.''' Sectioning capabilities are critical to the ability to conduct upfront design evaluations. Viewers should have the greatest number of options possible for sectioning a part or assembly.
+
* '''Formal Requirement.''' Sectioning capabilities are critical to the ability to conduct upfront design evaluations. Viewers should have the greatest number of options possible for sectioning a part or assembly.
 
Critical functionality includes relative-to-model orientation (body position), radial sections (sections cut perpendicular to a curve relative to view position), true radial section (perpendicular to a curve or surface), and parallel to a surface.
 
Critical functionality includes relative-to-model orientation (body position), radial sections (sections cut perpendicular to a curve relative to view position), true radial section (perpendicular to a curve or surface), and parallel to a surface.
 
Should have the capability to drag the section plane through the part and have the section view update dynamically.
 
Should have the capability to drag the section plane through the part and have the section view update dynamically.
  
* '''Survey Description.''' Format data definition must allow for the following tasks relative to section creation:
+
* '''Survey Description.''' Format data definition must allow for the following tasks relative to section creation:
 
  - relative-to-model orientation (body position)
 
  - relative-to-model orientation (body position)
 
  - radial sections (sections cut perpendicular to a curve relative to view position)
 
  - radial sections (sections cut perpendicular to a curve relative to view position)
Line 615: Line 615:
 
== Requirement 13: Compare ==
 
== Requirement 13: Compare ==
  
* '''Formal Requirement.''' Identify differences between parts or versions of the same part.
+
* '''Formal Requirement.''' Identify differences between parts or versions of the same part.
  
* '''Survey Description.''' Format data allows implementers to identify differences between parts or versions of the same part
+
* '''Survey Description.''' Format data allows implementers to identify differences between parts or versions of the same part
  
 
----
 
----
Line 625: Line 625:
 
Versioning and comparison is possible using X3D mechanisms for metadata and node identification, along with other external mechanisms.
 
Versioning and comparison is possible using X3D mechanisms for metadata and node identification, along with other external mechanisms.
  
** In X3D, document-level metadata is supported by head and meta tags identical to HTML. Document-level versioning metadata typically follows Dublin Core (or other) conventions. Examples: &lt;meta name="created" content="1 January 2003"/&gt; &lt;meta name="modified" content="1 January 2009"/&gt;  
+
** In X3D, document-level metadata is supported by head and meta tags identical to HTML. Document-level versioning metadata typically follows Dublin Core (or other) conventions. Examples: &lt;meta name="created" content="1 January 2003"/&gt; &lt;meta name="modified" content="1 January 2009"/&gt;  
 
** Per-node [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/core.html 7.2.4 Metadata] can be embedded in models so that relevant information is stored as an corresponding part of object geometry. This mechanism potentially allows versioning.
 
** Per-node [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/core.html 7.2.4 Metadata] can be embedded in models so that relevant information is stored as an corresponding part of object geometry. This mechanism potentially allows versioning.
** Version control is also easily accomplished using the XML encoding (or ClassicVRML encoding) via Subversion, CVS, etc. Some X3D tools (such as [https://savage.nps.edu/X3D-Edit/#Features X3D-Edit]) and most XML tools offer such support.
+
** Version control is also easily accomplished using the XML encoding (or ClassicVRML encoding) via Subversion, CVS, etc. Some X3D tools (such as [https://savage.nps.edu/X3D-Edit/#Features X3D-Edit]) and most XML tools offer such support.
 
** X3D models can be inlined and referenced via PHP or other server-side scripting mechanisms, enabling three-tier architectures as well as either database retrieval or data-driven creation of X3D models
 
** X3D models can be inlined and referenced via PHP or other server-side scripting mechanisms, enabling three-tier architectures as well as either database retrieval or data-driven creation of X3D models
  
Line 640: Line 640:
 
== Requirement 14: Markup ==
 
== Requirement 14: Markup ==
  
* '''Formal Requirement.''' Add markups to the 3D images so that they can be saved or printed and distributed to others. Minimum capabilities will include text and basic drawing functions such as circles and lines.
+
* '''Formal Requirement.''' Add markups to the 3D images so that they can be saved or printed and distributed to others. Minimum capabilities will include text and basic drawing functions such as circles and lines.
 
Visualization tools should also give users the option of anchoring markups so that when the models are rotated, the markup maintains its original relationship with the model.
 
Visualization tools should also give users the option of anchoring markups so that when the models are rotated, the markup maintains its original relationship with the model.
 
Advanced functionality would include common symbols used in the engineering environment, i.e., Geometric Dimensioning, Tolerancing and Rubber Stamping.
 
Advanced functionality would include common symbols used in the engineering environment, i.e., Geometric Dimensioning, Tolerancing and Rubber Stamping.
  
* '''Survey Description.''' Format provides for storage of markups to the 3D images so that they can be saved or printed and distributed to others.
+
* '''Survey Description.''' Format provides for storage of markups to the 3D images so that they can be saved or printed and distributed to others.
 
- markups to include text and basic drawing data such as circles and lines.
 
- markups to include text and basic drawing data such as circles and lines.
 
- support for anchored markups so that when the models are rotated, the markup maintains its original relationship with the model.
 
- support for anchored markups so that when the models are rotated, the markup maintains its original relationship with the model.
Line 658: Line 658:
 
** 2D geometry primitives can also be used. See [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/geometry2D.html Geometry2D component]
 
** 2D geometry primitives can also be used. See [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/geometry2D.html Geometry2D component]
 
** Billboards. [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/navigation.html#Billboard 23.4.1 Billboard] keeps child geometry aligned to face the current user viewpoint, making affected objects easier to see. The actual geometry can any valid set of geometry. see [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html 23 Navigation component]
 
** Billboards. [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/navigation.html#Billboard 23.4.1 Billboard] keeps child geometry aligned to face the current user viewpoint, making affected objects easier to see. The actual geometry can any valid set of geometry. see [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html 23 Navigation component]
** Layering. Nodes in the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/layering.html Layering component] enable the creation of overlay planes within an X3D scene display.
+
** Layering. Nodes in the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/layering.html Layering component] enable the creation of overlay planes within an X3D scene display.
** HTML layering. Some HTML browsers permit the use of transparent overlay for embedded objects. The X3D [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/enveffects.html#TextureBackground TextureBackground] node defined in [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/enveffects.html 24 Environmental effects component] includes a transparency field to support X3D scenes placed in front of relevant HTML text or imagery.
+
** HTML layering. Some HTML browsers permit the use of transparent overlay for embedded objects. The X3D [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/enveffects.html#TextureBackground TextureBackground] node defined in [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/enveffects.html 24 Environmental effects component] includes a transparency field to support X3D scenes placed in front of relevant HTML text or imagery.
  
As with several other requirements in this document, embedded or externally referenced metadata values can facilitate such constructs. All internal X3D scene metadata is typed (integer, float, double, string or set). Unlike comments or document metadata, such embedded metadata is persistent and must be retained during run-time so that it remains available to applications. The creation of markup-related prototype nodes to expose and render such data allows authors to make markup capabilities portable within a scene, as a helpful alternative to depending solely on applications to provide such capabilities.
+
As with several other requirements in this document, embedded or externally referenced metadata values can facilitate such constructs. All internal X3D scene metadata is typed (integer, float, double, string or set). Unlike comments or document metadata, such embedded metadata is persistent and must be retained during run-time so that it remains available to applications. The creation of markup-related prototype nodes to expose and render such data allows authors to make markup capabilities portable within a scene, as a helpful alternative to depending solely on applications to provide such capabilities.
  
 
http://web3d.org/membership/login/groups/CAD/WikiImages/markup.JPG
 
http://web3d.org/membership/login/groups/CAD/WikiImages/markup.JPG
Line 669: Line 669:
 
== Requirement 15: Collaboration ==
 
== Requirement 15: Collaboration ==
  
* '''Formal Requirement.''' Present and share the capabilities of the visualization tools in real time with others over a network
+
* '''Formal Requirement.''' Present and share the capabilities of the visualization tools in real time with others over a network
  
* '''Survey Description.''' Format supports the ability present and share the capabilities of the visualization tools in real time with others over a network
+
* '''Survey Description.''' Format supports the ability present and share the capabilities of the visualization tools in real time with others over a network
  
 
----
 
----
Line 687: Line 687:
 
http://web3d.org/membership/login/groups/CAD/WikiImages/shareX3D.JPG
 
http://web3d.org/membership/login/groups/CAD/WikiImages/shareX3D.JPG
  
[[Image:DisEspduTestPanelDemo_small.png]]
+
[[Image:DisEspduTestPanelDemo.png]]
  
 
Relevant X3D components include [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/networking.html 9 Networking], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/dis.html 28 Distributed interactive simulation (DIS)]
 
Relevant X3D components include [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/networking.html 9 Networking], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/dis.html 28 Distributed interactive simulation (DIS)]
Line 693: Line 693:
 
== Requirement 16: Transformation/Manipulation ==
 
== Requirement 16: Transformation/Manipulation ==
  
* '''Formal Requirement.''' Move parts from their original position to a new position. Functionality includes scale, drag, alignment, rotate, and transform relative to fixed axis.
+
* '''Formal Requirement.''' Move parts from their original position to a new position. Functionality includes scale, drag, alignment, rotate, and transform relative to fixed axis.
 
Additional functionality will allow the users to rotate and transform relative to a particular feature. This function is only for visualization and will not change the master assembly definition.
 
Additional functionality will allow the users to rotate and transform relative to a particular feature. This function is only for visualization and will not change the master assembly definition.
  
* '''Survey Description.''' Enable the storage of data that allows implementers to move parts from their original position to a new position.
+
* '''Survey Description.''' Enable the storage of data that allows implementers to move parts from their original position to a new position.
- Includes scale, drag, alignment, rotate, and transform relative to fixed axis. Allow implementers to rotate and transform relative to a particular feature.
+
- Includes scale, drag, alignment, rotate, and transform relative to fixed axis. Allow implementers to rotate and transform relative to a particular feature.
 
- Must be able to perform this function without changing the master assembly definition.
 
- Must be able to perform this function without changing the master assembly definition.
  
Line 704: Line 704:
 
* '''X3D response.'''
 
* '''X3D response.'''
  
In X3D, transformation and manipulation of collections of objects is accomplished by nodes defined in the X3D [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/group.html 10 Grouping] component. The [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/group.html#Transform 10.4.4 Transform] node defines a local coordinate system in the scene graph, translated rotated and scaled (perhaps nonuniformly) relative to its parent coordinate system. The adjusted coordinate system applies to every child of the node.
+
In X3D, transformation and manipulation of collections of objects is accomplished by nodes defined in the X3D [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/group.html 10 Grouping] component. The [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/group.html#Transform 10.4.4 Transform] node defines a local coordinate system in the scene graph, translated rotated and scaled (perhaps nonuniformly) relative to its parent coordinate system. The adjusted coordinate system applies to every child of the node.
  
 
Specifically the Transform node defines a geometric 3D transformation consisting of (in order):
 
Specifically the Transform node defines a geometric 3D transformation consisting of (in order):
Line 711: Line 711:
 
** a translation.
 
** a translation.
  
Transformation details follow. Given a 3-dimensional point P and Transform node, P is transformed into point P' in its parent's coordinate system by a series of intermediate transformations. In matrix transformation notation, where C (center), SR (scaleOrientation), T (translation), R (rotation), and S (scale) are the equivalent transformation matrices.
+
Transformation details follow. Given a 3-dimensional point P and Transform node, P is transformed into point P' in its parent's coordinate system by a series of intermediate transformations. In matrix transformation notation, where C (center), SR (scaleOrientation), T (translation), R (rotation), and S (scale) are the equivalent transformation matrices.
  
  P' = T * C * R * SR * S * -SR * -C * P
+
P' = T * C * R * SR * S * -SR * -C * P
  
 
The following Transform node represents the preceding transformation:  
 
The following Transform node represents the preceding transformation:  
  
 
  Transform {
 
  Transform {
  center           C
+
center C
  rotation         R
+
rotation R
  scale           S
+
scale S
  scaleOrientation SR
+
scaleOrientation SR
  translation     T
+
translation T
  children         [
+
children [
    # Point P (or children holding other geometry)
+
# Point P (or children holding other geometry)
  ]
+
]
 
  }
 
  }
  
This transformation is functionally equivalent to the general capabilities provided by 4x4 transformation matrices. Multiple Transform nodes can be nested to accomplish a composite transformation. Transform fields are directly animatable by type-specific value interpolators or user-defined scripts.
+
This transformation is functionally equivalent to the general capabilities provided by 4x4 transformation matrices. Multiple Transform nodes can be nested to accomplish a composite transformation. Transform fields are directly animatable by type-specific value interpolators or user-defined scripts.
  
 
http://libx3d.sourceforge.net/tree/classX3D_1_1Transform__coll__graph.png
 
http://libx3d.sourceforge.net/tree/classX3D_1_1Transform__coll__graph.png
  
A rich set of user-interaction sensors permit authors to design content-specific manipulation modes for end users. Manipulators include PlaneSensor, CylinderSensor, SphereSensor, KeySensor and StringSensor. Sensors are hardware-device independent (i.e. mouse, laser pointer, wand, arrow keys, etc.) and include descriptive text to guide users. Sensor manipulation response can also distinguish between pointer hovering, pointer selection and pointer dragging.
+
A rich set of user-interaction sensors permit authors to design content-specific manipulation modes for end users. Manipulators include PlaneSensor, CylinderSensor, SphereSensor, KeySensor and StringSensor. Sensors are hardware-device independent (i.e. mouse, laser pointer, wand, arrow keys, etc.) and include descriptive text to guide users. Sensor manipulation response can also distinguish between pointer hovering, pointer selection and pointer dragging.
  
 
As noted elsewhere, X3D interface nodes are defined in a device-independent way that allows authors to build scenes that render and interact well using all manner of interactive display devices.
 
As noted elsewhere, X3D interface nodes are defined in a device-independent way that allows authors to build scenes that render and interact well using all manner of interactive display devices.
Line 744: Line 744:
 
== Requirement 17: Grouping ==
 
== Requirement 17: Grouping ==
  
* '''Formal Requirement.''' Create groups of parts or assemblies that can be acted on as one. This function is only for visualization and will not change the master assembly definition.
+
* '''Formal Requirement.''' Create groups of parts or assemblies that can be acted on as one. This function is only for visualization and will not change the master assembly definition.
  
* '''Survey Description.''' Allow implementers of the format to create groups of parts or assemblies that can be acted on as one. Implementation of this functionality must not change the master assembly definition.
+
* '''Survey Description.''' Allow implementers of the format to create groups of parts or assemblies that can be acted on as one. Implementation of this functionality must not change the master assembly definition.
  
 
----
 
----
Line 752: Line 752:
 
* '''X3D response.'''
 
* '''X3D response.'''
  
This is handled by the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/group.html 10 Grouping component] in X3D, which defines a common parent geometry that need to be grouped. There are several forms of grouping nodes for different situations. Additional CAD-specific grouping nodes are provided in the CAD component: CADAssembly, CADFace, CADLayer, and CADPart (described earlier in this document).
+
This is handled by the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/group.html 10 Grouping component] in X3D, which defines a common parent geometry that need to be grouped. There are several forms of grouping nodes for different situations. Additional CAD-specific grouping nodes are provided in the CAD component: CADAssembly, CADFace, CADLayer, and CADPart (described earlier in this document).
  
 
http://libx3d.sourceforge.net/tree/classX3D_1_1Group__coll__graph.png
 
http://libx3d.sourceforge.net/tree/classX3D_1_1Group__coll__graph.png
Line 762: Line 762:
 
* '''Formal Requirement.''' Create animations of one or more parts moving with respect to one another (e.g., simulating the assembly or disassembly process, mechanisms movement).
 
* '''Formal Requirement.''' Create animations of one or more parts moving with respect to one another (e.g., simulating the assembly or disassembly process, mechanisms movement).
  
* '''Survey Description.''' Format supports the creation of animations of one or more parts moving with respect to one another i.e., simulating the assembly or disassembly process, mechanisms movement
+
* '''Survey Description.''' Format supports the creation of animations of one or more parts moving with respect to one another i.e., simulating the assembly or disassembly process, mechanisms movement
  
 
----
 
----
Line 782: Line 782:
 
== Requirement 19: Annotation Association ==
 
== Requirement 19: Annotation Association ==
  
* '''Formal Requirement.''' CAx entities linked to a selected annotation (dimension, tolerance, note, etc.) should be highlighted
+
* '''Formal Requirement.''' CAx entities linked to a selected annotation (dimension, tolerance, note, etc.) should be highlighted
  
* '''Survey Description.''' Format supports the ability for CAx entities to be linked to a selected annotation e.g. dimension, tolerance, note, etc. should be able to be highlighted
+
* '''Survey Description.''' Format supports the ability for CAx entities to be linked to a selected annotation e.g. dimension, tolerance, note, etc. should be able to be highlighted
  
 
----
 
----
Line 790: Line 790:
 
* '''X3D response.'''
 
* '''X3D response.'''
  
For annotations, see Requirement 14 (markups). Highlighting CAx entities according to selected annotation can be done by applications programmatically, or by authors explicitly, using the X3D event-routing system for animation. As with several other responses, the use of embedded or external metadata, in combination with application-specific functionality or embedded Prototype node extensions, can be applied to perform annotation association tasks.
+
For annotations, see Requirement 14 (markups). Highlighting CAx entities according to selected annotation can be done by applications programmatically, or by authors explicitly, using the X3D event-routing system for animation. As with several other responses, the use of embedded or external metadata, in combination with application-specific functionality or embedded Prototype node extensions, can be applied to perform annotation association tasks.
  
 
Explanation details follow. The event model of X3D allows the declaration of connections between fields (routes) and a model for the propagation of events along those connections.  
 
Explanation details follow. The event model of X3D allows the declaration of connections between fields (routes) and a model for the propagation of events along those connections.  
Line 806: Line 806:
 
== Requirement 20: Clearance & Interference Analysis ==
 
== Requirement 20: Clearance & Interference Analysis ==
  
* '''Formal Requirement.''' Perform analysis of clearances and interferences of parts in assemblies.
+
* '''Formal Requirement.''' Perform analysis of clearances and interferences of parts in assemblies.
 
The visualization tool will then report the clearance values. Advanced functionality will display areas on parts where clearance conditions are violated.
 
The visualization tool will then report the clearance values. Advanced functionality will display areas on parts where clearance conditions are violated.
 
Visualization tools should show users where clearances were violated or when contacts or interferences occurred.
 
Visualization tools should show users where clearances were violated or when contacts or interferences occurred.
  
* '''Survey Description.''' Format supports retention of data required to perform analysis of clearances and interferences of parts in assemblies.
+
* '''Survey Description.''' Format supports retention of data required to perform analysis of clearances and interferences of parts in assemblies.
 
Data is available to support implementers in providing advanced functionality which will display areas on parts where clearance conditions are violated.
 
Data is available to support implementers in providing advanced functionality which will display areas on parts where clearance conditions are violated.
 
Data is available that supports implementers of Visualization tools to show users where clearances were violated or when contacts or interferences occurred
 
Data is available that supports implementers of Visualization tools to show users where clearances were violated or when contacts or interferences occurred
Line 820: Line 820:
 
Native support is not directly required in the X3D Specification for Clearance & Interference Analysis.
 
Native support is not directly required in the X3D Specification for Clearance & Interference Analysis.
  
Similarly to previous requirement, a routing pipeline with scripted and reactive input/response functions can be defined in X3D to handle clearance and interference analysis. Collision nodes can be used to generate events when viewer and objects collide, and can be used to designate that certain objects should be treated as transparent to collisions. Support for inter-object collision is not specified in X3D Core.
+
Similarly to previous requirement, a routing pipeline with scripted and reactive input/response functions can be defined in X3D to handle clearance and interference analysis. Collision nodes can be used to generate events when viewer and objects collide, and can be used to designate that certain objects should be treated as transparent to collisions. Support for inter-object collision is not specified in X3D Core.
  
Nevertheless, the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/rigid_physics.html 37 Rigid Body Physics] component allows authors and application developers to animate their environments using real-time rigid-body physics engines. This makes scene objects to respond correctly to each other and the user in a non-scripted fashion, with physical responses that integrate collision detection with friction and forces.
+
Nevertheless, the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/rigid_physics.html 37 Rigid Body Physics] component allows authors and application developers to animate their environments using real-time rigid-body physics engines. This makes scene objects to respond correctly to each other and the user in a non-scripted fashion, with physical responses that integrate collision detection with friction and forces.
  
 
Thus applications can offer relevant functionality, while authors can further create and embed such functionality directly within relevant scenes.
 
Thus applications can offer relevant functionality, while authors can further create and embed such functionality directly within relevant scenes.
Line 830: Line 830:
 
== Requirement 21: View Annotation ==
 
== Requirement 21: View Annotation ==
  
* '''Formal Requirement.''' View 3D annotations (i.e., Dimensions, notes, geometric and dimensional tolerances, PMI, symbols...) created in the native CAx models.
+
* '''Formal Requirement.''' View 3D annotations (i.e., Dimensions, notes, geometric and dimensional tolerances, PMI, symbols...) created in the native CAx models.
  
* '''Survey Description.''' Format implementers area able to store data that supports the View of 3D annotations i.e., Dimensions, notes, geometric and dimensional tolerances, PMI, symbols ... created in the native CAx models.
+
* '''Survey Description.''' Format implementers area able to store data that supports the View of 3D annotations i.e., Dimensions, notes, geometric and dimensional tolerances, PMI, symbols ... created in the native CAx models.
  
 
----
 
----
Line 841: Line 841:
 
X3D can instantiate custom prepared geometries from a catalog ([http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/concepts.html#DEFLUseSemantics 4.4.3 DEF/USE semantics], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/networking.html 9.4.2 Inline] node). To have 3D annotations, one would have to build a catalog of such annotations, using the representation function of X3D. (Geometry primitives, [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/texturing.html 18 Texturing], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/text.html 15 Text], animations)
 
X3D can instantiate custom prepared geometries from a catalog ([http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/concepts.html#DEFLUseSemantics 4.4.3 DEF/USE semantics], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/networking.html 9.4.2 Inline] node). To have 3D annotations, one would have to build a catalog of such annotations, using the representation function of X3D. (Geometry primitives, [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/texturing.html 18 Texturing], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/text.html 15 Text], animations)
  
Of particular relevance is that [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html#Viewpoint Viewpoint], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html#OrthoViewpoint OrthoViewpoint] and [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html#ViewpointGroup ViewpointGroup] nodes can organize or indicate view annotations when they are applied as description strings. Applications are permitted to offer such descriptions in any appropriate manner (including text-to-speech auralization).
+
Of particular relevance is that [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html#Viewpoint Viewpoint], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html#OrthoViewpoint OrthoViewpoint] and [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html#ViewpointGroup ViewpointGroup] nodes can organize or indicate view annotations when they are applied as description strings. Applications are permitted to offer such descriptions in any appropriate manner (including text-to-speech auralization).
  
 
Relevant X3D components include [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/core.html 7 Core], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/rendering.html 11 Rendering], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/geometry3D.html 13 Geometry3D], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/geometry2D 14 Geometry2D], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/text.html 15 Text], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/texturing.html 18 Texturing], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html 23 Navigation], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/layering.html 35 Layering], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/layout.html 36 Layout]
 
Relevant X3D components include [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/core.html 7 Core], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/rendering.html 11 Rendering], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/geometry3D.html 13 Geometry3D], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/geometry2D 14 Geometry2D], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/text.html 15 Text], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/texturing.html 18 Texturing], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html 23 Navigation], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/layering.html 35 Layering], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/layout.html 36 Layout]
Line 847: Line 847:
 
== Requirement 22: Performance Settings ==
 
== Requirement 22: Performance Settings ==
  
* '''Formal Requirement.''' Optimize the application and the way it works with the particular data set. Performance settings may allow users to automatically reduce the complexity of the model when it is being manipulated. The Levels of Details (LODs) the user requires may influence performances.
+
* '''Formal Requirement.''' Optimize the application and the way it works with the particular data set. Performance settings may allow users to automatically reduce the complexity of the model when it is being manipulated. The Levels of Details (LODs) the user requires may influence performances.
  
* '''Survey Description.''' Provide constructs for Levels of Detail such that implementers can Optimize their application and the way they work with the particular data set. The format should support performance settings which allow users to automatically reduce the complexity of the model when it is being manipulated.
+
* '''Survey Description.''' Provide constructs for Levels of Detail such that implementers can Optimize their application and the way they work with the particular data set. The format should support performance settings which allow users to automatically reduce the complexity of the model when it is being manipulated.
  
 
----
 
----
  
 
* '''X3D response.'''
 
* '''X3D response.'''
There are a large number of ways to reduce scene complexity and improve rendering performance of complex scenes in X3D. Many of these methods can be suggested or applied automatically by authoring tools.
+
There are a large number of ways to reduce scene complexity and improve rendering performance of complex scenes in X3D. Many of these methods can be suggested or applied automatically by authoring tools.
  
 
** Multiple equivalent shapes having varied fidelity and resolution can be used to perform dynamic level of detail (LOD)
 
** Multiple equivalent shapes having varied fidelity and resolution can be used to perform dynamic level of detail (LOD)
Line 860: Line 860:
 
** Decreasing the frustum back plane distance (i.e. NavigationInfo visibilityLimit) to hide objects which are beyond the usable or practical range of the camera
 
** Decreasing the frustum back plane distance (i.e. NavigationInfo visibilityLimit) to hide objects which are beyond the usable or practical range of the camera
 
** In X3D, the frustum back clipping plane distance is defined by [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html#NavigationInfo 23.4.4 NavigationInfo] node, in [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation 23 Navigation component]. Geometry beyond the visibilityLimit may not be rendered. A value of 0.0 indicates an infinite visibility limit.  
 
** In X3D, the frustum back clipping plane distance is defined by [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html#NavigationInfo 23.4.4 NavigationInfo] node, in [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation 23 Navigation component]. Geometry beyond the visibilityLimit may not be rendered. A value of 0.0 indicates an infinite visibility limit.  
** Level of details is explicitly specified thanks to the eponymous node, [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html 23.4.3 LOD] (also in [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html Navigation component]). It allows to set which parts will be shown at an arbitrary distance from the camera. Authors can indicate whether transition distances are applied as optimization hints to the browser, or else strictly enforced to guarantee consistently predictable switching.
+
** Level of details is explicitly specified thanks to the eponymous node, [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html 23.4.3 LOD] (also in [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html Navigation component]). It allows to set which parts will be shown at an arbitrary distance from the camera. Authors can indicate whether transition distances are applied as optimization hints to the browser, or else strictly enforced to guarantee consistently predictable switching.
 
** Geometry nodes in various X3D profiles have been carefully chosen to allow autoreduction of geometry constructs into forms supported by the high-performance Interachange and Interactive Profiles
 
** Geometry nodes in various X3D profiles have been carefully chosen to allow autoreduction of geometry constructs into forms supported by the high-performance Interachange and Interactive Profiles
  
Line 867: Line 867:
 
== Requirement 23: Standard View Creation ==
 
== Requirement 23: Standard View Creation ==
  
* '''Formal Requirement.''' Define and save standard views on the computer, i.e., side view, plan view, rear view, die view, etc.
+
* '''Formal Requirement.''' Define and save standard views on the computer, i.e., side view, plan view, rear view, die view, etc.
  
* '''Survey Description.''' Provides for data constructs that define and save standard views on the computer, i.e., side view, plan view, rear view, die view, etc.
+
* '''Survey Description.''' Provides for data constructs that define and save standard views on the computer, i.e., side view, plan view, rear view, die view, etc.
  
 
----
 
----
Line 877: Line 877:
 
The [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html#Viewpoint 23.4.6 Viewpoint] and [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html#OrthoViewpoint 23.4.5 OrthoViewpoint] nodes, in the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation 23 Navigation component], define a specific location in the local coordinate system from which the user may view the scene. Viewpoints can be stacked in order to define a list of view from standard locations relative to the object (front, rear, side, etc.)
 
The [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html#Viewpoint 23.4.6 Viewpoint] and [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html#OrthoViewpoint 23.4.5 OrthoViewpoint] nodes, in the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation 23 Navigation component], define a specific location in the local coordinate system from which the user may view the scene. Viewpoints can be stacked in order to define a list of view from standard locations relative to the object (front, rear, side, etc.)
  
ViewpointGroup nodes can collect and display (or hide) multiple child Viewpoint, OrthoViewpoint and ViewpointGroup nodes. This facilitates focused display and selectability of view description strings in large scenes.
+
ViewpointGroup nodes can collect and display (or hide) multiple child Viewpoint, OrthoViewpoint and ViewpointGroup nodes. This facilitates focused display and selectability of view description strings in large scenes.
  
 
http://web3d.org/membership/login/groups/CAD/WikiImages/viewpoints.JPG
 
http://web3d.org/membership/login/groups/CAD/WikiImages/viewpoints.JPG
Line 888: Line 888:
 
== Requirement 24: Create Reference Planes ==
 
== Requirement 24: Create Reference Planes ==
  
* '''Formal Requirement.''' Create reference planes on the model that can be used to perform functions relative to them such as measurement, sectioning, viewing, etc
+
* '''Formal Requirement.''' Create reference planes on the model that can be used to perform functions relative to them such as measurement, sectioning, viewing, etc
  
* '''Survey Description.''' Format provides data which can be used to create reference planes on the model
+
* '''Survey Description.''' Format provides data which can be used to create reference planes on the model
 
The reference plane data should allow implementers to provide functionality that can be used to perform functions relative to them such as measurement, sectioning, viewing, etc.
 
The reference plane data should allow implementers to provide functionality that can be used to perform functions relative to them such as measurement, sectioning, viewing, etc.
  
Line 902: Line 902:
 
== Requirement 25: Area Selection Filter ==
 
== Requirement 25: Area Selection Filter ==
  
* '''Formal Requirement.''' Specify a bounding box to identify parts. Users should have a minimum of 2 options: select completely inside or partially inside. The third option, select part that cross the boundary, is highly desirable.
+
* '''Formal Requirement.''' Specify a bounding box to identify parts. Users should have a minimum of 2 options: select completely inside or partially inside. The third option, select part that cross the boundary, is highly desirable.
  
* '''Survey Description.''' Implementers of the format will be able to specify a bounding box to identify parts with a minimum of 2 options: select completely inside, and select partially inside. An optional option would be to select a part that crosses a boundary.
+
* '''Survey Description.''' Implementers of the format will be able to specify a bounding box to identify parts with a minimum of 2 options: select completely inside, and select partially inside. An optional option would be to select a part that crosses a boundary.
  
 
* '''X3D response.'''
 
* '''X3D response.'''
  
Geometric shapes can be selected and activated by users via a TouchSensor. Alternatively transparent geometry can be placed around collections of irregular objects (such as text) to facilitate selecting objects of interest. This is a general technique.
+
Geometric shapes can be selected and activated by users via a TouchSensor. Alternatively transparent geometry can be placed around collections of irregular objects (such as text) to facilitate selecting objects of interest. This is a general technique.
  
 
Further functionality is available using picking sensors: LinePickSensor, PickableGroup, PointPickSensor, PrimitivePickSensor and VolumePickSensor.
 
Further functionality is available using picking sensors: LinePickSensor, PickableGroup, PointPickSensor, PrimitivePickSensor and VolumePickSensor.
Line 916: Line 916:
 
== Requirement 26: Entity Selection Filter ==
 
== Requirement 26: Entity Selection Filter ==
  
* '''Formal Requirement.''' Select the type of feature to be used in some other visualization operation. This makes it much easier to select a particular feature for manipulation.
+
* '''Formal Requirement.''' Select the type of feature to be used in some other visualization operation. This makes it much easier to select a particular feature for manipulation.
  
* '''Survey Description.''' Implementers of the format will be able to specify a bounding box to identify parts with a minimum of 2 options: select completely inside, and select partially inside. An optional option would be to select a part that crosses a boundary
+
* '''Survey Description.''' Implementers of the format will be able to specify a bounding box to identify parts with a minimum of 2 options: select completely inside, and select partially inside. An optional option would be to select a part that crosses a boundary
  
 
----
 
----
Line 932: Line 932:
 
== Requirement 27: Visualization File Attributes ==
 
== Requirement 27: Visualization File Attributes ==
  
* '''Formal Requirement.''' Data specific to the creation of the visual representation (e.g., date and time translated, CAx file name, etc) should be available. Specific data associated with the product is covered by N°4 including any data quality stamps.
+
* '''Formal Requirement.''' Data specific to the creation of the visual representation (e.g., date and time translated, CAx file name, etc) should be available. Specific data associated with the product is covered by N°4 including any data quality stamps.
  
* '''Survey Description.''' Format provides for data specific to the creation of the visual representation i.e. date and time translated, CAx file name, data quality stamps, etc.
+
* '''Survey Description.''' Format provides for data specific to the creation of the visual representation i.e. date and time translated, CAx file name, data quality stamps, etc.
  
 
----
 
----
Line 959: Line 959:
 
  </head>  
 
  </head>  
 
  [...]
 
  [...]
** Typed internal metadata nodes include MetadataString, MetadataInteger, MetadataFloat, MetadataDouble, and MetadataSet (which can contain multiple other Metadata nodes). This is the primary mechanism for embedding scene-persistent metadata.
+
** Typed internal metadata nodes include MetadataString, MetadataInteger, MetadataFloat, MetadataDouble, and MetadataSet (which can contain multiple other Metadata nodes). This is the primary mechanism for embedding scene-persistent metadata.
 
** Metadata can also be stored on the specific [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/core.html#WorldInfo 7.4.6 WorldInfo] node, as in the following example:  
 
** Metadata can also be stored on the specific [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/core.html#WorldInfo 7.4.6 WorldInfo] node, as in the following example:  
 
  <?xml version="1.0" encoding="UTF-8" ?>
 
  <?xml version="1.0" encoding="UTF-8" ?>
 
  <X3D profile='Immersive'>
 
  <X3D profile='Immersive'>
  <Scene>
+
<Scene>
  <WorldInfo info='
+
<WorldInfo info='
    "author : "
+
"author : "
    "tool   : Google SketchUp 7.0.8657"
+
"tool : Google SketchUp 7.0.8657"
    "created : 2009-02-05T19:56:36Z"
+
"created : 2009-02-05T19:56:36Z"
    "copyright: "
+
"copyright: "
    "comments: " '/>
+
"comments: " '/>
 
  [...]
 
  [...]
Note that the WorldInfo approach is an older and less-capable construct for embedded metadata that was carried forward from VRML97. Unlike Metadata nodes or XML-encoded name=value pairs, the WorldInfo info string is not easily parsed or validatable.
+
Note that the WorldInfo approach is an older and less-capable construct for embedded metadata that was carried forward from VRML97. Unlike Metadata nodes or XML-encoded name=value pairs, the WorldInfo info string is not easily parsed or validatable.
  
 
Relevant X3D components include [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/core.html 7 Core]
 
Relevant X3D components include [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/core.html 7 Core]
Line 977: Line 977:
 
== Requirement 28: Interrogation ==
 
== Requirement 28: Interrogation ==
  
* '''Formal Requirement.''' Interrogate product structure and GD&T (Geometric Dimensioning and Tolerancing)
+
* '''Formal Requirement.''' Interrogate product structure and GD&T (Geometric Dimensioning and Tolerancing)
  
* '''Survey Description.''' Format provides for data that allows implementers to interrogate product structure and GD&T (Geometric Dimensioning and Tolerancing)
+
* '''Survey Description.''' Format provides for data that allows implementers to interrogate product structure and GD&T (Geometric Dimensioning and Tolerancing)
  
 
* '''X3D response.'''
 
* '''X3D response.'''
Line 1,001: Line 1,001:
 
  </Transform>
 
  </Transform>
 
  <Transform DEF="WHITE2nd"
 
  <Transform DEF="WHITE2nd"
  translation="-23 3 -12" scale="2 1 12">
+
translation="-23 3 -12" scale="2 1 12">
  ...
+
...
  </Transform>
+
</Transform>
 
  <Transform DEF="WHITE3rd"
 
  <Transform DEF="WHITE3rd"
  translation="-23 5 -12" scale="2 1 12">
+
translation="-23 5 -12" scale="2 1 12">
  ...
+
...
  </Transform>
+
</Transform>
  <Transform DEF="WHITE4th"
+
<Transform DEF="WHITE4th"
  translation="-23 7 -12" scale="2 1 12">
+
translation="-23 7 -12" scale="2 1 12">
  ...
+
...
  </Transform>
+
</Transform>
  </Group>
+
</Group>
  <Group DEF="BLUE">
+
<Group DEF="BLUE">
  ...
+
...
  </Group>
+
</Group>
  <Group DEF="RED">
+
<Group DEF="RED">
  ...
+
...
  </Group>
+
</Group>
  <Group DEF="ROADS">
+
<Group DEF="ROADS">
  ...
+
...
  </Group>
+
</Group>
  </Transform>
+
</Transform>
  </Scene>
+
</Scene>
 
  </X3D>
 
  </X3D>
  
Line 1,029: Line 1,029:
 
http://web3d.org/membership/login/groups/CAD/WikiImages/scene.JPG
 
http://web3d.org/membership/login/groups/CAD/WikiImages/scene.JPG
  
Note that these capabilities are available due to carefully constructed compatibility with XML standards. Such query and interrogation features are optional and not required by X3D.
+
Note that these capabilities are available due to carefully constructed compatibility with XML standards. Such query and interrogation features are optional and not required by X3D.
  
 
Relevant X3D components include [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/core.html 7 Core] as well as the [http://www.web3d.org/x3d/specifications/ISO-IEC-CD-19775-2.2-X3D-SceneAccessInterface/index.html Scene access interface (SAI)]
 
Relevant X3D components include [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/core.html 7 Core] as well as the [http://www.web3d.org/x3d/specifications/ISO-IEC-CD-19775-2.2-X3D-SceneAccessInterface/index.html Scene access interface (SAI)]
Line 1,035: Line 1,035:
 
== Requirement 29: Instances ==
 
== Requirement 29: Instances ==
  
* '''Formal Requirement.''' View multiple instances of a single part in an assembly
+
* '''Formal Requirement.''' View multiple instances of a single part in an assembly
  
* '''Survey Description.''' The format does not prevent the implementation for view of multiple instances of a single part in an assembly.
+
* '''Survey Description.''' The format does not prevent the implementation for view of multiple instances of a single part in an assembly.
  
 
----
 
----
Line 1,058: Line 1,058:
 
== Requirement 30: External References ==
 
== Requirement 30: External References ==
  
* '''Formal Requirement.''' Visualization of externally referenced parts, drawn from a product library.
+
* '''Formal Requirement.''' Visualization of externally referenced parts, drawn from a product library.
  
* '''Survey Description.''' Format supports data that enables the visualization of externally referenced parts, drawn from a product library.
+
* '''Survey Description.''' Format supports data that enables the visualization of externally referenced parts, drawn from a product library.
  
 
----
 
----
Line 1,070: Line 1,070:
  
 
  <?xml version="1.0" encoding="UTF-8"?>
 
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.1//EN"   "http://www.web3d.org/specifications/x3d-3.1.dtd">
+
  <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.1//EN" "http://www.web3d.org/specifications/x3d-3.1.dtd">
 
  <X3D profile='Immersive' version='3.1' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance'
 
  <X3D profile='Immersive' version='3.1' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance'
 
  xsd:noNamespaceSchemaLocation=' http://www.web3d.org/specifications/x3d-3.1.xsd '>
 
  xsd:noNamespaceSchemaLocation=' http://www.web3d.org/specifications/x3d-3.1.xsd '>
 
  <head>
 
  <head>
  </head>
+
</head>
  <Scene>
+
<Scene>
  '''<Inline url=' "http://X3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpForestMain.x3d" '/>'''
+
'''<Inline url=' "http://X3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpForestMain.x3d" '/>'''
  </Scene>
+
</Scene>
 
  </X3D>
 
  </X3D>
  
The [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/networking.html 9.4.1 Networking component] also provides support for the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/networking.html 9.4.1 Anchor] grouping node. Such a node retrieves the content of a URL when the user activates (e.g., clicks) some geometry contained within the Anchor node's children. Anchor links can refer to a named viewpoint in the scene, a new external X3D scene, or a new external resource (such as an HTML page). Anchor links for X3D can be targeted for presentation within the currently displayed window, or else launched into a separate frame.
+
The [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/networking.html 9.4.1 Networking component] also provides support for the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/networking.html 9.4.1 Anchor] grouping node. Such a node retrieves the content of a URL when the user activates (e.g., clicks) some geometry contained within the Anchor node's children. Anchor links can refer to a named viewpoint in the scene, a new external X3D scene, or a new external resource (such as an HTML page). Anchor links for X3D can be targeted for presentation within the currently displayed window, or else launched into a separate frame.
  
Direct support is also defined for images, movies, audio clips and HTML. Support for any other media type is allowed if the implementing X3D viewer supports it. Viewers encountering unfamiliar media types can relay them to an external Web browser.
+
Direct support is also defined for images, movies, audio clips and HTML. Support for any other media type is allowed if the implementing X3D viewer supports it. Viewers encountering unfamiliar media types can relay them to an external Web browser.
  
Note that X3D url strings are actually ordered lists. This permits more than one address to be given for a specific resource, greatly improving reliability. Browsers try each url value in order until a successful retrieval occurs. This flexibility also allows interesting techniques such as preferential loading of local or online resources.
+
Note that X3D url strings are actually ordered lists. This permits more than one address to be given for a specific resource, greatly improving reliability. Browsers try each url value in order until a successful retrieval occurs. This flexibility also allows interesting techniques such as preferential loading of local or online resources.
  
 
Relevant X3D components include [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/core.html 7 Core], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/networking.html 9 Networking]
 
Relevant X3D components include [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/core.html 7 Core], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/networking.html 9 Networking]
Line 1,090: Line 1,090:
 
== Requirement 31: Accuracy ==
 
== Requirement 31: Accuracy ==
  
* '''Formal Requirement.''' The interrogation of measurements from the visualization model should deliver the same results as interrogation from the original CAD model, within a known tolerance.
+
* '''Formal Requirement.''' The interrogation of measurements from the visualization model should deliver the same results as interrogation from the original CAD model, within a known tolerance.
  
* '''Survey Description.''' Stored data supports the interrogation of measurements from the visualization model which deliver the same results as interrogation from the original CAD model, within a known tolerance.
+
* '''Survey Description.''' Stored data supports the interrogation of measurements from the visualization model which deliver the same results as interrogation from the original CAD model, within a known tolerance.
  
 
----
 
----
Line 1,098: Line 1,098:
 
* '''X3D response.'''
 
* '''X3D response.'''
  
Such data is stored in strongly typed metadata nodes as received and is returned in the same form. Supported metadata types are String, Integer, single-precision Float, double-precision Double and MetadataSet collections.
+
Such data is stored in strongly typed metadata nodes as received and is returned in the same form. Supported metadata types are String, Integer, single-precision Float, double-precision Double and MetadataSet collections.
  
 
Relevant X3D components include [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/core.html 7 Core]
 
Relevant X3D components include [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/core.html 7 Core]
Line 1,104: Line 1,104:
 
== Requirement 32: Kinematics ==
 
== Requirement 32: Kinematics ==
  
* '''Formal Requirement.''' Support the kinematics of assemblies.
+
* '''Formal Requirement.''' Support the kinematics of assemblies.
  
* '''Survey Description.''' Format supports storage of data which allows implementers to provide kinematics motion with assemblies.
+
* '''Survey Description.''' Format supports storage of data which allows implementers to provide kinematics motion with assemblies.
  
 
----
 
----
Line 1,129: Line 1,129:
 
== Requirement 33: Rendering Modes ==
 
== Requirement 33: Rendering Modes ==
  
* '''Formal Requirement.''' Support different rendering styles of the model based on the original properties held in the CAD system, noting the various technologies available.
+
* '''Formal Requirement.''' Support different rendering styles of the model based on the original properties held in the CAD system, noting the various technologies available.
  
* '''Survey Description.''' Format provides support for different rendering styles of the model based on the original properties held in the CAD system.
+
* '''Survey Description.''' Format provides support for different rendering styles of the model based on the original properties held in the CAD system.
  
 
----
 
----
Line 1,142: Line 1,142:
 
On the other hand, rendering can be altered within the 3D scene definition by loading custom GPU code fragments, known as shaders. The [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/shaders.html 31 Programmable shaders component] defines procedural shaders in X3D. They can define both appearance and light sources relative to the objects.
 
On the other hand, rendering can be altered within the 3D scene definition by loading custom GPU code fragments, known as shaders. The [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/shaders.html 31 Programmable shaders component] defines procedural shaders in X3D. They can define both appearance and light sources relative to the objects.
  
Bump mapping and other shader effects are available using the Shader component. The following example is shown using the BSContact browser:
+
Bump mapping and other shader effects are available using the Shader component. The following example is shown using the BSContact browser:
  
 
http://web3d.org/membership/login/groups/CAD/WikiImages/bump.JPG
 
http://web3d.org/membership/login/groups/CAD/WikiImages/bump.JPG
  
A wide variety of rendering capabilities are thus possible, including (but not necessarily limited to) lighting effects, LineProperty/FillProperty highlighting, point/wireframe/shaded rendering, etc.   Special techniques such as nonphotorealistic rendering and raytracing are also possible but typically are application specific.
+
A wide variety of rendering capabilities are thus possible, including (but not necessarily limited to) lighting effects, LineProperty/FillProperty highlighting, point/wireframe/shaded rendering, etc. Special techniques such as nonphotorealistic rendering and raytracing are also possible but typically are application specific.
  
 
Relevant X3D components include [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/core.html 7 Core], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/shaders.html 31 Programmable shaders], browser-specific methods.
 
Relevant X3D components include [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/core.html 7 Core], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/shaders.html 31 Programmable shaders], browser-specific methods.
Line 1,152: Line 1,152:
 
== Requirement 34: Lighting Control ==
 
== Requirement 34: Lighting Control ==
  
* '''Formal Requirement.''' Change and control the number and types of lights and environment illuminating the scene.
+
* '''Formal Requirement.''' Change and control the number and types of lights and environment illuminating the scene.
  
* '''Survey Description.''' Format supports the storage of data which enables the change and control of the number and types of lights and the environment illuminating the scene.
+
* '''Survey Description.''' Format supports the storage of data which enables the change and control of the number and types of lights and the environment illuminating the scene.
  
 
----
 
----
Line 1,160: Line 1,160:
 
* '''X3D response.'''
 
* '''X3D response.'''
  
In X3D, the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/lighting.html 17 Lighting component] delivers ways to define light sources. Light sources interact with geometry nodes ([http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/shape.html#Shape 12.4.5 Shape nodes). Shape nodes are illuminated by the sum of all of the lights in the world that affect them. A minimum of eight lights must be supported. See reference for further information about X3D illumination model.
+
In X3D, the [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/lighting.html 17 Lighting component] delivers ways to define light sources. Light sources interact with geometry nodes ([http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/shape.html#Shape 12.4.5 Shape nodes). Shape nodes are illuminated by the sum of all of the lights in the world that affect them. A minimum of eight lights must be supported. See reference for further information about X3D illumination model.
 
The following node types are light source nodes:
 
The following node types are light source nodes:
  
Line 1,169: Line 1,169:
 
</ul>
 
</ul>
  
The characteristics of these nodes are specified in the [http://www.web3d.org/x3d/specifications/ISO-IEC-19775-X3DAbstractSpecification/Part01/components/lighting.html 17 Lighting component]. Both local and global scope are allowed for optimizing performance. Lights can easily be animated on/off. Full control is available for intensity, ambient contributions, etc.
+
The characteristics of these nodes are specified in the [http://www.web3d.org/x3d/specifications/ISO-IEC-19775-X3DAbstractSpecification/Part01/components/lighting.html 17 Lighting component]. Both local and global scope are allowed for optimizing performance. Lights can easily be animated on/off. Full control is available for intensity, ambient contributions, etc.
  
 
http://libx3d.sourceforge.net/tree/classX3D_1_1X3DLightNode__inherit__graph.png
 
http://libx3d.sourceforge.net/tree/classX3D_1_1X3DLightNode__inherit__graph.png
Line 1,178: Line 1,178:
 
== Requirement 35: Data Format Footprint ==
 
== Requirement 35: Data Format Footprint ==
  
* '''Formal Requirement.''' The format should be significantly smaller than the original CAD data. This will enable the data to be used on smaller office automation computers instead of engineering workstations.
+
* '''Formal Requirement.''' The format should be significantly smaller than the original CAD data. This will enable the data to be used on smaller office automation computers instead of engineering workstations.
  
* '''Survey Description.''' The format should be significantly smaller than the original CAD data. This will enable the data to be used on smaller office automation computers instead of engineering workstations.
+
* '''Survey Description.''' The format should be significantly smaller than the original CAD data. This will enable the data to be used on smaller office automation computers instead of engineering workstations.
  
 
----
 
----
Line 1,194: Line 1,194:
 
Geometric compression techniques using the Deering algorithms are also defined and supported for use with X3D compressed binary encoding.
 
Geometric compression techniques using the Deering algorithms are also defined and supported for use with X3D compressed binary encoding.
  
* '''X3D encoding:''' [http://www.web3d.org/x3d/specifications/ISO-IEC-19776-3-X3DEncodings-CompressedBinaryEncoding/index.html ISO/IEC 19776-3:2007 X3D Compressed binary encoding]
+
* '''X3D encoding:''' [http://www.web3d.org/x3d/specifications/ISO-IEC-19776-3-X3DEncodings-CompressedBinaryEncoding/index.html ISO/IEC 19776-3:2007 X3D Compressed binary encoding]
  
 
== Requirement 36: Persistence of Visualization Information ==
 
== Requirement 36: Persistence of Visualization Information ==
  
* '''Formal Requirement.''' The format should support the capability to save the current state of the visualization, including annotation, transformations, viewing parameters and rendering applied by the visualization tool.
+
* '''Formal Requirement.''' The format should support the capability to save the current state of the visualization, including annotation, transformations, viewing parameters and rendering applied by the visualization tool.
  
* '''Survey Description.''' The format should support the capability for implementers to save the current state of the visualization, including annotation, transformations, viewing parameters and rendering applied by the visualization tool.
+
* '''Survey Description.''' The format should support the capability for implementers to save the current state of the visualization, including annotation, transformations, viewing parameters and rendering applied by the visualization tool.
  
 
----
 
----
Line 1,208: Line 1,208:
  
 
  Viewpoint: X3DViewpointNode {  
 
  Viewpoint: X3DViewpointNode {  
  SFBool     [in]     set_bind
+
SFBool [in] set_bind
  SFVec3f   [in,out] centerOfRotation 0 0 0   (-8,8)
+
SFVec3f [in,out] centerOfRotation 0 0 0 (-8,8)
  SFString   [in,out] description       ""
+
SFString [in,out] description ""
  SFFloat   [in,out] fieldOfView       p/4     (0,p)
+
SFFloat [in,out] fieldOfView p/4 (0,p)
  SFBool     [in,out] jump             TRUE
+
SFBool [in,out] jump TRUE
  SFNode     [in,out] metadata         NULL   [X3DMetadataObject]
+
SFNode [in,out] metadata NULL [X3DMetadataObject]
  SFRotation [in,out] orientation       0 0 1 0 [-1,1],(-8,8)
+
SFRotation [in,out] orientation 0 0 1 0 [-1,1],(-8,8)
  SFVec3f   [in,out] position         0 0 10 (-8,8)
+
SFVec3f [in,out] position 0 0 10 (-8,8)
  SFBool     [in,out] retainUserOffsets FALSE
+
SFBool [in,out] retainUserOffsets FALSE
  SFTime     [out]   bindTime
+
SFTime [out] bindTime
  SFBool     [out]   isBound
+
SFBool [out] isBound
 
  }
 
  }
  
Line 1,225: Line 1,225:
 
The fieldOfView field specifies a preferred minimum viewing angle from this viewpoint in radians. A small field of view roughly corresponds to a telephoto lens; a large field of view roughly corresponds to a wide-angle lens. The field of view shall be greater than zero and smaller than &pi;. The value of fieldOfView represents the minimum viewing angle in any direction axis perpendicular to the view.  
 
The fieldOfView field specifies a preferred minimum viewing angle from this viewpoint in radians. A small field of view roughly corresponds to a telephoto lens; a large field of view roughly corresponds to a wide-angle lens. The field of view shall be greater than zero and smaller than &pi;. The value of fieldOfView represents the minimum viewing angle in any direction axis perpendicular to the view.  
  
It is important to note that such an approach is easily generalized. X3D is an expressive language and all user-defined parameters created in the player might be saved as accompanying X3D markup. Nevertheless some state information in a live scene is transient, often depending on preceding user interactions, and thus cannot be persistently saved.
+
It is important to note that such an approach is easily generalized. X3D is an expressive language and all user-defined parameters created in the player might be saved as accompanying X3D markup. Nevertheless some state information in a live scene is transient, often depending on preceding user interactions, and thus cannot be persistently saved.
  
 
Relevant X3D components include [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html 23 Navigation], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/scripting.html 29 Scripting] and the [http://www.web3d.org/x3d/specifications/ISO-IEC-CD-19775-2.2-X3D-SceneAccessInterface/index.html Scene access interface (SAI)]
 
Relevant X3D components include [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html 23 Navigation], [http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/scripting.html 29 Scripting] and the [http://www.web3d.org/x3d/specifications/ISO-IEC-CD-19775-2.2-X3D-SceneAccessInterface/index.html Scene access interface (SAI)]
Line 1,246: Line 1,246:
 
Additional X3D encodings and language bindings can be developed as needed, either for local or standardized use.
 
Additional X3D encodings and language bindings can be developed as needed, either for local or standardized use.
  
The [http://www.web3D.org Web3D Consortium] also has formal liaison relationships with the following standards organizations. Maintaining Web interoperability is a charter goal for X3D.
+
The [http://www.web3D.org Web3D Consortium] also has formal liaison relationships with the following standards organizations. Maintaining Web interoperability is a charter goal for X3D.
 
* [http://www.iso.ch International Organization for Standardization (ISO)]
 
* [http://www.iso.ch International Organization for Standardization (ISO)]
 
* [http://www.w3.org World Wide Web Consortium (W3C)]
 
* [http://www.w3.org World Wide Web Consortium (W3C)]
Line 1,258: Line 1,258:
 
== Multiple Implementations ==
 
== Multiple Implementations ==
  
Open-source as well as private commercial implementations are available for X3D. [http://www.web3d.org/x3d/content/examples/X3dResources.html#AuthoringSoftware Known implementations] include
+
Open-source as well as private commercial implementations are available for X3D. [http://www.web3d.org/x3d/content/examples/X3dResources.html#AuthoringSoftware Known implementations] include
  
 
<ul>
 
<ul>
Line 1,293: Line 1,293:
 
* Royalty Free (RF)
 
* Royalty Free (RF)
 
* Well-defined and rigorous with multiple implementations and numerous example scenes
 
* Well-defined and rigorous with multiple implementations and numerous example scenes
* Well-established and proven Web3D Consortium working group process. Membership is required for contributing to the X3D Specification.
+
* Well-established and proven Web3D Consortium working group process. Membership is required for contributing to the X3D Specification.
 
* Working group recommendations are first approved by Web3D members, then sent to ISO for final review.
 
* Working group recommendations are first approved by Web3D members, then sent to ISO for final review.
 
* At least two independent implementations are required for each capability
 
* At least two independent implementations are required for each capability
Line 1,319: Line 1,319:
 
== W3C Efficient XML Interchange (EXI) ==
 
== W3C Efficient XML Interchange (EXI) ==
  
Web3D Consortium is participating in the [http://www.w3.org/XML/EXI Efficient XML Interchange (EXI)] working group of the [http://www.w3.org World Wide Web Consortium (W3C)]. EXI provides near-optimum compression and improved decompression performance of XML.
+
Web3D Consortium is participating in the [http://www.w3.org/XML/EXI Efficient XML Interchange (EXI)] working group of the [http://www.w3.org World Wide Web Consortium (W3C)]. EXI provides near-optimum compression and improved decompression performance of XML.
  
EXI is in [http://www.w3.org/TR/2008/WD-exi-20080919 Last Call Working Draft] status. The X3D group expects to utilize EXI as an improved future version of the [http://www.web3d.org/x3d/specifications/ISO-IEC-FCD-19776-3.2-X3DEncodings-CompressedBinary X3D Compressed Binary Encoding]. Such a transition will consist of a simple replacement of the currently used ISO [http://www.itu.int/rec/T-REC-X.891-200505-I/en Fast Infoset (FI)] standard with EXI, with forward compatibility guaranteed via conversion to/from XML.
+
EXI is in [http://www.w3.org/TR/2008/WD-exi-20080919 Last Call Working Draft] status. The X3D group expects to utilize EXI as an improved future version of the [http://www.web3d.org/x3d/specifications/ISO-IEC-FCD-19776-3.2-X3DEncodings-CompressedBinary X3D Compressed Binary Encoding]. Such a transition will consist of a simple replacement of the currently used ISO [http://www.itu.int/rec/T-REC-X.891-200505-I/en Fast Infoset (FI)] standard with EXI, with forward compatibility guaranteed via conversion to/from XML.
  
 
== Acknowledgement ==
 
== Acknowledgement ==
  
 
The X3D CAD Working Group is grateful for this opportunity to contribute and will continue to progress. Thanks for all review comments and feedback.
 
The X3D CAD Working Group is grateful for this opportunity to contribute and will continue to progress. Thanks for all review comments and feedback.

Revision as of 01:56, 15 December 2015

Contents

Overview

TC184 is the ISO technical committee working on visualization standardization and interoperability support for CAD models.

  • The purpose of the assessment is to compile a summary report of 3D Visualization formats
  • The summary report will be used as part of an ISO ballot package
  • Balloting will take place to select formats which will be accepted by ISO as capable to support the 3D Visualization Requirements defined in document TC184/SC4 N2539
  • The ballot will allow selection of all formats if the level of compliance is sufficient.

TC184 is conducting the assessment process through a series of in-depth review sessions.

  • Format assessments are conducted by the Technical Experts that make up the 3D Visualization ad hoc committee
  • Each technical expert will be required to read the specification for the format being reviewed and assess its ability to support the 36 3D Visualization requirements
  • The technical expert will assign a value to each of the requirements a value of 0 – 5 will be assigned on each requirement. The value will define the level of support the technical expert found for the requirement while reviewing the format specification.

Formats under consideration for adoption as a 3D Visualization standard must either be already accepted by ISO or evaluated through the ISO Harvesting process.

  • X3D is already eligible as an approved set of ISO standards.
  • The X3D family of specifications are already approved by ISO. The Web3D Consortium is a Category C liaison to the ISO/IEC JTC1 SC24, and SC24 WG6 is the responsible working group.
  • The X3D CAD Working Group is responding to this survey of requirements support to determine suitability of X3D Graphics Specification for CAD interoperability.


X3D References

  • ISO/IEC 19775-1:2008 — X3D Architecture and base components — Edition 2 (Web3D) (ISO)
    • 27 NURBS component (Web3D)
    • 32 CAD geometry component (Web3D)
    • 35 Layering component
    • 36 Layout component
  • (Draft) X3D CAD Component Revision: Parametric Surfaces and Boundary Representations (BREPS)
  • ISO/IEC FCD 19776-1:200x — X3D XML encoding — Edition 2
  • ISO/IEC 19776-2:2008 — X3D Classic VRML Encoding — Edition 2
  • ISO/IEC FCD 19776-3:200x — X3D Compressed binary encooding — Edition 2
  • ISO/IEC 19777-1:2006 — X3D language bindings — ECMAScript
  • ISO/IEC 19777-2:2006 — X3D language bindings — Java


Terminology and Acronyms

  • CAx CAD/CAM/CAE
  • PDM Product Data Management
  • PMI Product Metadata Information


Evaluation Criteria

Ratings are evaluated on a scale of 0-5.

  • 0 - No support in the specification
  • 1 - Support is vaguely implied
  • 2 - Support appears available but the definition is not clear
  • 3 - Support is stated but the expert must seek clarification to determine how support is provided
  • 4 - Support is available in the specification
  • 5 - Full support for the requirement is readily available in the specification


Summary of Scores

The following table presents the self-assessment scores of the X3D CAD Working Group of the Web3D Consortium.

Interestingly, if current working-group effort to add B-REP capabilities to the X3D CAD Component is considered, few technical showstoppers remain that might limit X3D applications from implementing full support of TC184 Visualization Requirements.

Feedback is welcome.

Requirement Score
1 STEP Consistency 2
2 STEP Mapping 2
3 STEP & Product Life Cycle 2
4 View Geometry, Attributes, Viewing Attributes, Management and other information 5
5 Display selection & editing 4
6 Print/Plot 5
7 Zoom/Pan 5
8 Camera Rotation 5
9 Bill of Material (BOM) 4
10 Screen Capture 5
11 Measurement 4
12 Sectioning 4
13 Compare 3
14 Markup 4
15 Collaboration 4
16 Transformation/Manipulation 5
17 Grouping 5
18 Animation 5
19 Annotation Association 3
20 Clearance & Interference Analysis 3
21 View Annotation 5
22 Performance Settings 5
23 Standard View Creation 5
24 Create Reference Planes 2
25 Area Selection Filter 4
26 Entity Selection Filter 4
27 Visualization File Attributes 4
28 Interrogation 2
29 Instances 5
30 External References 5
31 Accuracy 3
32 Kinematics 5
33 Rendering Modes 5
34 Lighting Control 5
35 Data Format Footprint 5
36 Persistence of Visualization Information 4
Total (out of 180 possible points) 147
Percentage 81.7%


Requirement Descriptions and Self-Assessment

  • X3D response. For each requirement, a summary description of the ability of X3D to satisfy the requirement is provided along with one or more references to the specific X3D components that address the requirement.

Requirement 1: STEP Consistency

  • Formal Requirement. The information delivered via the visualization format should be consistent with the complete standardized product representation used for exchange and archiving purposes - the ISO STEP standard.
  • Survey Description. (same)

  • X3D response.

No formal assessment has been performed correlating ISO X3D constructs to the ISO STEP standard. Such an activity has significant potential value.

X3D is the third-generation successor to the ISO-standard Virtual Reality Modeling Language (VRML97). As such it is designed as an interchange scene graph compatible with a wide variety of 3D file formats and application programming interfaces (APIs). Over 12 years of adoption and continuing deployment demonstrate that X3D serves well for visualization interchange and interoperability. Given these broad proven successes, the X3D working group is confident that X3D is likely to map satisfactorily to STEP visualization requirements.

Requirement 2: STEP Mapping

  • Formal Requirement. A published mapping specification as agreed to by SC4 is required from STEP to the visualization format
  • Survey Description. (same as preceding requirement)
  • X3D response. Such a correspondence has not been created, but it is feasible and valuable to produce. Nothing prevents such an effort. Likely the biggest contribution might be mechanisms for embedding STEP metadata within X3D model components for tool usage. The Web3D Consortium is interested in pursuing such a possibility.

Commercial translators already allow automatic conversion from STEP (AP203 & AP214) to X3D. For instance, OKINO Polytrans supports the following STEP->X3D export functionality:

    • Output of clean mesh data with optional vertex normals and vertex texture coordinates.
    • Lights (point, spot and directional) and the perspective camera
    • 3D indexed line sets and 3D point sets
    • Material parameter output: ambient color, diffuse color, specular color, emissive color, shininess and transparency.
    • Hierarchy for geometry and folders
    • Export of Object, camera, light and material animation
    • Vertex colors for mesh data
    • NURBS surfaces with trim curves
    • 3D NURBS curves
    • Indexed triangle strip geometry
    • 3D NURBS independent curves
    • Control over the conversion of NURBS curves to NURBS or linear curves in the output file
    • Control over the conversion of Spline Shape primitives to NURBS or linear curves in the output file, or else conversion to meshes or NURBS surfaces if the curve(s) are closed.

Example reference links for Polytrans: STEP -> X3D, X3D -> STEP, export panel, NURBS settings panel

Requirement 3: STEP & Product Life Cycle

  • Formal Requirement. The 3D visualization format may be used across the whole extended enterprise, throughout the supply chain, without restriction to a particular functional area
  • Survey Description. (same as preceding requirement)

  • X3D response.

X3D is a widely used visualization standard for model interchange which includes file-format encodings for the Extensible Markup Language (XML), ClassicVRML and compressed binary. It is well suited for visualizing models across the extended enterprise. XML representations permit integration of metadata, animation behaviors and intelligent queries within the model, thus making models adaptable to requirements in different groups within an enterprise.

Because of this broad applicability, X3D is used for a variety of purposes relevant to CAD visualization.

    • Showcase purposes: ability to build integrated X3D applications with customized user-interface functionality and behavior animation embedded in the scene.
    • Industrial design: rich geometry representations, CAD Component, usefulness as an interchange format.
    • Public relations, thanks to: Most of the browser implementations can be embedded in a webpage, allowing lightweight 3D enhanced websites.

Companies using X3D include:

    • Bitmanagement, industrial design, showcases
    • EDF, industrial design, HPC numerical simulations, showcases
    • MBARI, daily operations by ships and underwater robots linking video and sensor data
    • Media Machines, online 3D virtual reality
    • MITRE, visualization service bus
    • NASA Ames, 3D models repositories, geospatial simulations
    • Naval Postgraduate School, 3D models repositories, teaching
    • Octaga, 3D real time industrial simulations
    • Planet 9 Studios, 3D Urban Simulation
    • Schlumberger, ocean and subterranean investigation
    • SenseGraphics, immersive multimodal environments
    • Vivaty, online 3D avatar based communities
    • Yumetech, Rapid Scenario Generation, 3D model catalogs

Relevant X3D components include all aspects of X3D ISO/IEC 19775.

Requirement 4: View Geometry, Attributes, Viewing Attributes, Management and other information

  • Formal Requirement. Display 3-D representation of parts and assemblies independent of any CAx or PDM system. Any data within the scope of ISO 10303-1231 and 10303-1230 may have a viewable representation of Geometry, Attributes, Viewing parameters, and Management and other information.
  • Survey Description. Format is able to store the data which is the 3-D representation of parts and assemblies independent of any CAx or PDM system. Any data within the scope of ISO 10303-1231 and 10303-1230 may have a viewable representation of Geometry, Attributes, Viewing parameters, and Management and other information.

  • X3D response.

ISO/TS 10303-1230:2005 specifies the application module for Configuration controlled 3D parts and assemblies. It contains the following sections. X3D provides excellent support for each of these capabilities.

    • Products that are three-dimensional parts and assemblies can be modeled using regular X3D shapes and geometry, further structured using grouping nodes provided in 32 CAD geometry component
    • Configuration control data and product definition data tends to be application specific, but can be stored within the relevant portions of a model using 7.2.4 Metadata component
    • Shape representations that includes advanced boundary representation, faceted boundary representation, manifold manifold surfaces with topology, geometrically bounded surface and wireframe geometry, wireframe with topology, and constructive solid geometry in three-dimensions. can use numerous X3D capabilities, including 13 Geometry3D component, 14 Geometry2D component, 27 NURBS component, 32 CAD Geometry Component
    • Geometric presentation of geometric shape representations by the application of colours, layers and groups is possible via a broad range of grouping, appearance, material and texture components: 10 Grouping component, 11 Rendering component, 18 Texturing component, 35 Layering component
    • Geometric and dimensional tolerances applied to geometric shape representations.\ are possible. The X3D Specification is designed for more general use, but nothing prevents applications from building GD&T extensions. Furthermore, such capabilities can be portably embedded within models by using the 29 Scripting component and 4.4.4 Prototype semantics
    • Textual annotation and notes applied to geometric shape representations can be applied using the 15 Text component

Relevant X3D components include: 7 Core, 10 Grouping, 11 Rendering, 12 Shape, 13 Geometry3D, 14 Geometry2D, 15 Text, 32 CAD geometry, 35 Layering

Current development work includes adding a thorough set of boundary representation (BREP) support to the X3D CAD component.

Requirement 5: Display selection & editing

  • Formal Requirement. Any graphically selected element should be highlighted. All selected part or assembly from the assembly tree should be highlighted. The user should have the ability to, temporarily, turn on and off the display of selected elements (point, line, surface, solid annotation, mark-up, etc.) The user should have the ability to, temporarily, change the visual attributes of part(s) (e.g., turn parts on and off, change colour, make transparent) by selecting them from the assembly tree. The user should have the ability to select and display parts and assemblies sorted out by layers, colours, materials, dates, and other numerical or textual attributes.
  • Survey Description. The Format supports storage of data or constructs which enable the following activities in an implementing system
- Any graphically selected element should able to be highlighted.
- All selected part or assembly from the assembly tree should be able to be highlighted
- Support for the ability to temporarily, turn on and off the display of selected elements (point, line, surface, solid annotation, mark-up, etc.]
- Support for the ability to temporarily, change the visual attributes of part(s) i.e. turn parts on and off, change color, make transparent) by selecting them from the assembly tree.
- Support for the ability to select and display parts and assemblies sorted out by layers, colors, materials, dates, and other numerical or textual attributes

  • X3D response.

The X3D specification is capable of containing model information for all these capabilities.

Pointing-device sensors detect user motion of a cursor by using a mouse, wand, touchpad, touchscreen, keyboard arrow keys, or some other device. Interaction responses are expressed in a device-independent way that maximizes interoperability among diverse platforms. Viewer applications usually move a 2D cursor icon in front of the rendering 3D scene to show current screen position of the pointing device. Selected elements raise events, which in turn can raise and generate subsequent events, leading to precisely animated scene-graph modifications.

    • Object selection is handled by Pointing device sensor component
    • Rendering property alteration capabilities include any desired modification of appearance, single-sided or two-sided material values, transparency, texture images
    • Line properties and fill properties are especially helpful for indicating selection.

Relevant X3D components include 7 Core, 12 Shape, 20 Pointing device sensor, 35 Layering

Requirement 6: Print/Plot

  • Formal Requirement. Print and/or plot the information displayed on the screen. Users should be able to specify a scale to plot the image relative to native model boundaries, i.e., displayed images should be plotted at full scale, ½ scale, etc.
  • Survey Description. There are no restrictions in the format specification which prohibit the ability to print and/or plot the information displayed on the screen. No restrictions on the ability to scale and plot the data which represents the image relative to native model boundaries, i.e., displayed images could be plotted at full scale, ½ scale, etc. by an implementing system.

  • X3D response.

Applications implementing X3D often offer support for plotting 2D images at different scales and perspectives. Similarly, 3D printing is also feasible using various scales and output devices. No restrictions are included in the file format, leaving applications free to perform these functions as appropriate.

File:Shape small.jpg

Integration support with HTML web pages is also well defined and supported (HTML Object Tag for X3D provides full details). For instance, an X3D browser used as a web plugin is able to display images relative to web page frame size.

Relevant X3D components include 7 Core, 9 Networking

Requirement 7: Zoom/Pan

  • Formal Requirement. Zoom/Pan into a local area of a 3D image without losing visual accuracy.
  • Survey Description. Data format does not restrict an implementing system from providing Zoom/Pan into a local area of a 3D image without losing visual accuracy.

  • X3D response.

Applications can provide full support based on the information available in an X3D model.

    • Authors can use either perspective-based 23.4.6 Viewpoint or orthographic 23.4.5 OrthoViewpoint to create model-specific animations
    • Applications can perform any of these capabilities based on information in the X3D scene
    • NavigationInfo types include two types of user-directed zoom (FLY and WALK), terrain following, EXAMINE rotation, and LOOKAT selection/zoom
    • Common alternate modes provided by applications include Fit to Screen, Tilt and Pan
    • Camera-to-object collision detection can be enabled/disabled on an object-by-object basis, permitting creation of guided paths or entry ways for user viewing
    • Authors can restrict or further extend built-in navigation features, either within a file format or programmatically
    • Remotely guided viewing viewing across a network is feasible using the IEEE Distributed Interactive Simulation (DIS) protocol

BSContact Browser, showing same model at different zoom levels:

File:Zoom small.jpg

Xj3D browser controls expose X3D navigation functionality typical to many viewing applications:

http://web3d.org/membership/login/groups/CAD/WikiImages/Xj3dNavigationButtonsHotkeys.png

Relevant X3D components include 10 Grouping, 23 Navigation

Requirement 8: Camera Rotation

  • Formal Requirement. Rotate the camera viewing perspective about a point either by an arbitrary or a specific axis. Rotation can occur either as a function of mouse/key input or by keying in exact angles. This is necessary in order to orient the parts relative to critical views for detailed analysis.
  • Survey Description. Format provides content definition which enables implementing systems to rotate the camera viewing perspective about a point either by an arbitrary or a specific axis.

  • X3D response.

Camera position and orientation can be precisely controlled for detailed model analysis. User-driven rotations occur by default as a function of pointer or arrow-key input. Alternatively applications or scenes may control rotation by allowing users to enter an exact angle. Precomputed view paths can be controlled using animation interpolators or follower nodes.

In X3D, camera functionality is primarily represented by the Viewpoint node. Viewpoint defines a specific location in the local coordinate system from which the user may view the scene. All subsequent changes to the viewpoint node's coordinate system change the user's view. Each Viewpoint includes a text description to assist user navigation and identify locations. The centerOfRotation field supports precise examination of objects. The Home key restores the original Viewpoint parameters by resetting local-user navigation steps. Applications can optionally provide an undo/redo history of user navigation steps.

An author can automatically move the user's view through the world by binding the user to a Viewpoint node and then animating either the Viewpoint node or the transformations above it. Such guided tours can be triggered by timers as well as user selection, proximity or visibility.

Here is the specification of the 23.4.6 Viewpoint node:

Viewpoint: X3DViewpointNode { 
SFBool [in] set_bind
SFVec3f [in,out] centerOfRotation 0 0 0 (-∞,∞)
SFString [in,out] description ""
SFFloat [in,out] fieldOfView π/4 (0,π)
SFBool [in,out] jump TRUE
SFNode [in,out] metadata NULL [X3DMetadataObject]
SFRotation [in,out] orientation 0 0 1 0 [-1,1],(-∞,∞)
SFVec3f [in,out] position 0 0 10 (-∞,∞)
SFBool [in,out] retainUserOffsets FALSE
SFTime [out] bindTime
SFBool [out] isBound
}

The NavigationInfo mode supplements Viewpoint information by specifying navigation type, transitionType between Viewpoints (LINEAR ANIMATE TELEPORT), transitionTime, user navigation speed (meters/sec), fieldOfView angle, view frustum parameters for near/far clipping plane, plus user avatar parameters for terrain following and object-collision standoff.

Note that the operation of all X3D nodes is defined in a device-independent manner. Authors can create scenes that work well on hand-held devices, desktop displays, headsets and immersive CAVE displays.

Relevant X3D components include 23 Navigation 19 Interpolation component 39 Followers component

Requirement 9: Bill of Material (BOM)

  • Formal Requirement. A selectable representation of the product structure (assembly Bill of Materials) should be displayed.

The product structure should be evident and individual parts and assemblies should be able to be displayed/highlighted by selecting from the product structure. The product structure representation shall be associated to the geometry representation, i.e. there is a bi-directional link between a part reference in the product tree and the corresponding part geometry.

  • Survey Description. The format provides data constructs such that an implementing system can define a selectable representation of the product structure (assembly Bill of Materials)

The product structure should be evident and individual parts and assemblies should be able to be displayed/highlighted by selecting from the product structure. The ability to support a bi-directional link between a part reference in an implementations product tree and the corresponding part geometry.


  • X3D response.

Authors and conversion tools can create X3D models directly from BOM listings.

The X3D 32 CAD Geometry component defines parts and assemblies:

    • The 32.4.1 CADAssembly node holds a set of assemblies or parts grouped together.
    • The 32.4.2 CADFace node holds the geometry representing a face of a part.
    • The 32.4.3 CADLayer node defines a hierarchy of nodes used for showing layer structure for the CAD model.
    • The 32.4.4 CADPart node is a grouping node that defines a coordinate system for its children that is relative to the coordinate systems of its ancestors.

X3D design includes several important and relevant capabilities:

    • Model metadata can be embedded directly in models or linked in external files.
    • Model catalogs (example) can be used to compose larger scenes of multiple Inline models.
    • XML encodings can greatly simplify the creation of X3D content by styling or converting XML-based BOM data directly into X3D.
    • Prototypes (author-defined node extensions) can codify design patterns to make best practices easily repeatable.
    • ExternProtoDeclare references facilitate the refinement and reuse of prototype declaration libraries, providing a more-powerful capability similar to macro definitions in earlier languages.

File:Parts small.jpg

Relevant X3D components include 7 Core, 32 CADGeometry

Requirement 10: Screen Capture

  • Formal Requirement. Capture the currently displayed image and save as another file. Users should be able to select from several neutral file types for the saved image.
  • Survey Description. An implementing system will be able to capture a displayed image of the data stored in the format and save it as another file type.

  • X3D response.

Printing or plotting the information displayed on the screen is performed by applications. X3D browsers generally integrate mechanisms to capture the rendered scene either by video recording or single-frame image capture. No internal mechanisms are defined that might prohibit image capture.

http://web3d.org/membership/login/groups/CAD/WikiImages/screenshot.JPG


Requirement 11: Measurement

  • Formal Requirement. Basic measurement capability would include the ability to get arbitrary point-to-point measurements.

Additional required functionality would include measurements relative to features such as Vertices (end of line), Lines (edge), Surfaces (face), and Parts. Advanced measurement includes distance along a curve or surface. The visualization tool should provide the capability to retrieve as much relevant information as possible, i.e., location, angle, size, area, volume, mass, etc. All measurements should be exact to model tolerance. The tool should measure in the unit of the native data.

  • Survey Description. Data stored in the format enables implementing systems to provide basic measurement capabilities such as
- arbitrary point-to-point measurements.
- measurements relative to features such as Vertices (end of line), Lines (edge), Surfaces (face), and Parts.
- the distance along a curve or surface.

The format should support the ability to store and retrieve as much relevant information as possible, i.e., location, angle, size, area, volume, mass, etc. The format will store data such that all measurements in an implementing system can be exact to model tolerance. The tool should support units of measure in the unit of the native data


  • X3D response.

X3D applications are capable of performing measurement tasks. X3D scene data is recorded using SI units, namely meters and radians.

    • X3D uses a Cartesian coordinate system in which three coordinate values (x, y, and z), stored as single-precision floating point values are sufficient to uniquely define any point in space.
    • Coordinate-frame transformation mechanisms are consistent throughout the X3D specification.
    • By providing an exact model of an object, proposed BREP representations might allow applications to perform measurements on parts length/area/volume/weight. This extension capability is currently defined and under working-group review, and thus is on track for implementation, evaluation and inclusion in the next version of X3D.
    • The 25 GeoSpatial component in X3D includes a variety of coordinates systems for positioning X3D objects using double-precision geospatial locations.

File:Measurement small.jpg

Authors can also embed Inline scenes, scripts or prototype widgets within a scene to facilitate end-user measurement via any X3D browser. Example scene follows GridsExample.x3d, along with a corresponding example user-modified version of the same scene showing embedded measurement capabilities: GridsExampleMeasurement.png. Embedded touch sensors enable users to toggle measurement grids on/off, and to drag graphs along their respective centerline axes in order to facilitate visual measurement of irregular dimensions. Coordinate values for each grid are updated via Script node calculations in EcmaScript, all in response to end-user manipulations of the X3D scene in an ordinary X3D browser.

http://web3d.org/membership/login/groups/CAD/WikiImages/GridExampleMeasurementInstantReality.png

Relevant X3D components include 7 Core, 12 Shape, 32 CAD Geometry, 35 Layering, 36 Layout

Requirement 12: Sectioning

  • Formal Requirement. Sectioning capabilities are critical to the ability to conduct upfront design evaluations. Viewers should have the greatest number of options possible for sectioning a part or assembly.

Critical functionality includes relative-to-model orientation (body position), radial sections (sections cut perpendicular to a curve relative to view position), true radial section (perpendicular to a curve or surface), and parallel to a surface. Should have the capability to drag the section plane through the part and have the section view update dynamically.

  • Survey Description. Format data definition must allow for the following tasks relative to section creation:
- relative-to-model orientation (body position)
- radial sections (sections cut perpendicular to a curve relative to view position)
- true radial section (perpendicular to a curve or surface)
- parallel to a surface.

The format cannot prevent an implementation from providing the capability to drag the section plane through the part and have the section view update dynamically.


  • X3D response.

In X3D, sectioning can be done by 11.2.4 Clip planes ( defined in 11 Rendering component). A clip plane is defined as a plane that generates two half-spaces. The affected geometry in the half-space that is defined as being outside the plane is removed from the rendered image as a result of a clipping operation. As a result a clip plane coordinates can undergo an arbitrary transformation and interactively cut an object either in its local coordinates space (i.e. perpendicular radial section), or in the global coordinates system (i.e. an arbitrary section).

File:Sectioning small.jpg

Relevant X3D components include 10 Grouping, 11 Rendering

Requirement 13: Compare

  • Formal Requirement. Identify differences between parts or versions of the same part.
  • Survey Description. Format data allows implementers to identify differences between parts or versions of the same part

  • X3D response.

Versioning and comparison is possible using X3D mechanisms for metadata and node identification, along with other external mechanisms.

    • In X3D, document-level metadata is supported by head and meta tags identical to HTML. Document-level versioning metadata typically follows Dublin Core (or other) conventions. Examples: <meta name="created" content="1 January 2003"/> <meta name="modified" content="1 January 2009"/>
    • Per-node 7.2.4 Metadata can be embedded in models so that relevant information is stored as an corresponding part of object geometry. This mechanism potentially allows versioning.
    • Version control is also easily accomplished using the XML encoding (or ClassicVRML encoding) via Subversion, CVS, etc. Some X3D tools (such as X3D-Edit) and most XML tools offer such support.
    • X3D models can be inlined and referenced via PHP or other server-side scripting mechanisms, enabling three-tier architectures as well as either database retrieval or data-driven creation of X3D models

These mechanisms allow easier maintenance of 3D scenes containing similar parts or objects. These capabilities also simplify the construction of 3D model catalogs. A 3D scene can then instantiate these objects by referencing the catalog entry, making it easier to identify different parts of assemblies, replace a part from an assembly, or perform version-based identification (and perhaps replacement) for parts in an assembly.

Identification and reuse of nodes or node groups via DEF/USE mechanisms avoids the need to check versions within a single scene, supporting copy-by-reference semantics.

    • In X3D, an object referencing mechanism allows arbitrary use of a previously declared object. When a node is given a DEF name, that name is an identification label that is unique in the file. USE names refer back to the unique node with the original DEF name.

Relevant X3D components include 7 Core

Requirement 14: Markup

  • Formal Requirement. Add markups to the 3D images so that they can be saved or printed and distributed to others. Minimum capabilities will include text and basic drawing functions such as circles and lines.

Visualization tools should also give users the option of anchoring markups so that when the models are rotated, the markup maintains its original relationship with the model. Advanced functionality would include common symbols used in the engineering environment, i.e., Geometric Dimensioning, Tolerancing and Rubber Stamping.

  • Survey Description. Format provides for storage of markups to the 3D images so that they can be saved or printed and distributed to others.

- markups to include text and basic drawing data such as circles and lines. - support for anchored markups so that when the models are rotated, the markup maintains its original relationship with the model. - support for common symbols used in the engineering environment i.e., GD&T and Rubber Stamping


  • X3D response.

X3D supports labeling with the following elements:

As with several other requirements in this document, embedded or externally referenced metadata values can facilitate such constructs. All internal X3D scene metadata is typed (integer, float, double, string or set). Unlike comments or document metadata, such embedded metadata is persistent and must be retained during run-time so that it remains available to applications. The creation of markup-related prototype nodes to expose and render such data allows authors to make markup capabilities portable within a scene, as a helpful alternative to depending solely on applications to provide such capabilities.

http://web3d.org/membership/login/groups/CAD/WikiImages/markup.JPG

Relevant X3D components include 7 Core, 13 Geometry3D, 14 Geometry2D, 15 Text, 23 Navigation

Requirement 15: Collaboration

  • Formal Requirement. Present and share the capabilities of the visualization tools in real time with others over a network
  • Survey Description. Format supports the ability present and share the capabilities of the visualization tools in real time with others over a network

  • X3D response.

Collaboration among users viewing 3D scenes has been implemented in several projects.

Simple yet effective collaboration techniques are also possible simply by refreshing URL connections within scenes.

http://web3d.org/membership/login/groups/CAD/WikiImages/shareX3D.JPG

DisEspduTestPanelDemo.png

Relevant X3D components include 9 Networking, 28 Distributed interactive simulation (DIS)

Requirement 16: Transformation/Manipulation

  • Formal Requirement. Move parts from their original position to a new position. Functionality includes scale, drag, alignment, rotate, and transform relative to fixed axis.

Additional functionality will allow the users to rotate and transform relative to a particular feature. This function is only for visualization and will not change the master assembly definition.

  • Survey Description. Enable the storage of data that allows implementers to move parts from their original position to a new position.

- Includes scale, drag, alignment, rotate, and transform relative to fixed axis. Allow implementers to rotate and transform relative to a particular feature. - Must be able to perform this function without changing the master assembly definition.


  • X3D response.

In X3D, transformation and manipulation of collections of objects is accomplished by nodes defined in the X3D 10 Grouping component. The 10.4.4 Transform node defines a local coordinate system in the scene graph, translated rotated and scaled (perhaps nonuniformly) relative to its parent coordinate system. The adjusted coordinate system applies to every child of the node.

Specifically the Transform node defines a geometric 3D transformation consisting of (in order):

    • a (possibly) non-uniform scale about an arbitrary point;
    • a rotation about an arbitrary point and axis;
    • a translation.

Transformation details follow. Given a 3-dimensional point P and Transform node, P is transformed into point P' in its parent's coordinate system by a series of intermediate transformations. In matrix transformation notation, where C (center), SR (scaleOrientation), T (translation), R (rotation), and S (scale) are the equivalent transformation matrices.

P' = T * C * R * SR * S * -SR * -C * P

The following Transform node represents the preceding transformation:

Transform {
center C
rotation R
scale S
scaleOrientation SR
translation T
children [
# Point P (or children holding other geometry)
]
}

This transformation is functionally equivalent to the general capabilities provided by 4x4 transformation matrices. Multiple Transform nodes can be nested to accomplish a composite transformation. Transform fields are directly animatable by type-specific value interpolators or user-defined scripts.

http://libx3d.sourceforge.net/tree/classX3D_1_1Transform__coll__graph.png

A rich set of user-interaction sensors permit authors to design content-specific manipulation modes for end users. Manipulators include PlaneSensor, CylinderSensor, SphereSensor, KeySensor and StringSensor. Sensors are hardware-device independent (i.e. mouse, laser pointer, wand, arrow keys, etc.) and include descriptive text to guide users. Sensor manipulation response can also distinguish between pointer hovering, pointer selection and pointer dragging.

As noted elsewhere, X3D interface nodes are defined in a device-independent way that allows authors to build scenes that render and interact well using all manner of interactive display devices.

The following example UserInteractivitySensorNodes.x3d shows before and after changes from user manipulation, including a TouchSensor which changes background color.

http://web3d.org/membership/login/groups/CAD/WikiImages/UserInteractivitySensorNodes.png http://web3d.org/membership/login/groups/CAD/WikiImages/UserInteractivitySensorNodesModified.png

Relevant X3D components include 10 Grouping, 20 Pointing device sensor, 22 Environmental sensor

Requirement 17: Grouping

  • Formal Requirement. Create groups of parts or assemblies that can be acted on as one. This function is only for visualization and will not change the master assembly definition.
  • Survey Description. Allow implementers of the format to create groups of parts or assemblies that can be acted on as one. Implementation of this functionality must not change the master assembly definition.

  • X3D response.

This is handled by the 10 Grouping component in X3D, which defines a common parent geometry that need to be grouped. There are several forms of grouping nodes for different situations. Additional CAD-specific grouping nodes are provided in the CAD component: CADAssembly, CADFace, CADLayer, and CADPart (described earlier in this document).

http://libx3d.sourceforge.net/tree/classX3D_1_1Group__coll__graph.png

Relevant X3D components include 10 Grouping, 32 CAD Geometry

Requirement 18: Animation

  • Formal Requirement. Create animations of one or more parts moving with respect to one another (e.g., simulating the assembly or disassembly process, mechanisms movement).
  • Survey Description. Format supports the creation of animations of one or more parts moving with respect to one another i.e., simulating the assembly or disassembly process, mechanisms movement

  • X3D response.

Thorough animation capabilities are provided by X3D for every aspect of the scene graph.

    • Similarly sequencer nodes are defined for animating discrete (integer or boolean) values.
    • Script nodes can define functional triggers and responses for animating any typed values in the scene graph, including the creation of new node sets.
    • Movement of parts with respect to one another is handled by the scene transformation hierarchy defined by embedded Transform nodes. Every 10.4.4 Transform node defines a local coordinate system relative to its parent, with properties that only affect its children.

Relevant X3D components include 7 Core, Grouping, Interpolation component, Scripting component, Event utilities component

Requirement 19: Annotation Association

  • Formal Requirement. CAx entities linked to a selected annotation (dimension, tolerance, note, etc.) should be highlighted
  • Survey Description. Format supports the ability for CAx entities to be linked to a selected annotation e.g. dimension, tolerance, note, etc. should be able to be highlighted

  • X3D response.

For annotations, see Requirement 14 (markups). Highlighting CAx entities according to selected annotation can be done by applications programmatically, or by authors explicitly, using the X3D event-routing system for animation. As with several other responses, the use of embedded or external metadata, in combination with application-specific functionality or embedded Prototype node extensions, can be applied to perform annotation association tasks.

Explanation details follow. The event model of X3D allows the declaration of connections between fields (routes) and a model for the propagation of events along those connections. The behaviour graph is the collection of these field connections. It can be changed dynamically by rerouting, adding or breaking connections. Events are injected into the system and propagate through the behavior graph in a well defined order. The ability to select an annotation can be done by picking (see I.5: Display selection and edition). Parts that have to be highlighted when an annotation is selected can be identified by routing events from an event sending node (e.g., a 20.4.4 Touch sensor node), to the actual part node, through a behaviour node (e.g., a 19.4.1 Color Interpolator node).

The semantics of the 7.2.5.6 ROUTE statement are specified in the 7 Core component.

http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Images/ConceptualExecutionModel.png

Relevant X3D components include 7 Core, 12 Shape, 20 Pointing device sensor, 38 Picking sensor

Requirement 20: Clearance & Interference Analysis

  • Formal Requirement. Perform analysis of clearances and interferences of parts in assemblies.

The visualization tool will then report the clearance values. Advanced functionality will display areas on parts where clearance conditions are violated. Visualization tools should show users where clearances were violated or when contacts or interferences occurred.

  • Survey Description. Format supports retention of data required to perform analysis of clearances and interferences of parts in assemblies.

Data is available to support implementers in providing advanced functionality which will display areas on parts where clearance conditions are violated. Data is available that supports implementers of Visualization tools to show users where clearances were violated or when contacts or interferences occurred


  • X3D response.

Native support is not directly required in the X3D Specification for Clearance & Interference Analysis.

Similarly to previous requirement, a routing pipeline with scripted and reactive input/response functions can be defined in X3D to handle clearance and interference analysis. Collision nodes can be used to generate events when viewer and objects collide, and can be used to designate that certain objects should be treated as transparent to collisions. Support for inter-object collision is not specified in X3D Core.

Nevertheless, the 37 Rigid Body Physics component allows authors and application developers to animate their environments using real-time rigid-body physics engines. This makes scene objects to respond correctly to each other and the user in a non-scripted fashion, with physical responses that integrate collision detection with friction and forces.

Thus applications can offer relevant functionality, while authors can further create and embed such functionality directly within relevant scenes.

Relevant X3D components include 7 Core, 23 Navigation, 37 Rigid body physics

Requirement 21: View Annotation

  • Formal Requirement. View 3D annotations (i.e., Dimensions, notes, geometric and dimensional tolerances, PMI, symbols...) created in the native CAx models.
  • Survey Description. Format implementers area able to store data that supports the View of 3D annotations i.e., Dimensions, notes, geometric and dimensional tolerances, PMI, symbols ... created in the native CAx models.

  • X3D response.

See Requirement 14 (Markups) Text nodes and indeed any geometry can be used as an annotation. X3D can instantiate custom prepared geometries from a catalog (4.4.3 DEF/USE semantics, 9.4.2 Inline node). To have 3D annotations, one would have to build a catalog of such annotations, using the representation function of X3D. (Geometry primitives, 18 Texturing, 15 Text, animations)

Of particular relevance is that Viewpoint, OrthoViewpoint and ViewpointGroup nodes can organize or indicate view annotations when they are applied as description strings. Applications are permitted to offer such descriptions in any appropriate manner (including text-to-speech auralization).

Relevant X3D components include 7 Core, 11 Rendering, 13 Geometry3D, 14 Geometry2D, 15 Text, 18 Texturing, 23 Navigation, 35 Layering, 36 Layout

Requirement 22: Performance Settings

  • Formal Requirement. Optimize the application and the way it works with the particular data set. Performance settings may allow users to automatically reduce the complexity of the model when it is being manipulated. The Levels of Details (LODs) the user requires may influence performances.
  • Survey Description. Provide constructs for Levels of Detail such that implementers can Optimize their application and the way they work with the particular data set. The format should support performance settings which allow users to automatically reduce the complexity of the model when it is being manipulated.

  • X3D response.

There are a large number of ways to reduce scene complexity and improve rendering performance of complex scenes in X3D. Many of these methods can be suggested or applied automatically by authoring tools.

    • Multiple equivalent shapes having varied fidelity and resolution can be used to perform dynamic level of detail (LOD)
    • Switch node can select a single appropriate child group containing geometry, or else select/render no child group
    • Decreasing the frustum back plane distance (i.e. NavigationInfo visibilityLimit) to hide objects which are beyond the usable or practical range of the camera
    • In X3D, the frustum back clipping plane distance is defined by 23.4.4 NavigationInfo node, in 23 Navigation component. Geometry beyond the visibilityLimit may not be rendered. A value of 0.0 indicates an infinite visibility limit.
    • Level of details is explicitly specified thanks to the eponymous node, 23.4.3 LOD (also in Navigation component). It allows to set which parts will be shown at an arbitrary distance from the camera. Authors can indicate whether transition distances are applied as optimization hints to the browser, or else strictly enforced to guarantee consistently predictable switching.
    • Geometry nodes in various X3D profiles have been carefully chosen to allow autoreduction of geometry constructs into forms supported by the high-performance Interachange and Interactive Profiles

Relevant X3D components include 23 Navigation 10 Grouping

Requirement 23: Standard View Creation

  • Formal Requirement. Define and save standard views on the computer, i.e., side view, plan view, rear view, die view, etc.
  • Survey Description. Provides for data constructs that define and save standard views on the computer, i.e., side view, plan view, rear view, die view, etc.

  • X3D response.

The 23.4.6 Viewpoint and 23.4.5 OrthoViewpoint nodes, in the 23 Navigation component, define a specific location in the local coordinate system from which the user may view the scene. Viewpoints can be stacked in order to define a list of view from standard locations relative to the object (front, rear, side, etc.)

ViewpointGroup nodes can collect and display (or hide) multiple child Viewpoint, OrthoViewpoint and ViewpointGroup nodes. This facilitates focused display and selectability of view description strings in large scenes.

http://web3d.org/membership/login/groups/CAD/WikiImages/viewpoints.JPG

Some Implementations also allow to have multiples views at the same time, just like on any traditional CAD design system. File:StdViews small.jpg

Relevant X3D components include 23 Navigation

Requirement 24: Create Reference Planes

  • Formal Requirement. Create reference planes on the model that can be used to perform functions relative to them such as measurement, sectioning, viewing, etc
  • Survey Description. Format provides data which can be used to create reference planes on the model

The reference plane data should allow implementers to provide functionality that can be used to perform functions relative to them such as measurement, sectioning, viewing, etc.


  • X3D response.

The 10.4.4 Transform node can be used to create convenient local coordinate systems which can then be used to define geometry. In addition, the 25 Geospatial component is being augmented to support spatial reference frames that inherently include reference planes (e.g., tangent planes).

Relevant X3D components include 7 Core, 10 Grouping, 25 Geospatial

Requirement 25: Area Selection Filter

  • Formal Requirement. Specify a bounding box to identify parts. Users should have a minimum of 2 options: select completely inside or partially inside. The third option, select part that cross the boundary, is highly desirable.
  • Survey Description. Implementers of the format will be able to specify a bounding box to identify parts with a minimum of 2 options: select completely inside, and select partially inside. An optional option would be to select a part that crosses a boundary.
  • X3D response.

Geometric shapes can be selected and activated by users via a TouchSensor. Alternatively transparent geometry can be placed around collections of irregular objects (such as text) to facilitate selecting objects of interest. This is a general technique.

Further functionality is available using picking sensors: LinePickSensor, PickableGroup, PointPickSensor, PrimitivePickSensor and VolumePickSensor.

Relevant X3D components include 22 Environmental sensor, 23 Navigation, 38 Picking sensor

Requirement 26: Entity Selection Filter

  • Formal Requirement. Select the type of feature to be used in some other visualization operation. This makes it much easier to select a particular feature for manipulation.
  • Survey Description. Implementers of the format will be able to specify a bounding box to identify parts with a minimum of 2 options: select completely inside, and select partially inside. An optional option would be to select a part that crosses a boundary

  • X3D response.

The PickableGroup provides for identifying children as being of a given classification of picking types, thus enabling this capability.

Applications and authors can also build such functionality using sensor nodes for geometry, Anchor links for connecting URL pages or viewpoints to selected geometry, embedded or external metadata, and scripts or prototype node extensions for implementing desired operations.

Relevant X3D components include 7 Core, 9 Networking, 23 Navigation, 29 Scripting

Requirement 27: Visualization File Attributes

  • Formal Requirement. Data specific to the creation of the visual representation (e.g., date and time translated, CAx file name, etc) should be available. Specific data associated with the product is covered by N°4 including any data quality stamps.
  • Survey Description. Format provides for data specific to the creation of the visual representation i.e. date and time translated, CAx file name, data quality stamps, etc.

  • X3D response.

In X3D, there are several ways of storing such information. In all cases, such information is considered to be metadata. Metadata can be global as shown in the two examples below. In addition, every node in X3D has the ability to have type-specific metadata attached. Thus, requirements that apply only to a portion of visual presentation can be specified locally.

    • Metadata can be stored in the file header, as shown on the following example: <head>
<meta name='title' content='Digitoxigenin.x3d'/>
<meta name='description' content='Autogenerated version of Digitoxigenin.x3d scene produced from Digitoxigenin.xml Chemistry Markup Language (CML) source file.'/>
<meta name='creator' content='Nicholas F. Polys'/>
<meta name='created' content='24 November 2005'/>
<meta name='modified' content='1 December 2008'/>
<meta name='reference' content='Digitoxigenin.xml'/>
<meta name='CML version' content='1.0'/>
<meta name='reference' content=' CML sources http://www.xml-cml.org '/>
<meta name='reference' content='JUMBO Chemical Format Conversion Tool'/>
<meta name='reference' content=' http://webbook.nist.gov/chemistry '/>
<meta name='reference' content='Polys.StylesheetTransformationsInteractiveVisualization.Web3d2003Symposium.pdf'/>
<meta name='reference' content='Originally Published in Proceedings of Web3D 2003, ACM Press'/>
<meta name='generator' content='CmlToX3d.xslt'/>
<meta name='identifier' content=' http://www.web3d.org/x3d/content/examples/Basic/ChemistryMarkupLanguage/Digitoxigenin.x3d '/>
<meta name='license' content='../../license.html'/>
</head> 
[...]
    • Typed internal metadata nodes include MetadataString, MetadataInteger, MetadataFloat, MetadataDouble, and MetadataSet (which can contain multiple other Metadata nodes). This is the primary mechanism for embedding scene-persistent metadata.
    • Metadata can also be stored on the specific 7.4.6 WorldInfo node, as in the following example:
<?xml version="1.0" encoding="UTF-8" ?>
<X3D profile='Immersive'>
<Scene>
<WorldInfo info='
"author : "
"tool : Google SketchUp 7.0.8657"
"created : 2009-02-05T19:56:36Z"
"copyright: "
"comments: " '/>
[...]

Note that the WorldInfo approach is an older and less-capable construct for embedded metadata that was carried forward from VRML97. Unlike Metadata nodes or XML-encoded name=value pairs, the WorldInfo info string is not easily parsed or validatable.

Relevant X3D components include 7 Core

Requirement 28: Interrogation

  • Formal Requirement. Interrogate product structure and GD&T (Geometric Dimensioning and Tolerancing)
  • Survey Description. Format provides for data that allows implementers to interrogate product structure and GD&T (Geometric Dimensioning and Tolerancing)
  • X3D response.

In its XML expression, XML tools can be used for interrogating the model. For instance, the project "3DSEAM: a model for annotating 3D scenes using MPEG-7", have been making extensive use of XPATH to interrogate X3D scenes.

Here is an extract: "The Structural Localization uses the structure of a document in order to indicate the document entries that correspond to the object. For instance, if the document has an XML-like hierarchical structure, a structural localization can be composed of a series of XPATH expressions. As an illustration, let us consider the scene described in the following code. The localization of the first floor of the White building can be defined by the following XPATH expressions: /X3D/Scene/Transform/Group[@DEF='WHITE']/Transform[position()=1]"

<X3D profile="Core" ...>
<Scene>
<Transform>
<Group DEF="WHITE">
<Transform DEF="WHITE1st"
translation="-23 1 -12" scale="2 1 12">
...
</Transform>
<Transform DEF="WHITE2nd"
translation="-23 3 -12" scale="2 1 12">
...
</Transform>
<Transform DEF="WHITE3rd"
translation="-23 5 -12" scale="2 1 12">
...
</Transform>
<Transform DEF="WHITE4th"
translation="-23 7 -12" scale="2 1 12">
...
</Transform>
</Group>
<Group DEF="BLUE">
...
</Group>
<Group DEF="RED">
...
</Group>
<Group DEF="ROADS">
...
</Group>
</Transform>
</Scene>
</X3D>

Which represents the following scene: http://web3d.org/membership/login/groups/CAD/WikiImages/scene.JPG

Note that these capabilities are available due to carefully constructed compatibility with XML standards. Such query and interrogation features are optional and not required by X3D.

Relevant X3D components include 7 Core as well as the Scene access interface (SAI)

Requirement 29: Instances

  • Formal Requirement. View multiple instances of a single part in an assembly
  • Survey Description. The format does not prevent the implementation for view of multiple instances of a single part in an assembly.

  • X3D response.

See Requirement 13 (Compare) for a similar discussion.

    • In X3D, an object referencing mechanism allows arbitrary use of a previously declared object. When a node is given a DEF name, that name is an identification label that is unique in the file. USE names refer back to a node with a DEF name.
    • This mechanism allows easier maintenance of 3D scenes containing similar parts or objects. It also allows to build 3D models catalogs. A 3D scene can then instantiate these objects by referencing the catalog entry, making it easier to identify different parts of assemblies, replace a part from an assembly or doing version control over parts of an assembly.
    • Typically only one viewpoint is bound at a time in a single view, but applications showing multiple simultaneous views are not precluded or prevented.
    • Additionally, a single part can be reliably represented in different views using the Layering and Layout components.

One such example is shown on the following picture.

http://web3d.org/membership/login/groups/CAD/WikiImages/multipleViews.JPG

Relevant X3D components include 7 Core

Requirement 30: External References

  • Formal Requirement. Visualization of externally referenced parts, drawn from a product library.
  • Survey Description. Format supports data that enables the visualization of externally referenced parts, drawn from a product library.

  • X3D response.

In X3D, rendered objects can be stored for use by multiple scenes. This is done via 9.4.2 Inline node. An Inline node loads one X3D scene into another.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.1//EN" "http://www.web3d.org/specifications/x3d-3.1.dtd">
<X3D profile='Immersive' version='3.1' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance'
xsd:noNamespaceSchemaLocation=' http://www.web3d.org/specifications/x3d-3.1.xsd '>
<head>
</head>
<Scene>
<Inline url=' "http://X3dGraphics.com/examples/X3dForWebAuthors/KelpForestExhibit/KelpForestMain.x3d" '/>
</Scene>
</X3D>

The 9.4.1 Networking component also provides support for the 9.4.1 Anchor grouping node. Such a node retrieves the content of a URL when the user activates (e.g., clicks) some geometry contained within the Anchor node's children. Anchor links can refer to a named viewpoint in the scene, a new external X3D scene, or a new external resource (such as an HTML page). Anchor links for X3D can be targeted for presentation within the currently displayed window, or else launched into a separate frame.

Direct support is also defined for images, movies, audio clips and HTML. Support for any other media type is allowed if the implementing X3D viewer supports it. Viewers encountering unfamiliar media types can relay them to an external Web browser.

Note that X3D url strings are actually ordered lists. This permits more than one address to be given for a specific resource, greatly improving reliability. Browsers try each url value in order until a successful retrieval occurs. This flexibility also allows interesting techniques such as preferential loading of local or online resources.

Relevant X3D components include 7 Core, 9 Networking

Requirement 31: Accuracy

  • Formal Requirement. The interrogation of measurements from the visualization model should deliver the same results as interrogation from the original CAD model, within a known tolerance.
  • Survey Description. Stored data supports the interrogation of measurements from the visualization model which deliver the same results as interrogation from the original CAD model, within a known tolerance.

  • X3D response.

Such data is stored in strongly typed metadata nodes as received and is returned in the same form. Supported metadata types are String, Integer, single-precision Float, double-precision Double and MetadataSet collections.

Relevant X3D components include 7 Core

Requirement 32: Kinematics

  • Formal Requirement. Support the kinematics of assemblies.
  • Survey Description. Format supports storage of data which allows implementers to provide kinematics motion with assemblies.

  • X3D response.

Connected physical systems can be represented by animated transformations, follower nodes or Rigid Body Physics nodes. Geometric sub parts can be linked between each other with transforms. X3D can define animations and interpolations as scene-graph modifications and thus permits:

    • Definition of timeline
    • Scalar value interpolation
    • Color value interpolation
    • Position interpolation
    • Orientation Interpolation
    • Normal Interpolation

Kinematics can also be implemented using the Script node or the Follower nodes.

Additionally the IEEE DIS component EspduTransform includes networked distribution of first-order kinematics and second-order dynamics terms among multiple participating scenes.

Relevant X3D components include 7 Core, 8 Time, 19 Interpolation

Requirement 33: Rendering Modes

  • Formal Requirement. Support different rendering styles of the model based on the original properties held in the CAD system, noting the various technologies available.
  • Survey Description. Format provides support for different rendering styles of the model based on the original properties held in the CAD system.

  • X3D response.

Rendering style can be set at application level. Wireframe, points cloud rendering of geometry is a special feature offered by some browsers and cannot be set by an X3D author.

On the other hand, rendering can be altered within the 3D scene definition by loading custom GPU code fragments, known as shaders. The 31 Programmable shaders component defines procedural shaders in X3D. They can define both appearance and light sources relative to the objects.

Bump mapping and other shader effects are available using the Shader component. The following example is shown using the BSContact browser:

http://web3d.org/membership/login/groups/CAD/WikiImages/bump.JPG

A wide variety of rendering capabilities are thus possible, including (but not necessarily limited to) lighting effects, LineProperty/FillProperty highlighting, point/wireframe/shaded rendering, etc. Special techniques such as nonphotorealistic rendering and raytracing are also possible but typically are application specific.

Relevant X3D components include 7 Core, 31 Programmable shaders, browser-specific methods.

Requirement 34: Lighting Control

  • Formal Requirement. Change and control the number and types of lights and environment illuminating the scene.
  • Survey Description. Format supports the storage of data which enables the change and control of the number and types of lights and the environment illuminating the scene.

  • X3D response.

In X3D, the 17 Lighting component delivers ways to define light sources. Light sources interact with geometry nodes ([http://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/shape.html#Shape 12.4.5 Shape nodes). Shape nodes are illuminated by the sum of all of the lights in the world that affect them. A minimum of eight lights must be supported. See reference for further information about X3D illumination model. The following node types are light source nodes:

  • DirectionalLight
  • PointLight
  • SpotLight

The characteristics of these nodes are specified in the 17 Lighting component. Both local and global scope are allowed for optimizing performance. Lights can easily be animated on/off. Full control is available for intensity, ambient contributions, etc.

http://libx3d.sourceforge.net/tree/classX3D_1_1X3DLightNode__inherit__graph.png

Relevant X3D components include 17 Lighting, 18 Texturing, 31 Programmable shaders

Requirement 35: Data Format Footprint

  • Formal Requirement. The format should be significantly smaller than the original CAD data. This will enable the data to be used on smaller office automation computers instead of engineering workstations.
  • Survey Description. The format should be significantly smaller than the original CAD data. This will enable the data to be used on smaller office automation computers instead of engineering workstations.

  • X3D response.

In X3D, this is achieved by supporting file compression using the ISO/IEC 19776-3:2007 X3D Compressed binary encoding, which allows 3D scenes to be more easily exchanged.

This part of ISO/IEC 19776 uses Fast InfoSet to serialize and compress an X3D document. It uses several techniques that reduce the size of an X3D document and that increase the speed of creating and processing such documents. These techniques are based on the use of vocabulary tables that allow small (typically) integer values (i.e. vocabulary table indexes) to be used instead of character strings.

http://nb.vse.cz/~zelenyj/it442/eseje/xzmej02/fast-infoset.gif

Geometric compression techniques using the Deering algorithms are also defined and supported for use with X3D compressed binary encoding.

Requirement 36: Persistence of Visualization Information

  • Formal Requirement. The format should support the capability to save the current state of the visualization, including annotation, transformations, viewing parameters and rendering applied by the visualization tool.
  • Survey Description. The format should support the capability for implementers to save the current state of the visualization, including annotation, transformations, viewing parameters and rendering applied by the visualization tool.

  • X3D response.

In X3D, viewing parameters can be save within the scene as either a 23.4.6 Viewpoint node or a 23.4.5 OrthoViewpoint, that will be stacked in the browser's list of accessible viewing parameters.

Viewpoint: X3DViewpointNode { 
SFBool [in] set_bind
SFVec3f [in,out] centerOfRotation 0 0 0 (-8,8)
SFString [in,out] description ""
SFFloat [in,out] fieldOfView p/4 (0,p)
SFBool [in,out] jump TRUE
SFNode [in,out] metadata NULL [X3DMetadataObject]
SFRotation [in,out] orientation 0 0 1 0 [-1,1],(-8,8)
SFVec3f [in,out] position 0 0 10 (-8,8)
SFBool [in,out] retainUserOffsets FALSE
SFTime [out] bindTime
SFBool [out] isBound
}

The Viewpoint node defines a viewpoint that provides a perspective view of the scene. A perspective view is one in which all projectors coalesce at position.

The fieldOfView field specifies a preferred minimum viewing angle from this viewpoint in radians. A small field of view roughly corresponds to a telephoto lens; a large field of view roughly corresponds to a wide-angle lens. The field of view shall be greater than zero and smaller than π. The value of fieldOfView represents the minimum viewing angle in any direction axis perpendicular to the view.

It is important to note that such an approach is easily generalized. X3D is an expressive language and all user-defined parameters created in the player might be saved as accompanying X3D markup. Nevertheless some state information in a live scene is transient, often depending on preceding user interactions, and thus cannot be persistently saved.

Relevant X3D components include 23 Navigation, 29 Scripting and the Scene access interface (SAI)

Additional considerations

This section lists additional X3D merits relevant to CAD visualization.

Standardization

X3D is already a widely adopted set of ISO/IEC standards. The standards include:

  • the abstract specification of the X3D scene graph semantics,
  • programmable access via the scene access interface,
  • three scene graph encodings (XML, Classic VRML, and Compressed binary), and
  • two language bindings to support scripting and external scene access (ECMAScript and Java).

X3D also has maintained complete backwards compatibility with the Virtual Reality Modeling Language (VRML97), International Standard ISO/IEC 14772-1:1997.

Additional X3D encodings and language bindings can be developed as needed, either for local or standardized use.

The Web3D Consortium also has formal liaison relationships with the following standards organizations. Maintaining Web interoperability is a charter goal for X3D.

Each year Web3D partners with ACM Special Interest Group on Graphics (SIGGRAPH) to cosponsor the annual Web3D Symposium series.

Of particular note to TC184 Visualization Requirements for CAD is that the Web3D Consortium intends to continue our collaboration with Khronos to maximize potential suitability for these capabilities when using Collada and X3D in combination.

Multiple Implementations

Open-source as well as private commercial implementations are available for X3D. Known implementations include

  • BSContact, BitManagement
  • Flux Player, Media Machines
  • FreeWRL, Communications Research Centre – Canada
  • Heilan X3D Browser
  • instantreality, Fraunhofer
  • libX3D
  • nexus3d
  • Octaga Player, Octaga
  • Vivaty Player, Vivaty
  • X3DToolKit, INRIA
  • Xj3D, Yumetech

Numerous Resources

Several thousand X3D example scenes are available on the X3D Resources page, offered under an open-source license.

Excellent books are available for learning X3D and VRML, including online chapters regarding X3D Technical Introduction and X3D Metadata.

Twice each year the Web3D Consortium issues an X3D Showcase DVD for outreach to members and interested individuals.

A continuing list of case studies and announcements demonstrate steadily growing support for X3D.

Intellectual Property Rights (IPR) Considerations

The Web3D Intellectual Property Rights (IPR) Policy is similar to those for many other Web standards, and includes the following key strengths.

  • Royalty Free (RF)
  • Well-defined and rigorous with multiple implementations and numerous example scenes
  • Well-established and proven Web3D Consortium working group process. Membership is required for contributing to the X3D Specification.
  • Working group recommendations are first approved by Web3D members, then sent to ISO for final review.
  • At least two independent implementations are required for each capability
  • Patented IPR can be considered, but only if declared in advance and only if the contributor agrees to offer the patented capability for royalty-free X3D use if accepted

Web3D Consortium membership is unrestricted and open to companies, government agencies, educational institutions.

X3D CAD Component Revision in Progress

The X3D CAD Working Group is adding several significant new capabilities to the X3D CAD Component.

  • BREPS
  • NURBS-based implicit surfaces

Expected timeline:

  • Second-round draft under review, accessible to Web3D Consortium members
  • Penultimate draft working group review and initial implementation at Web3D 2009 Symposium in June 2009
  • Final draft submitted to Web3D Consortium members at SIGGRAPH 2009
  • Upon approval, submission to ISO/IEC JTC 1 SC24

W3C Efficient XML Interchange (EXI)

Web3D Consortium is participating in the Efficient XML Interchange (EXI) working group of the World Wide Web Consortium (W3C). EXI provides near-optimum compression and improved decompression performance of XML.

EXI is in Last Call Working Draft status. The X3D group expects to utilize EXI as an improved future version of the X3D Compressed Binary Encoding. Such a transition will consist of a simple replacement of the currently used ISO Fast Infoset (FI) standard with EXI, with forward compatibility guaranteed via conversion to/from XML.

Acknowledgement

The X3D CAD Working Group is grateful for this opportunity to contribute and will continue to progress. Thanks for all review comments and feedback.