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

Annex C

(normative)

Interactive profile

--- X3D separator bar ---

cube C.1 General

This annex defines the X3D components that comprise the Interactive profile. This includes not only the nodes that shall be supported but also which fields in the supported nodes may be ignored.

This profile is targeted towards:

cube C.2 Topics

Table C.1 provides links to the major topics in this annex.

Table C.1 — Topics

cube C.3 Component support

Table C.2 lists the components and their levels which shall be supported in the Interactive profile. Tables C.2 and C.3 describe limitations on required support for nodes and fields contained within these components.

Table C.2 — Components and levels

Component Level Reference
Core 1 7.5 Support levels
Time 1 8.5 Support levels
Networking 2 9.5 Support levels
Grouping 2 10.5 Support levels
Rendering 3 11.5 Support levels
Shape 1 12.5 Support levels
Geometry3D 3 13.4 Support levels
Lighting 2 17.5 Support levels
Texturing 2 18.5 Support levels
Interpolation 2 19.5 Support levels
Pointing device sensor 1 20.5 Support levels
Key device sensor 1 21.5 Support levels
Environmental sensor 1 22.5 Support levels
Navigation 1 23.4 Support levels
Environmental effects 1 24.5 Support levels
Event utilities 1 30.5 Support levels

cube C.4 Conformance criteria

Conformance to this profile shall include conformance criteria defined by the specifications for those components and levels listed in Table C.2.

In Tables C.3 and C.4, the first column defines the item for which conformance is being defined. In some cases, general limits are defined but are later overridden in specific cases by more restrictive limits. The second column defines the requirements for a X3D file conforming to the Interactive profile; if a X3D file contains any items that exceed these limits, it may not be possible for a X3D browser conforming to the Interactive profile to successfully parse that X3D file. The third column defines the minimum complexity for a X3D scene that a X3D browser conforming to the Interactive profile shall be able to present to the user. Fields flagged as "not supported" may be supported by browsers which conform to the Interactive profile. The word "ignore" in the minimum browser support column refers only to the display of the item; in particular, set_ events to ignored inputOutput fields shall still generate corresponding _changed events.

cube C.5 Node set

Table C.3 lists the nodes which shall be supported in the Interactive profile and specifies any fields in these nodes for which this profile requires less than full support.

Table C.3 — Nodes for conforming to the Interactive profile

Item X3D File Limit Minimum Browser Support
Anchor No restrictions. Full support.
Appearance No restrictions. textureTransform optionally supported.
lineProperties not supported. fillProperties not supported.
Background No restrictions. groundAngle and groundColor optionally supported. backURL, frontURL, leftURL, rightURL, topURL optionally supported. skyAngle optionally supported. One skyColor.
BooleanFilter No restrictions. Full support.
BooleanSequencer No restrictions. Full support.
BooleanToggle No restrictions. Full support.
BooleanTrigger No restrictions. Full support.
Box No restrictions. Full support.
Color 15,000 colours. 15,000 colours.
ColorInterpolator Restrictions as for all interpolators. Full support as for all interpolators.
ColorRGBA 15,000 colours. 15,000 colours. Alpha component optionally supported.
Cone No restrictions. Full support.
Coordinate 65,535 points 65,535 points.
CoordinateInterpolator 15,000 coordinates per keyValue. Restrictions as for all interpolators. 15,000 coordinates per keyValue. Support as for all interpolators.
Cylinder No restrictions. Full support.
CylinderSensor No restrictions. Full support.
DirectionalLight No restrictions. Not scoped by parent Group or Transform.
ElevationGrid No restrictions. ccw optionally supported.
Group Restrictions as for all groups. Support as for all groups.
ImageTexture JPEG (2.[JPEG]) and PNG (2.[I15948]) format. JPEG (2.[JPEG]) and PNG (2.[I15948]) format.
IndexedFaceSet 10 vertices per face. 5000 faces. Less than 65,535 indices. 10 vertices per face. 5000 faces. 65,535 indices in any index field.

ccw optionally supported. set_colorIndex optionally supported. set_normalIndex optionally supported. normal optionally supported. Only convex indexed face sets supported. Hence, convex optionally supported. For creaseAngle, only 0 and π radians supported. normalIndex optionally supported.

Face list shall be well-defined as follows:

  1. Each face is terminated with -1, including the last face in the array.
  2. Each face contains at least three non-coincident vertices.
  3. A given coordIndex is not repeated in a face.
  4. The vertices of a face shall define a planar polygon.
  5. The vertices of a face shall not define a self-intersecting polygon.

 

