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

Annex F

(normative)

Full profile

# F.1 General

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

The name of this profile is "Full". The Full profile of X3D is comprised of all features of the standard.

# F.2 Topics

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

Table F.1 — Topics

F.1 General F.2 Topics F.3 Component support F.4 Conformance criteria F.5 Node set F.6 Other limitations Table F.1 — Topics Table F.2 — Components and levels Table F.3 — Nodes for conforming to the Full profile Table F.4 — Other limitations

# F.3 Component support

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

Table F.2 — Components and levels

Component | Level | Reference
--- | --- | ---
Core | 2 | 7.5 Support levels
Time | 2 | 8.5 Support levels
Networking | 4 | 9.5 Support levels
Grouping | 3 | 10.5 Support levels
Rendering | 5 | 11.5 Support levels
Shape | 4 | 12.5 Support levels
Geometry3D | 4 | 13.4 Support levels
Geometry2D | 2 | 14.4 Support levels
Text | 1 | 15.5 Support levels
Sound | 3 | 16.5 Support levels
Lighting | 3 | 17.5 Support levels
Texturing | 4 | 18.5 Support levels
Interpolation | 5 | 19.5 Support levels
Pointing device sensor | 1 | 20.5 Support levels
Key device sensor | 2 | 21.5 Support levels
Environmental sensor | 3 | 22.5 Support levels
Navigation | 3 | 23.4 Support levels
Environmental effects | 4 | 24.5 Support levels
Geospatial | 2 | 25.4 Support levels
Humanoid animation | 3 | 26.4 Support levels
Non-uniform Rational B-Spline (NURBS) | 4 | 27.5 Support levels
Distributed interactive simulation | 2 | 28.4 Support levels
Scripting | 1 | 29.5 Support levels
Event utilities | 1 | 30.5 Support levels
Programmable shaders | 1 | 31.5 Support levels
CAD geometry | 2 | 32.5 Support levels
Texturing3D | 2 | 33.5 Support levels
Cube map environmental texturing | 3 | 34.5 Support levels
Layering component | 1 | 35.5 Support levels
Layout component | 2 | 36.5 Support levels
Rigid body physics component | 2 | 37.5 Support levels
Picking component | 3 | 38.5 Support levels
Followers component | 1 | 39.5 Support levels
Particle systems component | 3 | 40.5 Support levels
Volume rendering component | 4 | 41.5 Support levels
Texture projection component | 2 | 42.5 Support levels

# F.4 Conformance criteria

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

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

# F.5 Node set

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

Table F.3 — Nodes for conforming to the Full profile

