Difference between revisions of "X3D V4 HTML Integration Requirements"

From Web3D.org
Jump to: navigation, search
(Summary of postings on this topic to the public mailing lists)
 
Line 9: Line 9:
 
# Some of these requirements may overlap by varying amounts. It was easier to specify them this way then trying to make a complete and non-overlapping set. I'm not going to even claim that this is a complete set, but it is a beginning.
 
# Some of these requirements may overlap by varying amounts. It was easier to specify them this way then trying to make a complete and non-overlapping set. I'm not going to even claim that this is a complete set, but it is a beginning.
  
For those that want XHTML, then convert all references to HTML to XHTML and make the appropriate syntax changes. The differences between HTML and XHTML in the appearance of the elements and attributes is that XHTML is strict. This amounts to closing elements, elements and attributes are lower case, mandatory elements and attributes, different MIME type (text/html vs. application/xml or applications/xhtml+xml), and quoted attributes -- see https://www.w3schools.com/html/html_xhtml.asp for details. The WhatWG has a pretty good documentation page on the differences at https://wiki.whatwg.org/wiki/HTML_vs._XHTML.
+
# For those that want XHTML, then convert all references to HTML to XHTML and make the appropriate syntax changes. The differences between HTML and XHTML in the appearance of the elements and attributes is that XHTML is strict. This amounts to closing elements, elements and attributes are lower case, mandatory elements and attributes, different MIME type (text/html vs. application/xml or applications/xhtml+xml), and quoted attributes -- see https://www.w3schools.com/html/html_xhtml.asp for details. The WhatWG has a pretty good documentation page on the differences at https://wiki.whatwg.org/wiki/HTML_vs._XHTML.
  
  
Line 15: Line 15:
  
  
# Look "like" HTML
+
; Look "like" HTML
## Elements (nodes in X3D-speak) shall be case independent
+
: Elements (nodes in X3D-speak) shall be case independent
## Attributes (fields in X3D-speak) shall be case independent
+
: Attributes (fields in X3D-speak) shall be case independent
## X3D nodes shall not have name conflicts with any HTML-defined elements
+
: X3D nodes shall not have name conflicts with any HTML-defined elements
## All X3D nodes shall support all HTML Global Attributes (https://www.w3schools.com/tags/ref_standardattributes.asp)
+
: All X3D nodes shall support all HTML Global Attributes (https://www.w3schools.com/tags/ref_standardattributes.asp)
## All X3D fields with the same name as HTML attributes shall behave as the HTML element
+
: All X3D fields with the same name as HTML attributes shall behave as the HTML element
TBD: Not all style attributes apply to X3D nodes & fields
+
: TBD: Not all style attributes apply to X3D nodes & fields
  
# Function "like" HTML
+
; Function "like" HTML
## All nodes shall be fully integrated with the DOM [This may need to change if certain nodes need to remain hidden from the DOM. For example, the manner which X3DOM implements Inline.]
+
: All nodes shall be fully integrated with the DOM [This may need to change if certain nodes need to remain hidden from the DOM. For example, the manner which X3DOM implements Inline.]
## The scene graph does not need to be DOM (or a portion of it).
+
: The scene graph does not need to be DOM (or a portion of it).
## Changes to the DOM shall be reflected in the scene graph
+
: Changes to the DOM shall be reflected in the scene graph
## Changes to the scene graph shall be reflected in the DOM
+
: Changes to the scene graph shall be reflected in the DOM
## Events are handled as HTML events
+
: Events are handled as HTML events
## DOM is the external (i.e., from the web page) API to the scene graph
+
: DOM is the external (i.e., from the web page) API to the scene graph
  
# X3D shall support the evolving web standards for flat-3D (WebGL), VR WebVR) and AR
+
; X3D shall support the evolving web standards for flat-3D (WebGL), VR WebVR) and AR
  
