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

Annex A


Core profile

--- X3D separator bar ---

cube A.1 General

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

This profile is targeted towards:

  1. Absolute minimal file definitions required by X3D,
  2. Building minimally defined scenes by explicitly specifying the component and levels required, and
  3. Allowing a broader range of implementations by eliminating some complexity of a complete X3D implementation.

cube A.2 Topics

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

Table A.1 — Topics

cube A.3 Component support

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

Table A.2 — Components and levels

Component Level Reference
Core 1 7.5 Support levels

cube A.4 Conformance criteria

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

In Table A.3 and Table A.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 Core profile; if a X3D file contains any items that exceed these limits, it may not be possible for a X3D browser conforming to the Core 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 Core profile shall be able to present to the user. Fields flagged as "not supported" may be supported by browsers which conform to the Core 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 A.5 Node set

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

Table A.3 — Nodes for conforming to the Core profile

Item X3D File Limit Minimum Browser 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.

cube A.6 Other limitations

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

Table A.4 — Other limitations

Item X3D File Limit Minimum Browser Support
All groups 500 children. 500 children. bboxCenter and bboxSize optionally supported.
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 optionally supported.
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 256 width. 256 height. 256 width. 256 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 ---