Item | X3D File Limit | Minimum X3D browser Support
--- | --- | ---
Anchor | No restrictions. | Full support
Appearance | No restrictions. | Full support.
Arc2D | No restrictions. | Full support.
ArcClose2D | No restrictions. | Full support.
AudioClip | 30 second uncompressed PCM WAV. | 30 second uncompressed PCM WAV.
Background | No restrictions. | Full support.
BallJoint | No restrictions. | Full support.
Billboard | Restrictions as for all groups. | Full support except as for all groups.
BlendedVolumeStyle | No restrictions. | Full support.
BooleanFilter | No restrictions. | Full support.
BooleanSequencer | No restrictions. | Full support.
BooleanToggle | No restrictions. | Full support.
BooleanTrigger | No restrictions. | Full support.
BoundaryEnhancementVolumeStyle | No restrictions. | Full support.
BoundedPhysicsModel | No restrictions. | Full support.
Box | No restrictions. | Full support.
CADAssembly | No restrictions. | Full support.
CADFace | No restrictions. | Full support.
CADLayer | No restrictions. | Full support.
CADPart | No restrictions. | Full support.
CartoonVolumeStyle | No restrictions. | Full support.
Circle2D | No restrictions. | Full support.
ClipPlane | At least six planes. | Full support.
CollidableOffset | No restrictions. | Full support.
CollidableShape | No restrictions. | Full support.
Collision | Restrictions as for all groups. | Full support except as for all groups. Any navigation behaviour acceptable when collision occurs.
CollisionCollection | No restrictions. | Full support.
CollisionSensor | No restrictions. | Full support.
CollisionSpace | No restrictions. | Full support.
Color | 15,000 colours. | 15,000 colours.
ColorChaser | No restrictions. | Full support.
ColorDamper | No restrictions. | Full support.
ColorInterpolator | Restrictions as for all interpolators. | Full support except as for all interpolators.
ColorRGBA | 15,000 colours. | 15,000 colours.
ComposedCubeMapTexture | No restrictions. | Full support.
ComposedShader | No restrictions. | Full support.
ComposedTexture3D | No restrictions. | Full support.
ComposedVolumeStyle | No restrictions. | Full support.
Cone | No restrictions. | Full support.
ConeEmitter | No restrictions. | Full support.
Contact | No restrictions. | Full support.
Contour2D | No restrictions. | Full support.
ContourPolyline2D | 1500 control points. | Order 30.
Coordinate | 15,000 points. | 15,000 points.
CoordinateChaser | No restrictions. | Full support.
CoordinateDamper | No restrictions. | Full support.
CoordinateDouble | 15,000 points. | 15,000 points.
CoordinateInterpolator | 15,000 coordinates per keyValue. Restrictions as for all interpolators. | 15,000 coordinates per keyValue. Support as for all interpolators.
CoordinateInterpolator2D | 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. | Full support.
DISEntityManager | No restrictions. | Full support.
DISEntityTypeMapping | No restrictions. | Full support.
Disk2D | No restrictions. | Full support.
DoubleAxisHingeJoint | No restrictions. | Full support.
EaseInEaseOut | No restrictions. | Full support.
EdgeEnhancementVolumeStyle | No restrictions. | Full support.
ElevationGrid | 16,000 heights. | 16,000 heights.
EspduTransform | No restrictions. | Full support.
ExplosionEmitter | No restrictions. | Full support.
Extrusion | (# crossSection points)×(# spine points) ≤ 2,500. | (# crossSection points)×(# spine points) ≤ 2,500.
FillProperties | No restrictions. | Full support.
FloatVertexAttribute | No restrictions. | Full support.
Fog | No restrictions. | Full support.
FogCoordinate | 15,000 coordinates. | 15,000 coordinates.
FontStyle | No restrictions. | If the values of the text aspects character set, family, style cannot be simultaneously supported, the order of precedence shall be: 1) character set 2) family 3) style. X3D browsers shall display all characters in ISO 8859-1 character set (see [I8859-1]).
ForcePhysicsModel | No restrictions. | Full support.
GeneratedCubeMapTexture | No restrictions. | Full support.
GeoCoordinate | 15,000 points. | 15,000 points.
GeoElevationGrid | 16,000 heights. | 16,000 heights.
GeoLocation | Restrictions as for all groups. | Full support except as for all groups.
GeoLOD | Restrictions as for all groups. | Full support.
GeoMetadata | No restrictions. | Full support.
GeoOrigin | No restrictions. | Full support.
GeoPositionInterpolator | 1000 key-value pairs. | 1000 key-value pairs.
GeoProximitySensor | No restrictions. | Full support.
GeoTouchSensor | No restrictions. | Full support.
GeoTransform | Restrictions as for all groups. | Full support except as for all groups.
GeoViewpoint | No restrictions. | Full support.
Group | Restrictions as for all groups. | Full support except as for all groups.
HAnimDisplacer | No restrictions. | Full support.
HAnimHumanoid | No restrictions. | Full support.
HAnimJoint | No restrictions. | Full support.
HAnimSegment | No restrictions. | Full support.
HAnimSite | No restrictions. | Full support.
ImageCubeMapTexture | No restrictions. | Full support.
ImageTexture | JPEG ([JPEG]) and PNG ([I15948]) format. Restrictions as for PixelTexture. | JPEG ([JPEG]) and PNG ([I15948]) format. Support as for PixelTexture.
ImageTexture3D | No restrictions. | Full support.
IndexedFaceSet | 10 vertices per face. 5000 faces. Less than 15,000 indices. | 10 vertices per face. 5000 faces. 15,000 indices in any index field.
IndexedLineSet | 15,000 total vertices. 15,000 indices in any index field. | 15,000 total vertices. 15,000 indices in any index field.
IndexedQuadSet | No restrictions. | Full support.
IndexedTriangleFanSet | 15,000 total vertices. 15,000 indices in any index field. | 15,000 total vertices. 15,000 indices in any index field.
IndexedTriangleSet | 15,000 total vertices. 15,000 indices in any index field. | 15,000 total vertices. 15,000 indices in any index field.
IndexedTriangleStripSet | 15,000 total vertices. 15,000 indices in any index field. | 15,000 total vertices. 15,000 indices in any index field.
Inline | No restrictions. | Full support except as for all groups.
IntegerSequencer | No restrictions. | Full support.
IntegerTrigger | No restrictions. | Full support.
IsoSurfaceVolumeData | Minimum dimensions: 512 width, 512 height, 512 depth. | Full support.
KeySensor | No restrictions. | Full support.
Layer | No restrictions. | Full support.
LayerSet | At least six layers. | Full support.
Layout | No restrictions. | Full support.
LayoutGroup | No restrictions. | Full support.
LayoutLayer | No restrictions. | Full support.
LinePickSensor | No restrictions. | Full support.
LineProperties | No restrictions. | Full support.
LineSet | 15,000 total vertices. | 15,000 total vertices.
LoadSensor | No restrictions. | Full support.
LocalFog | No restrictions. | Full support.
LOD | Restrictions as for all groups. | At least first 4 level/ range combinations interpreted, and support as for all groups.
Material | No restrictions. | Full support
Matrix3VertexAttribute | No restrictions. | Full support.
Matrix4VertexAttribute | 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.
MotorJoint | No restrictions. | Full support.
MovieTexture | MPEG1-Systems and MPEG1-Video formats (see [I14496-1]). | MPEG1-Systems and MPEG1-Video formats (see [I14496-1]). Display one active movie texture.
MultiTexture | No restrictions. | At least two textures displayed per node with any number specified. Full support.
MultiTextureCoordinate | 15,000 coordinates. | 15,000 coordinates.
MultiTextureTransform | Restrictions as for all groups. | addChildren optionally supported. removeChildren optionally supported. Otherwise, full support except as for all groups.
NavigationInfo | No restrictions. | Full support.
Normal | 15,000 normals | 15,000 normals.
NormalInterpolator | 15,000 normals per keyValue. Restrictions as for all interpolators. | 15,000 normals per keyValue. Support as for all interpolators.
NurbsCurve | 1500 control points. | Order 30.
NurbsCurve2D | 1500 control points | Order 30.
NurbsOrientationInterpolator | Restrictions as for all interpolators. | Full support except as for all interpolators.
NurbsPatchSurface | 1500 control points. | Order 30.
NurbsPositionInterpolator | Restrictions as for all interpolators. | Full support except as for all interpolators.
NurbsSet | No restrictions. | Full support.
NurbsSurfaceInterpolator | Restrictions as for all interpolators. | Full support except as for all interpolators.
NurbsSweptSurface | 1500 control points. | Order 30.
NurbsSwungSurface | 1500 control points. | Order 30.
NurbsTextureCoordinate | 1500 control points. | Order 30.
NurbsTrimmedSurface | 1500 control points. 10 contours. | Order 30. 10 contours.
OrientationChaser | No restrictions. | Full support.
OrientationDamper | No restrictions. | Full support.
OrientationInterpolator | Restrictions as for all interpolators. | Full support except as for all interpolators.
OrthoViewpoint | No restrictions. | Full support.
PackagedShader | No restrictions. | Full support.
ParticleSystem | No restrictions. | Full support.
PickableGroup | No restrictions. | Full support.
PixelTexture | 512 width. 512 height. | 512 width. 512 height. Display fully transparent and fully opaque pixels.
PixelTexture3D | No restrictions. | Full support.
PlaneSensor | No restrictions. | Full support.
PointEmitter | No restrictions. | Full support.
PointLight | No restrictions. | Full support.
PointPickSensor | No restrictions. | Full support.
PointSet | 5000 points. | 5000 points.
Polyline2D | 15,000 vertices. | 15,000 vertices.
PolylineEmitter | No restrictions. | Full support.
Polypoint2D | 5000 points. | 5000 points.
PositionChaser | No restrictions. | Full support.
PositionChaser2D | No restrictions. | Full support.
PositionDamper | No restrictions. | Full support.
PositionDamper2D | No restrictions. | Full support.
PositionInterpolator | Restrictions as for all interpolators. | Full support except as for all interpolators.
PositionInterpolator2D | Restrictions as for all interpolators. | Full support except as for all interpolators.
PrimitivePickSensor | No restrictions. | Full support.
ProgramShader | No restrictions. | Full support.
ProjectionVolumeStyle | No restrictions. | Full support.
ProximitySensor | No restrictions. | Full support.
QuadSet | No restrictions. | Full support.
ReceiverPDU | No restrictions. | Full support.
Rectangle2D | No restrictions. | Full support.
RigidBody | No restrictions. | Full support.
RigidBodyCollection | No restrictions. | Full support.
ScalarChaser | No restrictions. | Full support.
ScalarDamper | No restrictions. | Full support.
ScalarInterpolator | Restrictions as for all interpolators. | Full support except as for all interpolators.
ScreenFontStyle | No restrictions. | Full support.
ScreenGroup | No restrictions. | Full support.
Script | 25 fields of each access type. | 25 fields of each access type. ECMAScript and Java required.
SegmentedVolumeData | Minimum dimensions: 512 width, 512 height, 512 depth. | Full support.
ShadedVolumeStyle | No restrictions. | Full support.
ShaderPart | No restrictions. | Full support.
ShaderProgram | No restrictions. | Full support.
Shape | No restrictions. | Full support.
SignalPDU | No restrictions. | Full support
SilhouetteEnhancementVolumeStyle | No restrictions. | Full support.
SingleAxisHingeJoint | No restrictions. | Full support.
SliderJoint | No restrictions. | Full support.
Sound | No restrictions. | Full support
Sphere | No restrictions. | Full support.
SphereSensor | No restrictions. | Full support.
SplinePositionInterpolator | No restrictions. | Full support.
SplinePositionInterpolator2D | No restrictions. | Full support.
SplineScalarInterpolator | No restrictions. | Full support.
SpotLight | No restrictions. | Full support.
SquadOrientationInterpolator | No restrictions. | Full support.
StaticGroup | No restrictions. | Full support.
StringSensor | 100 characters per string. 100 strings. | Full support. 100 characters per string. 100 strings.
SurfaceEmitter | No restrictions. | Full support.
Switch | Restrictions as for all groups. | Full support except as for all groups.
TexCoordChaser2D | No restrictions. | Full support.
TexCoordDamper2D | No restrictions. | Full support.
Text | 100 characters per string. 100 strings. | 100 characters per string. 100 strings.
TextureBackground | No restrictions. | All fields fully supported. All texture node types supported in texture fields.
TextureCoordinate | 15,000 coordinates. | 15,000 coordinates.
TextureCoordinate3D | 15,000 coordinates. | 15,000 coordinates.
TextureCoordinate4D | 15,000 coordinates. | 15,000 coordinates.
TextureCoordinateGenerator | No restrictions. | Full support.
TextureProperties | No restrictions. | Full support.
TextureTransform | No restrictions. | Full support.
TextureTransform3D | No restrictions. | Full support.
TextureTransformMatrix3D | No restrictions. | Full support.
TimeSensor | No restrictions. | Full support.
TimeTrigger | No restrictions. | Full support.
TouchSensor | No restrictions. | Full support.
Transform | Restrictions as for all groups. | Full support except as for all groups.
TransformSensor | No restrictions. | Full support.
TransmitterPDU | No restrictions. | Full support.
TriangleFanSet | 15,000 coordinates. | Full support.
TriangleSet | 15,000 coordinates. | Full support.
TriangleSet2D | 15,000 coordinates. | Full support.
TriangleStripSet | 15,000 coordinates. | Full support.
TwoSidedMaterial | No restrictions. | Full support.
UniversalJoint | No restrictions. | Full support.
Viewpoint | No restrictions. | Full support
ViewpointGroup | No restrictions. | Full support.
Viewport | No restrictions. | Full support.
VisibilitySensor | No restrictions. | Always visible.
VolumeData | Minimum dimensions: 512 width, 512 height, 512 depth. | Full support.
VolumeEmitter | No restrictions. | Full support.
VolumePickSensor | No restrictions. | Full support.
WindPhysicsModel | No restrictions. | Full support.
WorldInfo | No restrictions. | Full support.

# F.6 Other limitations

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

Table F.4 — Other limitations

Item | X3D File Limit | Minimum X3D 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/PROTO/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.
Top-level fields | 20 fields | 20 fields
Top-level functions | 20 functions | 20 functions
PROTO/ EXTERNPROTO | 30 fields of each access type | 30 fields of each access type
EXTERNPROTO | n/a | URL references to X3D files conforming to the current profile/component configuration.
PROTO definition nesting depth | 5 levels | 5 levels.
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.
SFMatrix3d | No restrictions. | Full support.
SFMatrix3f | No restrictions. | Full support.
SFMatrix4d | No restrictions. | Full support.
SFMatrix4f | 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.
SFVec4d | 15,000 values. | 15,000 values.
SFVec4f | 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.
MFMatrix3d | 256 values. | 256 values.
MFMatrix3f | 256 values. | 256 values.
MFMatrix4d | 256 values. | 256 values.
MFMatrix4f | 256 values. | 256 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.
MFVec4d | 15,000 values. | 15,000 values.
MFVec4f | 15,000 values. | 15,000 values.