# Existing features & functionality
+
; Existing features & functionality
## Perform the following tasks with the requirements that is be conflict with the above
+
: Perform the following tasks with the requirements that is be conflict with the above
### Conduct a review of all existing features (nodes) to determine if any should be deprecated in V4
+
:: Conduct a review of all existing features (nodes) to determine if any should be deprecated in V4
### Conduct a review of all existing functionality (run-time) to determine if any should be deprecated or changed in V4
+
:: Conduct a review of all existing functionality (run-time) to determine if any should be deprecated or changed in V4
## Include all features and functionality that passes the above reviews
+
: Include all features and functionality that passes the above reviews
  
# Additional features shall be added
+
; Additional features shall be added
## Deformable-skin joint based animation
+
: Deformable-skin joint based animation
## Support for multiple geometry formats, including OBJ, glTF
+
: Support for multiple geometry formats, including OBJ, glTF
## Increased Material support with a standard library of pre-defined shaders
+
: Increased Material support with a standard library of pre-defined shaders
## Mechanism to navigate a scene without a pointing device
+
: Mechanism to navigate a scene without a pointing device
## Mechanism to touch or select objects without a pointing device
+
: Mechanism to touch or select objects without a pointing device
## Review other 3D/VR display technologies (XML3D, A-Frame, GLAM, etc.) to determine if there are features that should be included
+
: Review other 3D/VR display technologies (XML3D, A-Frame, GLAM, etc.) to determine if there are features that should be included

Revision as of 05:21, 29 March 2017

Boundary conditions

This is just for X3D running in a web browser and integrated with HTML. If there is X3D outside of this limitation, these requirements may or may not apply.


Notes

  1. Some of these requirements may overlap by varying amounts. It was easier to specify them this way then trying to make a complete and non-overlapping set. I'm not going to even claim that this is a complete set, but it is a beginning.
  1. For those that want XHTML, then convert all references to HTML to XHTML and make the appropriate syntax changes. The differences between HTML and XHTML in the appearance of the elements and attributes is that XHTML is strict. This amounts to closing elements, elements and attributes are lower case, mandatory elements and attributes, different MIME type (text/html vs. application/xml or applications/xhtml+xml), and quoted attributes -- see https://www.w3schools.com/html/html_xhtml.asp for details. The WhatWG has a pretty good documentation page on the differences at https://wiki.whatwg.org/wiki/HTML_vs._XHTML.


Requirements

Look "like" HTML
Elements (nodes in X3D-speak) shall be case independent
Attributes (fields in X3D-speak) shall be case independent
X3D nodes shall not have name conflicts with any HTML-defined elements
All X3D nodes shall support all HTML Global Attributes (https://www.w3schools.com/tags/ref_standardattributes.asp)
All X3D fields with the same name as HTML attributes shall behave as the HTML element
TBD: Not all style attributes apply to X3D nodes & fields
Function "like" HTML
All nodes shall be fully integrated with the DOM [This may need to change if certain nodes need to remain hidden from the DOM. For example, the manner which X3DOM implements Inline.]
The scene graph does not need to be DOM (or a portion of it).
Changes to the DOM shall be reflected in the scene graph
Changes to the scene graph shall be reflected in the DOM
Events are handled as HTML events
DOM is the external (i.e., from the web page) API to the scene graph
X3D shall support the evolving web standards for flat-3D (WebGL), VR WebVR) and AR
Existing features & functionality
Perform the following tasks with the requirements that is be conflict with the above
Conduct a review of all existing features (nodes) to determine if any should be deprecated in V4
Conduct a review of all existing functionality (run-time) to determine if any should be deprecated or changed in V4
Include all features and functionality that passes the above reviews
Additional features shall be added
Deformable-skin joint based animation
Support for multiple geometry formats, including OBJ, glTF
Increased Material support with a standard library of pre-defined shaders
Mechanism to navigate a scene without a pointing device
Mechanism to touch or select objects without a pointing device
Review other 3D/VR display technologies (XML3D, A-Frame, GLAM, etc.) to determine if there are features that should be included