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

Annex H

(normative)

CADInterchange profile

--- X3D separator bar ---

cube H.1 General

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

The name of this profile is "CADInterchange". This profile is targeted towards:

cube H.2 Topics

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

Table H.1 — Topics

cube H.3 Component support

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

Table H.2 — Components and levels

Component Level Reference
Core 1 7.5 Support levels
Networking 2 9.5 Support levels
Grouping 1 10.5 Support levels
Rendering 4 11.5 Support levels
Shape 2 12.5 Support levels
Lighting 1 17.5 Support levels
Texturing 2 18.5 Support levels
Navigation 3 23.5 Support levels
Shaders 1 31.5 Support levels
CADGeometry 2 32.5 Support levels

cube H.4 Conformance criteria

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

In Tables H.3 and H.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 an X3D file conforming to the CADInterchange profile; if an X3D file contains any items that exceed these limits, it may not be possible for an X3D browser conforming to the CADInterchange profile to successfully parse that X3D file. The third column defines the minimum complexity for an X3D scene that an X3D browser conforming to the CADInterchange profile shall be able to present to the user. Fields flagged as "not supported" may be supported by X3D browsers which conform to the CADInterchange profile. The word "ignore" in the minimum X3D 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 H.5 Node set

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

Table H.3 — Nodes for conforming to the CADInterchange profile

Item X3D File Limit Minimum X3D browser Support
Anchor No restrictions. Full support.
Appearance No restrictions. fillProperties not supported.
CADAssembly No restrictions. Full support.
CADFace No restrictions. Full support.
CADLayer No restrictions. Full Support
CADPart No restrictions. Full support.
Billboard No restrictions. Can treat as just a grouping node, no runtime requirements
Collision No restrictions. Can treat as just a grouping node, no runtime requirements
Color 5,592,405 colours. 5,592,405 colours.
ColorRGBA 4,194,304 colours. 4,194,304 colours
Coordinate 16,777,216 points 16,777,216 points.
DirectionalLight No restrictions. Full support.
FillProperties No restrictions. Full support.
FragmentShader No restrictions. Full support.
Group Restrictions as for all groups. addChildren not supported. removeChildren not supported. Otherwise as for all groups.
ImageTexture JPEG ([JPEG]) and PNG ([I15948]) format. JPEG ([JPEG]) and PNG ([I15948]) format.
IndexedLineSet 5,592,405 total vertices. 5,592,405 indices in any index field. 5,592,405 total vertices. 5,592,405 indices in any index field.
IndexedQuadSet 5,592,405 total faces. 5,592,405 indices in any index field. 5,592,405 total faces. 5,592,405 indices in any index field.
IndexedTriangleFanSet 5,592,405 total faces. 5,592,405 indices in any index field. 5,592,405 total faces. 5,592,405 indices in any index field.
IndexedTriangleSet 5,592,405 total faces. 5,592,405 indices in any index field. 5,592,405 total faces. 5,592,405 indices in any index field.
IndexedTriangleStripSet 5,592,405 total faces. 5,592,405 indices in any index field. 5,592,405 total faces. 5,592,405 indices in any index field.
Inline No restrictions. Optional support for load field. Other fields full support.
LineProperties No restrictions. Full support.
LineSet 5,592,405 total vertices. 5,592,405 total vertices.
LOD No restrictions. Runtime switching not required. An implementation can select one level and display
Material No restrictions. Full support.
MetadataBoolean No restrictions. Full support.
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.
MultiShader No restrictions. Full support.
MultiTexture No restrictions. At least one texture displayed per node with any number specified.

Full support.

MultiTextureCoordinate 15,000 coordinates. 15,000 coordinates.
MultiTextureTransform No restrictions. Full support.
NavigationInfo No restrictions. avatarSize optionally supported. speed optionally supported. type optionally supported. visibilityLimit optionally supported.
Normal 5,592,405 normals 5,592,405 normals.
OrthoViewpoint No restrictions. Full support.
PixelTexture 512 width. 512 height. 512 width. 512 height. Display fully transparent and fully opaque pixels.
PointProperties No restrictions. Full support.
PointSet 5,592,405 points. 5,592,405 points.
QuadSet 5,592,405 total faces. 5,592,405 indices in any index field. 5,592,405 total faces. 5,592,405 indices in any index field.
Shader No restrictions. Full support.
ShaderAppearance No restrictions. Full support.
Shape No restrictions. Full support.
TextureCoordinate 5,592,405 coordinates. 5,592,405 coordinates.
TextureCoordinateGenerator No restrictions. Full support.
TextureTransform No restrictions. Full support.
Transform Restrictions as for all groups. addChildren not supported. removeChildren not supported. Otherwise, full support except as for all groups.
TriangleFanSet 5,592,405 triangles per fan. 5,592,405 total triangles. 5,592,405 triangles per fan. 5,592,405 total triangles.
TriangleSet 5,592,405 triangles 5,592,405 triangles
TriangleStripSet 5,592,405 triangles per strip. 5,592,405 total triangles 5,592,405 triangles per strip. 5,592,405 total triangles.
VertexShader No restrictions. Full support.
Viewpoint No restrictions. Full support.
ViewpointGroup No restrictions. Full support.
WorldInfo No restrictions. Full support.

cube H.6 Other limitations

Table H.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 H.3.

Table H.4 — Other limitations

Item X3D File Limit Minimum X3D browser Support
All groups 16777216 children. 16777216 children.
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 No 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.
MFImage No restrictions. Full support.
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 ---