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

Annex L M

(normative)

MedicalInterchange profile

# L.1 General

This annex defines the X3D components that comprise the MedicalInterchange profile. This annex 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:

- Exchange of polygonal geometry, volumetric data and accompanying documentation between medical imaging systems.
- Possible implementation in industry-specific applications that use X3D as an interchange format, but link to proprietary databases and hardware.

# L.2 Topics

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

Table L.1 — Topics

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

# L.3 Component support

Table L.2 lists the components and their levels that shall be supported in the MedicalInterchange profile. Table L.3 and Table L.4 describe limitations on required support for nodes and fields contained within these components.

Table L.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 | 3 | 10.5 Support levels
Rendering | 5 | 11.5 Support levels
Shape | 3 | 12.5 Support levels
Geometry3D | 2 | 13.4 Support levels
Geometry2D | 2 | 14.4 Support levels
Text | 1 | 15.5 Support levels
Lighting | 1 | 17.5 Support levels
Texturing | 2 | 18.5 Support levels
Interpolation | 2 | 19.5 Support levels
Navigation | 3 | 23.4 Support levels
Environmental effects | 1 | 24.5 Support levels
Event utilities | 1 | 30.5 Support levels
Texturing3D | 2 | 33.5 Support levels
Volume rendering | 4 | 41.5 Support levels

# L.4 Conformance criteria

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

In Tables L.3 and L.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 MedicalInterchange profile. If an X3D file contains any items that exceed these limits, it may not be possible for an X3D browser conforming to the MedicalInterchange 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 MedicalInterchange profile shall be able to present to the user. Fields flagged as "not supported" may optionally be supported by browsers which conform to the MedicalInterchange 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.

# L.5 Node set

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

Table L.3 — Nodes for conforming to the MedicalInterchange profile