IndexedLineSet 15,000 total vertices. 15,000 indices in any index field. 15,000 total vertices. 15,000 indices in any index field. set_colorIndex optionally supported. set_coordIndex optionally supported.
IndexedTriangleFanSet 5,000 total faces. 15,000 indices in any index field. Full support.
IndexedTriangleSet 5,000 total faces. 15,000 indices in any index field. Full support.
IndexedTriangleStripSet 5,000 total faces. 15,000 indices in any index field. Full support.
Inline No restrictions. All fields fully supported except load which is optionally supported.
IntegerSequencer No restrictions. Full support.
IntegerTrigger No restrictions. Full support.
KeySensor No restrictions. Full support.
LineSet 15,000 total vertices. 15,000 total vertices.
Material No restrictions. ambientIntensity optionally supported. shininess optionally supported. specularColor optionally supported. A Material with emissiveColor not equal to (0,0,0), diffuseColor equal to (0,0,0) is an unlit material. One-bit transparency; transparency values ≥ 0.5 transparent.
MetadataDouble No restrictions. Full support.
MetadataFloat No restrictions. Full support.
MetadataInteger No restrictions. Full support.
MetadataSet No restrictions. Full support.
MetadataString No restrictions. Full support.
MultiTexture No restrictions. At least two textures displayed per node with any number specified.

Full support.

MultiTextureCoordinate 15,000 coordinates. 15,000 coordinates.
MultiTextureTransform No restrictions. At least two textures displayed per node with any number specified.

Full support.

NavigationInfo No restrictions. avatarSize optionally supported. speed optionally supported. visibilityLimit optionally supported. For type, only "ANY", "FLY", "EXAMINE", and "LOOKAT" modes supported.
Normal 15,000 normals 15,000 normals.
NormalInterpolator 15,000 normals 15,000 normals except as for all interpolators.
OrientationInterpolator Restrictions as for all interpolators. Full support except as for all interpolators.
PixelTexture 512 width. 512 height. 512 width. 512 height. Display fully transparent and fully opaque pixels.
PlaneSensor No restrictions. Full support.
PointLight No restrictions. radius optionally supported. Linear attenuation.
PointSet 5000 points. 5000 points.
PositionInterpolator Restrictions as for all interpolators. Full support except as for all interpolators.
ProximitySensor No restrictions. position_changed optionally supported. orientation_changed optionally supported.
ScalarInterpolator Restrictions as for all interpolators. Full support except as for all interpolators.
Shape No restrictions. Full support.
Sphere No restrictions. Full support.
SphereSensor No restrictions. Full support.
SpotLight No restriction beamWidth optionally supported. radius optionally supported. Linear attenuation.
StringSensor No restrictions. Full support.
Switch No restrictions Full support.
TextureCoordinate 15,000 coordinates. 15,000 coordinates.
TextureCoordinateGenerator No restrictions. Full support.
TextureTransform No restrictions. Full support.
TimeSensor No restrictions. pause optionally supported.
isPaused optionally supported. resumeTime optionally supported.
TimeTrigger No restrictions. Full support.
TouchSensor No restrictions. Full support.
Transform Restrictions as for all groups. Full support except as for all groups.
TriangleFanSet 5,000 triangles per fan. 15,000 total triangles. Full support.
TriangleSet 15,000 triangles. Full support.
TriangleStripSet 5,000 triangles per strip. 15,000 total triangles. Full support.
Viewpoint No restrictions. fieldOfView optionally supported.
description optionally supported.
VisibilitySensor No restrictions. Always visible.
WorldInfo No restrictions. Full support.

cube C.6 Other limitations

Table C.4 specifies other aspects of X3D functionality which are supported by this profile. Note that general items refer only to those specific nodes listed in Table C.3.

Table C.4 — Other limitations

Item X3D File Limit Minimum Browser Support
All groups 500 children. 500 children. Ignore bboxCenter and bboxSize.
All interpolators 1000 key-value pairs. 1000 key-value pairs.
All lights 8 simultaneous lights. 8 simultaneous lights.
Names for DEF/field 50 utf8 octets. 50 utf8 octets.
All url fields 10 URLs. 10 URLs. URN's ignored.
Support `http', `file', and `ftp' protocols.
Support relative URLs where relevant.
SFBool No restrictions. Full support.
SFColor No restrictions. Full support.
SFColorRGBA No restrictions. Full support.
SFDouble Mp restrictions. Full support. Range ±1e±12. Precision 1e-7.
SFFloat No restrictions. Full support.
SFImage 512 width. 512 height. 512 width. 512 height.
SFInt32 No restrictions. Full support.
SFNode No restrictions. Full support.
SFRotation No restrictions. Full support.
SFString 30,000 utf8 octets. 30,000 utf8 octets.
SFTime No restrictions. Full support.
SFVec2d 15,000 values. 15,000 values.
SFVec2f 15,000 values. 15,000 values.
SFVec3d 15,000 values. 15,000 values.
SFVec3f 15,000 values. 15,000 values.
MFColor 15,000 values. 15,000 values.
MFColorRGBA 15,000 values. 15,000 values.
MFDouble 1000 values. 1000 values.
MFFloat 1,000 values. 1,000 values.
MFInt32 20,000 values. 20,000 values.
MFNode 500 values. 500 values.
MFRotation 1,000 values. 1,000 values.
MFString 30,000 utf8 octets per string, 10 strings. 30,000 utf8 octets per string, 10 strings.
MFTime 1,000 values. 1,000 values.
MFVec2d 15,000 values. 15,000 values.
MFVec2f 15,000 values. 15,000 values.
MFVec3d 15,000 values. 15,000 values.
MFVec3f 15,000 values. 15,000 values.
--- X3D separator bar ---