Item | X3D File Limit | Minimum Browser Support
--- | --- | ---
Anchor | No restrictions. | Full support.
Arc2D | No restrictions. | Full support.
ArcClose2D | No restrictions. | Full support.
Appearance | No restrictions. | Full support.
Background | No restrictions. | groundAngle and groundColor optionally supported. backURL, frontURL, leftURL, rightURL, topURL optionally supported. skyAngle optionally supported. At least one skyColor supported.
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.
Box | No restrictions. | Full support
CartoonVolumeStyle | No restrictions. | Full support.
Circle2D | No restrictions. | Full support.
ClipPlane | No restrictions. | Full support.
Collision | Restrictions as for all groups. | Full support except as for all groups. Any navigation behaviour acceptable when collision occurs.
Color | 15,000 colours. | 15,000 colours.
ColorInterpolator | No restrictions. | Full support.
ColorRGBA | 15,000 colours. | 15,000 colours
ComposedVolumeStyle | No restrictions. | Full support.
CompositeTexture3D | Minimum 512 textures. | Full support.
Cone | No restrictions. | Full support.
Coordinate | 65,535 points. | 65,535 points.
CoordinateDouble | 65,535 points. | 65,535 points.
CoordinateInterpolator | No restrictions. | Full support.
Cylinder | No restrictions. | Full support.
DirectionalLight | No restrictions. | Not scoped by parent Group or Transform.
Disk2D | No restrictions. | Full support.
EdgeEnhancementVolumeStyle | No restrictions. | Full support.
FillProperties | No restrictions. | Full support.
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. Browser shall display all characters in Table 2 (Basic Latin) and Table 3 (Latin-1 Supplement) of ISO/IEC 10646 (see ISO/IEC 10646).
Group | Restrictions as for all groups. | addChildren optionally supported. removeChildren optionally supported. Otherwise as for all groups.
ImageTexture | JPEG ([JPEG]) and PNG (ISO/IEC 15948) format. | JPEG ([JPEG]) and PNG (ISO/IEC 15948) format.
ImageTexture3D | DICOM, JPEG ([JPEG]) and PNG (ISO/IEC 15948) format. | Full support. Minimum texture size of 256x256x256 pixels
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.
IndexedTriangleFanSet | 5,000 total faces. 15,000 indices in any index field. | 5,000 total faces. 15,000 indices in any index field.
IndexedTriangleSet | 5,000 total faces. 15,000 indices in any index field. | 5,000 total faces. 15,000 indices in any index field.
IndexedTriangleStripSet | 5,000 total faces. 15,000 indices in any index field. | 5,000 total faces. 15,000 indices in any index field.
Inline | No restrictions | All fields except load which is optionally supported.
IntegerSequencer | No restrictions. | Full support.
IntegerTrigger | No restrictions. | Full support.
IsoSurfaceVolumeData | Minimum dimensions: 512 width, 512 height, 512 depth. | Full support.
LineProperties | No restrictions. | Full support.
LineSet | 15,000 total vertices. | 15,000 total vertices.
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.
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.
MultiTexture | No restrictions. | At least one texture displayed per node with any number specified. Full support.
MultiTextureCoordinate | 15,000 coordinates. | 15,000 coordinates.
MultiTextureTransform | Restrictions as for all groups. | Full support.
NavigationInfo | No restrictions. | avatarSize optionally supported. speed optionally supported. type optionally supported. visibilityLimit optionally supported.
Normal | 15,000 normals. | 15,000 normals.
NormalInterpolator | No restrictions. | Full support.
OctTree | No restrictions. | Full support.
OpacityMapVolumeStyle | No restrictions. | Full support. 3D transfer functions shall be supported.
OrientationInterpolator | No restrictions. | Full support.
OrthoViewpoint | No restrictions. | Full support.
PixelTexture | 512 width. 512 height. | 512 width. 512 height. Display fully transparent and fully opaque pixels.
PixelTexture3D | 256 width. 256 height. 256 depth. | 256 width. 256 height. 256 depth. Display fully transparent and fully opaque pixels.
PointSet | 5,000 points. | 5,000 points.
Polyline2D | 5,000 points. | 5,000 points.
Polypoint2D | 5,000 points. | 5,000 points.
PositionInterpolator | No restrictions. | Full support.
ProjectionVolumeStyle | No restrictions. | Full support.
Rectangle2D | No restrictions. | Full support.
ScalarInterpolator | No restrictions. | Full support.
SegmentedVolumeData | Minimum dimensions: 512 width, 512 height, 512 depth. | Full support.
ShadedVolumeStyle | No restrictions. | A fields fully supported except shadows. Shadows supported with at least Phong shading. Henyey-Greenstein phase function not required.
Shape | No restrictions. | Full support.
SilhouetteEnhancementVolumeStyle | No restrictions. | Full support.
Sphere | No restrictions. | Full support.
StaticGroup | No restrictions. | Full support.
Switch | No restrictions. | Full support.
Text | 100 characters per string. 100 strings. | 100 characters per string. 100 strings.
TextureCoordinate | 65,535 coordinates. | 65,535 coordinates.
TextureCoordinate3D | 65,535 coordinates. | 65,535 coordinates.
TextureCoordinate4D | 65,535 coordinates. | 65,535 coordinates.
TextureCoordinateGenerator | No restrictions. | Full support.
TextureMatrixTransform TextureTransformMatrix3D | No restrictions. | Full support.
TextureProperties | No restrictions. | Full support.
TextureTransform | No restrictions. | Full support.
TextureTransform3D | No restrictions. | Full support.
TimeSensor | No restrictions. | pause, isPaused, resumeTime optionally supported.
TimeTrigger | No restrictions. | Full support.
ToneMappedVolumeStyle | No restrictions. | Full support.
Transform | Restrictions as for all groups. | addChildren optionally supported. removeChildren optionally supported. Otherwise, full support except as for all groups.
TriangleFanSet | 5,000 triangles per fan. 15,000 total triangles. | 5,000 triangles per fan. 15,000 total triangles.
TriangleSet | 15,000 triangles | 15,000 triangles
TriangleStripSet | 5,000 triangles per strip. 15,000 total triangles | 5,000 triangles per strip. 15,000 total triangles.
Viewpoint | No restrictions. | Full support.
ViewpointGroup | No restrictions. | Full support.
VolumeData | Minimum dimensions: 512 width, 512 height, 512 depth. | Full support.
WorldInfo | No restrictions. | Full support.

# L.6 Other limitations

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

Table L.4 — Other limitations

Item | X3D File Limit | Minimum Browser Support
--- | --- | ---
All groups | 500 children. | 500 children. Optionally ignore bboxCenter and bboxSize.
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.
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.
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 | No restrictions. | Full support.
SFVec2f | No restrictions. | Full support.
SFVec3d | No restrictions. | Full support.
SFVec3f | No restrictions. | Full support.
SFVec4d | No restrictions. | Full support.
SFVec4f | No restrictions. | Full support.
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.
MFVec4d | 15,000 values. | 15,000 values.
MFVec4f | 15,000 values. | 15,000 values.