Difference between revisions of "X3D version 4.0 Development"
(Backwards/forward compatibility) |
m |
||
(198 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
− | [X3D | + | Status: this page was used for early development and is maintained for archival purposes and design-review insight. |
+ | Please see [http://www.web3d.org/x3d4 X3D Version 4] for continuing progress on this successful effort. | ||
− | * Major technology under consideration: HTML5/Declarative 3D/X3DOM | + | [http://www.web3d.org/x3d4 X3D Version 4] is a major upgrade to the Extensible 3D (X3D) Graphics International Standard that aligns with the HTML5 Recommendation. This is major work in progress, expected to include several future versions. This effort is driven by the X3D Graphics Working Group with regular community outreach. |
− | * Major technology under consideration: Augmented Reality Continuum (ARC) | + | |
+ | ==Genesis and Strategic Overview== | ||
+ | |||
+ | Web3D Consortium working groups currently define specification goals and requirements. Working group efforts are often the focus for defining and testing new X3D components. | ||
+ | |||
+ | We publicly review these goals annually during [http://web3dconference.org/ Web3D Conference] and [http://www.siggraph.org/attend/annual-conferences SIGGRAPH] Birds of a Feather (BOF) meetings ([http://www.web3d.org/event/siggraph-2016-conference-colocated-web3d-2016-anaheim-california SIGGRAPH 2016], upcoming SIGGRAPH 2017). | ||
+ | |||
+ | Suggestions, development and discussion via the [http://web3d.org/mailman/listinfo/x3d-public_web3d.org x3d-public mailing list] is ongoing. | ||
+ | |||
+ | X3D version 3.4 Development efforts were evolutionary improvements to the widely proven X3D Graphics architecture. Consortium members decided to skip version 3.4 and go straight to version 4.0, prior goals and requirements have all been merged here. | ||
+ | |||
+ | The [http://www.web3d.org/wiki/index.php?title=X3D_version_4.0_Development#Candidate_Capabilities Candidate Capabilities] list shows that a lot of interesting capabilities have been proposed and are under way for X3D version 4. However, topics on this list are not guaranteed to be completed! Rather these are all works in progress. | ||
+ | |||
+ | Activity and approval proceeds based on technical contributions and Web3D Consortium Member priorities. Please consider [http://web3d.org/membership/join joining Web3D Consortium] to help advance 3D graphics on the Web.These X3D version 4.0 Development efforts are considering potentially major additions to the baseline X3D architecture. | ||
+ | |||
+ | * Major technology under consideration: [http://www.web3d.org/wiki/index.php/X3D_and_HTML5 HTML5], [http://www.w3.org/community/declarative3d/ Declarative 3D], CSS, [http://www.x3dom.org X3DOM] (see [http://web3d.org/wiki/images/f/f2/X3DOM_4_WebGL_audience_10_2013.pdf Summary slides (Oct 2013)]), and [http://titania.create3000.de/cobweb/ Cobweb] | ||
+ | * Major technology under consideration: [http://www.web3d.org/wiki/index.php/X3D_and_Augmented_Reality Mixed and Augmented Reality (MAR)] (renamed from Augmented Reality Continuum (ARC) | ||
* Relaxing prior design constraints can enable a broader new basis for X3D integration | * Relaxing prior design constraints can enable a broader new basis for X3D integration | ||
− | * Normalizing interaction semantics with HTML5 | + | * Normalizing interaction semantics with HTML5 can further open up X3D for the vast majority of Web authors |
− | Please contact us if you think additional technologies need to be considered. X3D | + | Please [http://www.web3d.org/realtime-3d/contact contact us] if you think additional technologies need to be considered. X3D Futures planning is primarily a Web3D Consortium member-only activity, with community input. |
− | == | + | == Architectural Considerations == |
− | + | This section will synopsize significant differences between X3D version 4 and X3D version 3 that may require structural changes in tools and scenes. Special attention is needed to minimize incompatibilities with legacy software and content. | |
− | + | ||
− | + | Much depends on the target environment. X3D V3.x presumes a controlled environment that interacts with the rest of the (computing) world through a well defined API (called SAI). When X3D is running in the browser (as in fully integrated with the DOM), the DOM defines a portion of the environment in which X3D must operate. For that environment it will be necessary to make changes to X3D so that it is compatible with the DOM. | |
− | + | ||
− | + | == Backwards and Forwards Compatibility == | |
− | + | ||
+ | A major benefit of using the X3D standard is full backwards compatibility with prior VRML97 and X3D content. | ||
+ | Thanks to careful design and insistence on implementation/evaluation, the X3D International Standard has maintained both steady growth and interoperability ever since Virtual Reality Modeling Language (VRML) in 1997. This track record of stability and innovation is among the best in the 3D graphics industry. | ||
+ | |||
+ | Our goal is to maximize, but not necessarily require, backwards compatibility in version 4.0 with the version 3.x specifications | ||
+ | * A great majority of X3D nodes and features are likely achievable without change | ||
+ | * Some X3D features may require import/export conversion for compatibility (event model reconciliation, ROUTEs and sensors perhaps) | ||
+ | * A few features might be refactored, deprecated or obsoleted (none yet identified) | ||
+ | * Name deconfliction: HTML Script versus embedded X3D Script | ||
The comprehensive forward compatibility of VRML97 and X3D with later-developed X3D versions shows that careful anticipatory design is achievable. | The comprehensive forward compatibility of VRML97 and X3D with later-developed X3D versions shows that careful anticipatory design is achievable. | ||
+ | |||
+ | X3D version 4.0 Development efforts are currently focused on HTML5, Declarative 3D, X3DOM, and Cobweb with many more issues under consideration. | ||
+ | * Discussion of [[Importing and adding nodes in HTML]] | ||
+ | |||
+ | X3D Version 4.1 is focused on Mixed and Augmented Reality (MAR) capabilities, which may also require architectural changes. Some new technologies may get pushed from 4.0 to 4.1 (or back again) after careful consideration by the respective working groups. | ||
+ | |||
+ | Related specification support and changes | ||
+ | *As with all other X3D components, all work is defined in the abstract specification has corresponding file encodings (.x3d .x3dv .x3db) and language bindings (ECMAScript and Java). | ||
+ | *Compatibility concerns include evolutionary efforts to upgrade the X3D Compressed Binary Encoding (CBE), as described in the [http://www.web3d.org/realtime-3d/working-groups/x3d/compressed-binary/x3d-compressed-binary-encoding-call-contributions X3D Compressed Binary Encoding Call For Contributions]. | ||
+ | *ECMAScript (JavaScript) support in X3D needs to be upgraded to the new standard for that rapidly improving programming language. | ||
+ | **[http://standards.iso.org/ittf/PubliclyAvailableStandards/c055755_ISO_IEC_16262_2011(E).zip ISO/IEC 16262:2011 Information technology — ECMAScript language specification] (.zip download) | ||
+ | **Downloadable from [http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html ISO Publicly Available Standards] site without charge | ||
+ | **This relates to [http://www.web3d.org/files/specifications/19777-1/V3.0/index.html 19777-1 Part 2, X3D Scene Access Interface (SAI) language bindings for EcmaScript] | ||
+ | |||
+ | |||
+ | == Capabilities == | ||
+ | |||
+ | Component improvements and additions considered and recommended by the X3D Working Group, with review by the X3D community. | ||
+ | The draft X3D specifications are approved by Web3D Consortium Board of Directors and then submitted to ISO for ratification. | ||
+ | |||
+ | All suggestions and recommendations are welcome. | ||
+ | Please [http://www.web3d.org/realtime-3d/contact contact us] if you think additional technologies need to be considered. | ||
+ | |||
+ | === Accepted Capabilities === | ||
+ | |||
+ | These capabilities are accepted in principle by the X3D Working Group. | ||
+ | Further feasible work remains in specification writing, examples, implementation and evaluation. | ||
+ | |||
+ | * TODO link reference pages on Web3D.org | ||
+ | * TODO link specification-tracking spreadsheet | ||
+ | * [http://www.web3d.org/specifications/X3dNodeInventoryComparison.pdf X3D Node Inventory Comparison] (spreadsheet [http://www.web3d.org/specifications/X3dNodeInventoryComparison.xlsx .xlsx]) shows implementation coverage | ||
+ | * TODO how to track examples? | ||
+ | |||
+ | TODO copy full entries from below, edit for clarity and consistency. | ||
+ | |||
+ | * [http://svn.xj3d.org/xj3d_website/trunk/extensions/annotation.html Annotations component] | ||
+ | *'''[http://www.web3d.org/realtime-3d/working-groups/h-anim Humanoid Animation (HAnim)]''' version 2: anatomical correctness for skeleton and skinning, motion animation, hands and feet. Future: faces, organs | ||
+ | * Lighting model: glTF and Physically Based Rendering (PBR) | ||
+ | * Materials: improvements to Material and TwoSidedMaterial | ||
+ | ** to make them modern (e.g. normal maps) | ||
+ | ** consistent with PhysicalMaterial (e.g. texture slots inside Material). | ||
+ | * Texturing - Projective Texture Mapping (PTM), Environment Lighting | ||
+ | * PointProperties | ||
+ | * Volume Rendering component extensions | ||
+ | * Security Considerations section added to each component. | ||
+ | |||
+ | === Approved Capabilities === | ||
+ | |||
+ | These capabilities are published in the github draft X3Dv4 specification, reviewed by the X3D community for comment, fully recommended by the X3D Working Group, and approved by the Web3D Consortium Board of Directors. | ||
+ | |||
+ | * No capabilities for X3Dv4 are yet approved. | ||
+ | |||
+ | === Candidate Capabilities === | ||
+ | |||
+ | Candidate capabilities are under active consideration by the X3D Working Group. | ||
+ | |||
+ | * Each of the following possibilities for X3D version 4 have been discussed by the various X3D working groups during meetings and on mailing lists. | ||
+ | * Each potential capability is considered to be a feasible (and in most cases, straightforward) addition to the existing X3D version 3.3 architecture. | ||
+ | |||
+ | Working notes: | ||
+ | # TODO: Which experimental nodes implemented by X3D browsers are ready for consideration? Candidates include [http://doc.instantreality.org Fraunhofer], X3DOM, Cobweb, other members and working groups? | ||
+ | # TODO: articulate server-side visualization: Big Data, cloud computing, and related issues. | ||
+ | # Discussion from 24 FEB 2019: put X3D-HTML5 integration in a new Annex in 19775-1 to see if that works. Much easier lift procedurally than starting a separate 19775-3 specification. Dick described tradeoffs. Seems like a good idea to put candidate text in an Annex before committing to a whole new specification. | ||
+ | ## Of note: Roy created a [https://github.com/Web3DConsortium/X3D/tree/master/ISO-IEC%2019775/ISO-IEC%2019775-3/ISO-IEC%2019775-3%20V4.0/ISO-IEC%2019775-3%20V4.0%20WD1 draft 19775-3] in github for HTML5-X3D | ||
+ | ## Don and Dick will look at prior materials and create draft annex structure for HTML5-DOM in X3D Architecture 19775-1. | ||
+ | # Discussion (move onto Mantis and mailing list): should we consider adding X3DUOM descriptive prose in Concepts section? It is becoming essential to confirming that node interfaces are well specified and implementable precisely/interoperably in various X3D file encodings and language bindings. | ||
+ | ## Summary: "[http://www.web3d.org/specifications/X3DUOM.html X3DUOM] fully defines all object-oriented relationships for nodes, fields and abstract interfaces in the X3D Architecture. X3DUOM is a validatable expression of X3D relationships that can be applied to implement various X3D file encodings and programming-language bindings." | ||
+ | |||
+ | Nodes and components: | ||
+ | *'''Appearance''' | ||
+ | **'''Images''': recommended formats for imagery and video (.gif .bmp .flv .exr .hdr etc.) - details below: | ||
+ | ***'''GIF''': [http://www.w3.org/Graphics/GIF/spec-gif89a.txt "Graphics Interchange Format, Version 89a"], W3C. 31 July 1990. | ||
+ | ***'''BMP''': [https://en.wikipedia.org/wiki/BMP_file_format BMP]. Note: Originally developed by Microsoft for OS/2 and Windows. | ||
+ | ***'''FLV''': <span style="text-decoration: line-through;">[http://download.macromedia.com/f4v/video_file_format_spec_v10_1.pdf FLV and F4V] usage has been deprecated by browser manufacturers.</span> | ||
+ | ***'''EXR''': [http://www.openexr.com/openexrfilelayout.pdf EXR file layout], developed as OpenEXR by Industrial light and magic (ILM). This requires HDR (see below). | ||
+ | ***'''Khronos Texture Format (KTX)''': Khronos [https://www.khronos.org/opengles/sdk/tools/KTX KTX File Format] | ||
+ | ***'''QR codes''': [http://en.wikipedia.org/wiki/QR_code QR codes], while useful in Mixed Augmented Reality (MAR) applications, are a content representation and not a file format. | ||
+ | ***'''attributes''': width_changed, height_changed, aspectRatio_changed with accessType outputOnly | ||
+ | **'''Materials''': advanced parameters | ||
+ | **'''HDR''': Improvements in both materials and rendering for high definition rendering (HDR) technological advances. | ||
+ | **[[X3D Multitexture | Multitexture]]: review for correctness, completeness and conformance of rendering example scenes | ||
+ | **'''Rendering''': bump maps, [http://doc.instantreality.org/tutorial/dynamic-shadows/ shadows], edge smoothing, gamma correction, Non-Photorealistic Rendering (NPR) | ||
+ | **[http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/components/shaders.html Shaders]: improved support and better interoperability, library of examples; [http://doc.instantreality.org/documentation/nodetype/CommonSurfaceShader/ CommonSurfaceShader?] | ||
+ | **'''Texturing''': [http://en.wikipedia.org/wiki/Texture_atlas Texture atlas], [http://en.wikipedia.org/wiki/Projective_texture_mapping projective texture mapping (PTM)], [http://www.xj3d.org/extensions/render_texture.html RenderedTexture node] for multipass rendering - 2D texture version of GeneratedCubeMapTexture, first proposed by Xj3D and also implemented in X3DOM and InstantReality, useful for all kinds of NPR, shadows, mirrors, etc. Also review 8-bit vs 24-bit texture application differences - see https://castle-engine.sourceforge.io/x3d_multi_texturing.php#section_default_texture_mode. | ||
+ | **'''Chroma key''' for TextureProperties node to support special transparent background. | ||
+ | *'''Audio and video''': alignment with [https://www.w3.org/2011/audio W3C Audio Working Group], especially for [https://webaudio.github.io/web-audio-api Web Audio API] and [https://webaudio.github.io/web-midi-api Web Midi API]. | ||
+ | **''Considerations.'' Adding royalty-free formats, streamability, [http://web3d.org/pipermail/x3d-public_web3d.org/2013-December/002681.html disabling attenuation], 3D aural spatialization using reflection from simple geometry (such as [http://gamma.cs.unc.edu/Sound/RESound RESOUND]). | ||
+ | **''Point paper.'' [http://www.web3d.org/specifications/X3Dv4StrategiesToImproveSoundComponent.pdf Strategies to Improve X3D v4 Sound Component] for 3D sound model and audio rendering | ||
+ | *'''[http://www.web3d.org/realtime-3d/working-groups/computer-aided-design-cad Computer Aided Design (CAD)]''' a new profile to be named CADInteractive, to include: | ||
+ | **[http://www.web3d.org/wiki/index.php/X3D_v4.0_CAD_Improvements X3D v4.0 CAD Improvements] with 3D printing + 3D scanning included | ||
+ | **[http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/CADInterchange.html CADInterchange profile] plus FillProperties/LineProperties, primitive/Geometry2D nodes, Extrusion, NURBS, ClipPlane | ||
+ | **Part selection/animation, 3D printing, [http://www.web3d.org/realtime-3d/news/3d-graphics-compress-call-contributions Compressed Binary Encoding (CBE)], possibly [http://svn.xj3d.org/xj3d_website/trunk/extensions/annotation.html annotations component] | ||
+ | ** Building Information Models (BIM), Architecture Engineering Construction (AEC), Physical Sensors | ||
+ | *'''[http://www.ecma-international.org/publications/standards/Ecma-262.htm ECMAScript]''' (Javascript) specification revision compatibility with [http://www.web3d.org/files/specifications/19777-1/V3.0/index.html ECMAScript encoding]; possibly add C# or Python support. Note that minor changes in the current X3D Script node might be needed to enable full integration into HTML/DOM. | ||
+ | *'''Events''' | ||
+ | ** Review X3D event interoperability with other event models, such as Document Object Model (DOM) Recommendations | ||
+ | ** Add capability for Event logging and playback so that deterministic replay is possible for demonstrations and debugging | ||
+ | *'''Generalized input/output interface support''' | ||
+ | ** Possibly [http://www.cs.unc.edu/Research/vrpn/index.html Virtual Reality Peripheral Network (VRPN)], gesture recognition (such as [http://en.wikipedia.org/wiki/Kinect KINECT], [http://www.leapmotion.com LEAP]), etc. | ||
+ | ** Support for arbitrary sensors and user interaction devices | ||
+ | * '''Geometry''' | ||
+ | ** PointSet point size and associated Normal vectors; Octrees | ||
+ | ** 3D Extruded Text | ||
+ | ** Support for [http://en.wikipedia.org/wiki/Web_typography Web typography] using [http://www.w3.org/TR/WOFF Web Open Fonts Format (WOFF)] | ||
+ | ** Progressive meshes (suitable for both compression and streaming) | ||
+ | ** Support for direct loading of compressed [https://x3dom.org/src Shape Resource Container (SRC)] and [https://www.x3dom.org/examples/externalshape-with-gltf-binary-glb ExternalShape] from Fraunhofer | ||
+ | ** Direct loading of other geometry meshes such as [https://en.wikipedia.org/wiki/STL_(file_format) STL] and [https://en.wikipedia.org/wiki/PLY_(file_format) PLY] | ||
+ | *'''[http://www.web3d.org/realtime-3d/working-groups/x3d-earth Geospatial X3D]''' component | ||
+ | ** [http://www.igraphics.com/Standards/EnhancedGeospatialComponent_2007_10_30/Part01/X3D.html Enhanced Geospatial Component - spatial reference frame (SRF)] and [http://www.opengeospatial.org/standards/kml KML] support, [http://www.opengeospatial.org/projects/initiatives/3dpie OGC 3D Portrayal], [http://web3d.org/pipermail/x3d-public_web3d.org/2010-December/001187.html GpsSensor], [http://openlayers.org OpenLayer] mashups | ||
+ | ** GeoSet collection of adjacent GeoElevationGrid nodes to enable proper computation of normals for edge boundaries of adjacent grids | ||
+ | * '''Interoperability''': include ''class'' attribute for all nodes to all encodings | ||
+ | * '''[http://www.json.org JSON]''': JavaScript Object Notation as an X3D encoding ([http://web3d.org/pipermail/x3d-public_web3d.org/2014-July/thread.html#2854 assessment thread]), relation to [http://www.khronos.org/gltf GlTF], streaming considerations | ||
+ | *'''[http://www.web3d.org/realtime-3d/working-groups/medx3d Medical working group]''' ImageTextureAtlas plus capabilities including recent Community Improvements to the Volume Component (Aberlaiz et al 2018 [https://dl.acm.org/citation.cfm?id=3075945], and MPR) | ||
+ | ** [http://svn.xj3d.org/xj3d_website/trunk/extensions/annotation.html Annotations component] and metadata usage | ||
+ | ** Archival 3D medical records, potential emphasis on [http://en.wikipedia.org/wiki/Traumatic_brain_injury Traumatic brain injury (TBI)] volume visualization | ||
+ | ** Haptics component for force feedback; [http://www.w3.org/TR/vibration W3C Vibrations API] for tactile feedback | ||
+ | ** Soft-body physics component to complement rigid-body physics component | ||
+ | * '''Mobile Profile.''' TODO - needed? Calling out a reduced palette for mobile devices remains interesting, but might instead remain a browser-optional optimization. | ||
+ | * '''[http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/core.html#Nodereference Metadata]''': support for embedding information useful for applications utilizing X3D | ||
+ | ** Enumerated types: better access, typing, naming, and validation than using MetadataSet/MetadataString combinations | ||
+ | * '''Mixed and Augmented Reality (MAR)''': follow ISO MAR Reference Model, integrate multiple capabilities with devices situated in real world | ||
+ | *'''Networking''': consider [http://www.web3d.org/x3d/content/examples/Basic/Networking NetworkSensor] and event-passing issues, streaming using [http://www.json.org JSON], server-side 3D topics | ||
+ | *'''Security and privacy''': | ||
+ | ** Include X3D Networking Component Level 4 support for https in Immersive, Interactive and other commonly used profiles | ||
+ | ** Review X3D specifications to ensure that Security Considerations are fully documented throughout in every component | ||
+ | ** [http://www.w3.org/standards/xml/security XML Security] provides best-available encryption, digital signature (authentication) | ||
+ | ** [http://www.w3.org/standards/webdesign/privacy Web Privacy]: examine X3D compatibility with Do Not Track, P3P, POWDER | ||
+ | *'''Viewing and navigation''': [http://www.web3d.org/x3d/content/examples/Basic/development/CameraExamplesIndex.html cinematic camera control], alternative navigation types (such as PAN, [http://www.x3dom.org/?p=3536 TURNTABLE] etc.), [http://www.web3d.org/files/specifications/19775-1/V3.3/Part01/behaviours.html Recommended navigation behaviours] review, and old MatrixTransform node (esp. useful for CAD, VR/AR etc., implemented in X3DOM and InstantReality) | ||
+ | *'''Virtual Reality (VR)''': requirements definition needed includes viewing with stereo devices, interocular distance, frame-rate requirements, comparison (and potential profile) for [https://webvr.info WebVR] capabilities, physiological considerations, health and safety, relation with Mixed Augmented Reality (MAR), etc. | ||
+ | |||
+ | === Deferred Capabilities === | ||
+ | |||
+ | Deferred capabilities are candidates for inclusion in a follow-on version of X3Dv4. | ||
+ | |||
+ | In general, new capabilities for Mixed Augmented Reality (MAR) are deferred to X3Dv4.1. | ||
+ | |||
+ | * None yet listed. | ||
+ | |||
+ | === Deprecated Capabilities === | ||
+ | |||
+ | [https://en.wikipedia.org/wiki/Deprecation#Software_deprecation Deprecation] means that a feature will still be included for the next version, but is nevertheless expected to be removed in future versions. This approach can simplify transition of content to a new approach. | ||
+ | |||
+ | Under consideration: | ||
+ | * GeoOrigin node was deprecated in X3Dv3.3 and needs to be either restored or removed. | ||
+ | * Layout component - perhaps no longer needed, especially with HTML5 (and MAR) integration expected. | ||
+ | * Shaders component - deserved close reconsideration. | ||
+ | |||
+ | === Excluded Capabilities === | ||
+ | |||
+ | Excluded capabilities are evaluated as "out of scope" for X3D, and are not expected to be included in future versions. | ||
+ | |||
+ | * '''Scalable Vector Graphics (SVG)''' Native support for image generation on the fly, images could be static or dynamic. See [https://www.w3.org/Graphics/ W3C Graphics on the web]. Note that event-based interaction by an X3D scene with an SVG image, all within an HTML5 pages, is still expected as a future capability. | ||
+ | |||
+ | === Removed Capabilities === | ||
+ | |||
+ | Removed capabilities will no longer be supported in X3Dv4. | ||
+ | |||
+ | * None yet listed. | ||
+ | |||
+ | |||
+ | == Legacy Issues == | ||
+ | |||
+ | We plan to confirm the existence of complete capabilities for X3D v3.3 prior to final approval of X3D version 4. | ||
+ | |||
+ | * Full support for all existing X3D v3.3 components: | ||
+ | ** At least two compatible implementations (including at least one in open source) plus repeatable example scenes | ||
+ | ** Layer, ParticleSystems, RigidBodyPhysics, Shaders, TODO others | ||
+ | ** TransformSensor node: [http://doc.instantreality.org/documentation/nodetype/TransformSensor/ IGD] and [http://www.parallelgraphics.com/developer/products/cortona/extensions/transformsensor/ old Cortona] | ||
+ | ** Note that it is not a requirement that all features and capabilities in X3D V3.3 are included in V4.0 | ||
+ | |||
+ | * Is it necessary for Layout component to be deprecated or improved? | ||
+ | * Are there other features or capabilities that should not or are not able to move into V4.0? | ||
+ | |||
+ | == Open Questions == | ||
+ | |||
+ | * Are MAR abstract design and X3D AR proposals sufficiently mature to enable integration with HTML5/Declarative 3D/X3DOM/Cobweb issues? | ||
+ | * Are the previously X3D Layer/Layering components compatible with HTML5 overlay model? Are they still needed, perhaps for multiscreen or CAVE support? | ||
+ | * Mashup and interoperability support: is anything else needed for broader use with the Web? YouTube etc. | ||
+ | |||
+ | == Related Work== | ||
+ | |||
+ | Much careful planning is involved, we are working to ensure that X3D version 4 can be coherently advanced in combination with a [http://www.web3d.org/specifications/X3dSpecificationRelationships.png coordinated set of steadily evolving ISO/IEC standards]. | ||
+ | *'''X3D Efficient Binary Encoding (EBE).''' This work is proceeding in parallel. X3D version 4 must maintain compatibility with all encodings. See also SRC format (Web3D 2014)and ExternalGeometry node in InstantPlayer and X3DOM | ||
+ | *'''X3D JavaScript Object Notation (JSON) Encoding.''' This work is proceeding in parallel. X3D version 4 must maintain compatibility with all encodings. | ||
+ | *'''X3D version 4.0 (HTML5/X3D DOM)'''. This work is proceeding in parallel. X3D version 4 support is expected. | ||
+ | *'''X3D version 4.1 (Mixed and Augmented Reality)'''. Nodes and capabilities in this arena will build on v4.0 and HTML5. Experimentation, evolution and evaluation occurs throughout. | ||
+ | ** '''[[Essential Elements of X3D]]''' collects elements that are essential to X3D | ||
+ | |||
+ | Technologies and activities that relate to X3D version 4 are: | ||
+ | * [https://webvr.info/ '''WebVR'''] "bringing virtual reality to the web" - standardize the interface to VR displays and controllers | ||
+ | * [https://www.w3.org/community/decwebvr/ '''W3C's Declarative WebVR Community Group'''] formed to developed a declarative 3D standard for WebVR | ||
+ | * [https://threejs.org/ '''three.js'''], a JavaScript library | ||
+ | * [https://aframe.io/ '''A-Frame'''] "a web framework for building virtual reality experiences" | ||
+ | * [http://xml3d.org/ '''XML3D'''] " seamless integration of 3D content into HTML pages" | ||
+ | |||
+ | == Timeline == | ||
+ | |||
+ | # links to guiding Web3D pages on spec strategy and process, | ||
+ | # link to status tracking spreadsheet, | ||
+ | # we effectively have a Web3D/ISO Working Draft (WD) now, | ||
+ | # we continue adding components/nodes via working group process, | ||
+ | # Implement, evaluate examples, refine, resolve all related issues, | ||
+ | # (currently) Mantis is where issues, draft spec functionality and design tradeoffs are captured, reviewed and approved, | ||
+ | # Apply new prose sections in github spec repository (by Dick and I, many improvements occurred this week), | ||
+ | # Board of Directors consider whether draft spec is a public release to encourage engagement - or not. | ||
+ | # '''Web3D announces X3D v4 Working Draft availability at Web3D & SIGGRAPH 2019 conferences''', | ||
+ | # Working Group continues to add nodes and components, | ||
+ | # Confirm implement/evaluate examples complete | ||
+ | # Excerpted draft spec and implementation details posted for public comment on a per-component basis ~monthly, | ||
+ | # '''Web3D deadline for new additions to X3Dv4: 16 DEC 2019''' | ||
+ | # +1 month, final public comments period and editorial work, member review, Board review and approval | ||
+ | # '''Web3D submits New Work Item Proposal (NWIP) and Committee Draft (CD) to ISO''' | ||
+ | # ISO dates/deadline for DIS/FDIS/IS proceed | ||
+ | # Work begins on X3Dv4.1 Working Draft (WD) | ||
+ | |||
+ | == Schedule (old section, review and merge with Timeline) == | ||
+ | |||
+ | '''ISO Considerations''' | ||
+ | * Deciding readiness for ISO New Work Item Proposal (NWIP): we need Committee Draft (CD) specification prose for each planned capability. | ||
+ | * Web3D Consortium is not locked into an annual schedule, ISO handling is flexible. | ||
+ | * Once the NWIP is approved, ISO rules for schedule and review are established. | ||
+ | |||
+ | '''Execution goals''' | ||
+ | * Review progress during monthly calls, Web3D Conference, and SIGGRAPH Conference. | ||
+ | * We are continuing a monthly review schedule for submissions so that we can build out X3D version 4 one component at a time. | ||
+ | * We are planning to have a 1-year deadline for completion of CD specification prose, rather than wait until all possible version 4 work is ready. | ||
+ | * Web3D Consortium members and public review when a final draft specification is ready to proceed to ISO. | ||
+ | * Any new components not meeting Web3D deadlines might be a candidate for deferral to V4.1. Or considered not ready. | ||
+ | |||
+ | '''Progress''' | ||
+ | |||
+ | * Active development of X3D, X3DOM and Cobweb content is tracking HTML 5 capabilities now | ||
+ | * We participate and contribute to the W3C Community Group for [http://www.w3.org/community/declarative3d Declarative 3D] |
Latest revision as of 15:49, 31 October 2022
Status: this page was used for early development and is maintained for archival purposes and design-review insight. Please see X3D Version 4 for continuing progress on this successful effort.
X3D Version 4 is a major upgrade to the Extensible 3D (X3D) Graphics International Standard that aligns with the HTML5 Recommendation. This is major work in progress, expected to include several future versions. This effort is driven by the X3D Graphics Working Group with regular community outreach.
Contents
Genesis and Strategic Overview
Web3D Consortium working groups currently define specification goals and requirements. Working group efforts are often the focus for defining and testing new X3D components.
We publicly review these goals annually during Web3D Conference and SIGGRAPH Birds of a Feather (BOF) meetings (SIGGRAPH 2016, upcoming SIGGRAPH 2017).
Suggestions, development and discussion via the x3d-public mailing list is ongoing.
X3D version 3.4 Development efforts were evolutionary improvements to the widely proven X3D Graphics architecture. Consortium members decided to skip version 3.4 and go straight to version 4.0, prior goals and requirements have all been merged here.
The Candidate Capabilities list shows that a lot of interesting capabilities have been proposed and are under way for X3D version 4. However, topics on this list are not guaranteed to be completed! Rather these are all works in progress.
Activity and approval proceeds based on technical contributions and Web3D Consortium Member priorities. Please consider joining Web3D Consortium to help advance 3D graphics on the Web.These X3D version 4.0 Development efforts are considering potentially major additions to the baseline X3D architecture.
- Major technology under consideration: HTML5, Declarative 3D, CSS, X3DOM (see Summary slides (Oct 2013)), and Cobweb
- Major technology under consideration: Mixed and Augmented Reality (MAR) (renamed from Augmented Reality Continuum (ARC)
- Relaxing prior design constraints can enable a broader new basis for X3D integration
- Normalizing interaction semantics with HTML5 can further open up X3D for the vast majority of Web authors
Please contact us if you think additional technologies need to be considered. X3D Futures planning is primarily a Web3D Consortium member-only activity, with community input.
Architectural Considerations
This section will synopsize significant differences between X3D version 4 and X3D version 3 that may require structural changes in tools and scenes. Special attention is needed to minimize incompatibilities with legacy software and content.
Much depends on the target environment. X3D V3.x presumes a controlled environment that interacts with the rest of the (computing) world through a well defined API (called SAI). When X3D is running in the browser (as in fully integrated with the DOM), the DOM defines a portion of the environment in which X3D must operate. For that environment it will be necessary to make changes to X3D so that it is compatible with the DOM.
Backwards and Forwards Compatibility
A major benefit of using the X3D standard is full backwards compatibility with prior VRML97 and X3D content. Thanks to careful design and insistence on implementation/evaluation, the X3D International Standard has maintained both steady growth and interoperability ever since Virtual Reality Modeling Language (VRML) in 1997. This track record of stability and innovation is among the best in the 3D graphics industry.
Our goal is to maximize, but not necessarily require, backwards compatibility in version 4.0 with the version 3.x specifications
- A great majority of X3D nodes and features are likely achievable without change
- Some X3D features may require import/export conversion for compatibility (event model reconciliation, ROUTEs and sensors perhaps)
- A few features might be refactored, deprecated or obsoleted (none yet identified)
- Name deconfliction: HTML Script versus embedded X3D Script
The comprehensive forward compatibility of VRML97 and X3D with later-developed X3D versions shows that careful anticipatory design is achievable.
X3D version 4.0 Development efforts are currently focused on HTML5, Declarative 3D, X3DOM, and Cobweb with many more issues under consideration.
- Discussion of Importing and adding nodes in HTML
X3D Version 4.1 is focused on Mixed and Augmented Reality (MAR) capabilities, which may also require architectural changes. Some new technologies may get pushed from 4.0 to 4.1 (or back again) after careful consideration by the respective working groups.
Related specification support and changes
- As with all other X3D components, all work is defined in the abstract specification has corresponding file encodings (.x3d .x3dv .x3db) and language bindings (ECMAScript and Java).
- Compatibility concerns include evolutionary efforts to upgrade the X3D Compressed Binary Encoding (CBE), as described in the X3D Compressed Binary Encoding Call For Contributions.
- ECMAScript (JavaScript) support in X3D needs to be upgraded to the new standard for that rapidly improving programming language.
- ISO/IEC 16262:2011 Information technology — ECMAScript language specification (.zip download)
- Downloadable from ISO Publicly Available Standards site without charge
- This relates to 19777-1 Part 2, X3D Scene Access Interface (SAI) language bindings for EcmaScript
Capabilities
Component improvements and additions considered and recommended by the X3D Working Group, with review by the X3D community. The draft X3D specifications are approved by Web3D Consortium Board of Directors and then submitted to ISO for ratification.
All suggestions and recommendations are welcome. Please contact us if you think additional technologies need to be considered.
Accepted Capabilities
These capabilities are accepted in principle by the X3D Working Group. Further feasible work remains in specification writing, examples, implementation and evaluation.
- TODO link reference pages on Web3D.org
- TODO link specification-tracking spreadsheet
- X3D Node Inventory Comparison (spreadsheet .xlsx) shows implementation coverage
- TODO how to track examples?
TODO copy full entries from below, edit for clarity and consistency.
- Annotations component
- Humanoid Animation (HAnim) version 2: anatomical correctness for skeleton and skinning, motion animation, hands and feet. Future: faces, organs
- Lighting model: glTF and Physically Based Rendering (PBR)
- Materials: improvements to Material and TwoSidedMaterial
- to make them modern (e.g. normal maps)
- consistent with PhysicalMaterial (e.g. texture slots inside Material).
- Texturing - Projective Texture Mapping (PTM), Environment Lighting
- PointProperties
- Volume Rendering component extensions
- Security Considerations section added to each component.
Approved Capabilities
These capabilities are published in the github draft X3Dv4 specification, reviewed by the X3D community for comment, fully recommended by the X3D Working Group, and approved by the Web3D Consortium Board of Directors.
- No capabilities for X3Dv4 are yet approved.
Candidate Capabilities
Candidate capabilities are under active consideration by the X3D Working Group.
- Each of the following possibilities for X3D version 4 have been discussed by the various X3D working groups during meetings and on mailing lists.
- Each potential capability is considered to be a feasible (and in most cases, straightforward) addition to the existing X3D version 3.3 architecture.
Working notes:
- TODO: Which experimental nodes implemented by X3D browsers are ready for consideration? Candidates include Fraunhofer, X3DOM, Cobweb, other members and working groups?
- TODO: articulate server-side visualization: Big Data, cloud computing, and related issues.
- Discussion from 24 FEB 2019: put X3D-HTML5 integration in a new Annex in 19775-1 to see if that works. Much easier lift procedurally than starting a separate 19775-3 specification. Dick described tradeoffs. Seems like a good idea to put candidate text in an Annex before committing to a whole new specification.
- Of note: Roy created a draft 19775-3 in github for HTML5-X3D
- Don and Dick will look at prior materials and create draft annex structure for HTML5-DOM in X3D Architecture 19775-1.
- Discussion (move onto Mantis and mailing list): should we consider adding X3DUOM descriptive prose in Concepts section? It is becoming essential to confirming that node interfaces are well specified and implementable precisely/interoperably in various X3D file encodings and language bindings.
- Summary: "X3DUOM fully defines all object-oriented relationships for nodes, fields and abstract interfaces in the X3D Architecture. X3DUOM is a validatable expression of X3D relationships that can be applied to implement various X3D file encodings and programming-language bindings."
Nodes and components:
- Appearance
- Images: recommended formats for imagery and video (.gif .bmp .flv .exr .hdr etc.) - details below:
- GIF: "Graphics Interchange Format, Version 89a", W3C. 31 July 1990.
- BMP: BMP. Note: Originally developed by Microsoft for OS/2 and Windows.
- FLV: FLV and F4V usage has been deprecated by browser manufacturers.
- EXR: EXR file layout, developed as OpenEXR by Industrial light and magic (ILM). This requires HDR (see below).
- Khronos Texture Format (KTX): Khronos KTX File Format
- QR codes: QR codes, while useful in Mixed Augmented Reality (MAR) applications, are a content representation and not a file format.
- attributes: width_changed, height_changed, aspectRatio_changed with accessType outputOnly
- Materials: advanced parameters
- HDR: Improvements in both materials and rendering for high definition rendering (HDR) technological advances.
- Multitexture: review for correctness, completeness and conformance of rendering example scenes
- Rendering: bump maps, shadows, edge smoothing, gamma correction, Non-Photorealistic Rendering (NPR)
- Shaders: improved support and better interoperability, library of examples; CommonSurfaceShader?
- Texturing: Texture atlas, projective texture mapping (PTM), RenderedTexture node for multipass rendering - 2D texture version of GeneratedCubeMapTexture, first proposed by Xj3D and also implemented in X3DOM and InstantReality, useful for all kinds of NPR, shadows, mirrors, etc. Also review 8-bit vs 24-bit texture application differences - see https://castle-engine.sourceforge.io/x3d_multi_texturing.php#section_default_texture_mode.
- Chroma key for TextureProperties node to support special transparent background.
- Images: recommended formats for imagery and video (.gif .bmp .flv .exr .hdr etc.) - details below:
- Audio and video: alignment with W3C Audio Working Group, especially for Web Audio API and Web Midi API.
- Considerations. Adding royalty-free formats, streamability, disabling attenuation, 3D aural spatialization using reflection from simple geometry (such as RESOUND).
- Point paper. Strategies to Improve X3D v4 Sound Component for 3D sound model and audio rendering
- Computer Aided Design (CAD) a new profile to be named CADInteractive, to include:
- X3D v4.0 CAD Improvements with 3D printing + 3D scanning included
- CADInterchange profile plus FillProperties/LineProperties, primitive/Geometry2D nodes, Extrusion, NURBS, ClipPlane
- Part selection/animation, 3D printing, Compressed Binary Encoding (CBE), possibly annotations component
- Building Information Models (BIM), Architecture Engineering Construction (AEC), Physical Sensors
- ECMAScript (Javascript) specification revision compatibility with ECMAScript encoding; possibly add C# or Python support. Note that minor changes in the current X3D Script node might be needed to enable full integration into HTML/DOM.
- Events
- Review X3D event interoperability with other event models, such as Document Object Model (DOM) Recommendations
- Add capability for Event logging and playback so that deterministic replay is possible for demonstrations and debugging
- Generalized input/output interface support
- Possibly Virtual Reality Peripheral Network (VRPN), gesture recognition (such as KINECT, LEAP), etc.
- Support for arbitrary sensors and user interaction devices
- Geometry
- PointSet point size and associated Normal vectors; Octrees
- 3D Extruded Text
- Support for Web typography using Web Open Fonts Format (WOFF)
- Progressive meshes (suitable for both compression and streaming)
- Support for direct loading of compressed Shape Resource Container (SRC) and ExternalShape from Fraunhofer
- Direct loading of other geometry meshes such as STL and PLY
- Geospatial X3D component
- Enhanced Geospatial Component - spatial reference frame (SRF) and KML support, OGC 3D Portrayal, GpsSensor, OpenLayer mashups
- GeoSet collection of adjacent GeoElevationGrid nodes to enable proper computation of normals for edge boundaries of adjacent grids
- Interoperability: include class attribute for all nodes to all encodings
- JSON: JavaScript Object Notation as an X3D encoding (assessment thread), relation to GlTF, streaming considerations
- Medical working group ImageTextureAtlas plus capabilities including recent Community Improvements to the Volume Component (Aberlaiz et al 2018 [1], and MPR)
- Annotations component and metadata usage
- Archival 3D medical records, potential emphasis on Traumatic brain injury (TBI) volume visualization
- Haptics component for force feedback; W3C Vibrations API for tactile feedback
- Soft-body physics component to complement rigid-body physics component
- Mobile Profile. TODO - needed? Calling out a reduced palette for mobile devices remains interesting, but might instead remain a browser-optional optimization.
- Metadata: support for embedding information useful for applications utilizing X3D
- Enumerated types: better access, typing, naming, and validation than using MetadataSet/MetadataString combinations
- Mixed and Augmented Reality (MAR): follow ISO MAR Reference Model, integrate multiple capabilities with devices situated in real world
- Networking: consider NetworkSensor and event-passing issues, streaming using JSON, server-side 3D topics
- Security and privacy:
- Include X3D Networking Component Level 4 support for https in Immersive, Interactive and other commonly used profiles
- Review X3D specifications to ensure that Security Considerations are fully documented throughout in every component
- XML Security provides best-available encryption, digital signature (authentication)
- Web Privacy: examine X3D compatibility with Do Not Track, P3P, POWDER
- Viewing and navigation: cinematic camera control, alternative navigation types (such as PAN, TURNTABLE etc.), Recommended navigation behaviours review, and old MatrixTransform node (esp. useful for CAD, VR/AR etc., implemented in X3DOM and InstantReality)
- Virtual Reality (VR): requirements definition needed includes viewing with stereo devices, interocular distance, frame-rate requirements, comparison (and potential profile) for WebVR capabilities, physiological considerations, health and safety, relation with Mixed Augmented Reality (MAR), etc.
Deferred Capabilities
Deferred capabilities are candidates for inclusion in a follow-on version of X3Dv4.
In general, new capabilities for Mixed Augmented Reality (MAR) are deferred to X3Dv4.1.
- None yet listed.
Deprecated Capabilities
Deprecation means that a feature will still be included for the next version, but is nevertheless expected to be removed in future versions. This approach can simplify transition of content to a new approach.
Under consideration:
- GeoOrigin node was deprecated in X3Dv3.3 and needs to be either restored or removed.
- Layout component - perhaps no longer needed, especially with HTML5 (and MAR) integration expected.
- Shaders component - deserved close reconsideration.
Excluded Capabilities
Excluded capabilities are evaluated as "out of scope" for X3D, and are not expected to be included in future versions.
- Scalable Vector Graphics (SVG) Native support for image generation on the fly, images could be static or dynamic. See W3C Graphics on the web. Note that event-based interaction by an X3D scene with an SVG image, all within an HTML5 pages, is still expected as a future capability.
Removed Capabilities
Removed capabilities will no longer be supported in X3Dv4.
- None yet listed.
Legacy Issues
We plan to confirm the existence of complete capabilities for X3D v3.3 prior to final approval of X3D version 4.
- Full support for all existing X3D v3.3 components:
- At least two compatible implementations (including at least one in open source) plus repeatable example scenes
- Layer, ParticleSystems, RigidBodyPhysics, Shaders, TODO others
- TransformSensor node: IGD and old Cortona
- Note that it is not a requirement that all features and capabilities in X3D V3.3 are included in V4.0
- Is it necessary for Layout component to be deprecated or improved?
- Are there other features or capabilities that should not or are not able to move into V4.0?
Open Questions
- Are MAR abstract design and X3D AR proposals sufficiently mature to enable integration with HTML5/Declarative 3D/X3DOM/Cobweb issues?
- Are the previously X3D Layer/Layering components compatible with HTML5 overlay model? Are they still needed, perhaps for multiscreen or CAVE support?
- Mashup and interoperability support: is anything else needed for broader use with the Web? YouTube etc.
Related Work
Much careful planning is involved, we are working to ensure that X3D version 4 can be coherently advanced in combination with a coordinated set of steadily evolving ISO/IEC standards.
- X3D Efficient Binary Encoding (EBE). This work is proceeding in parallel. X3D version 4 must maintain compatibility with all encodings. See also SRC format (Web3D 2014)and ExternalGeometry node in InstantPlayer and X3DOM
- X3D JavaScript Object Notation (JSON) Encoding. This work is proceeding in parallel. X3D version 4 must maintain compatibility with all encodings.
- X3D version 4.0 (HTML5/X3D DOM). This work is proceeding in parallel. X3D version 4 support is expected.
- X3D version 4.1 (Mixed and Augmented Reality). Nodes and capabilities in this arena will build on v4.0 and HTML5. Experimentation, evolution and evaluation occurs throughout.
- Essential Elements of X3D collects elements that are essential to X3D
Technologies and activities that relate to X3D version 4 are:
- WebVR "bringing virtual reality to the web" - standardize the interface to VR displays and controllers
- W3C's Declarative WebVR Community Group formed to developed a declarative 3D standard for WebVR
- three.js, a JavaScript library
- A-Frame "a web framework for building virtual reality experiences"
- XML3D " seamless integration of 3D content into HTML pages"
Timeline
- links to guiding Web3D pages on spec strategy and process,
- link to status tracking spreadsheet,
- we effectively have a Web3D/ISO Working Draft (WD) now,
- we continue adding components/nodes via working group process,
- Implement, evaluate examples, refine, resolve all related issues,
- (currently) Mantis is where issues, draft spec functionality and design tradeoffs are captured, reviewed and approved,
- Apply new prose sections in github spec repository (by Dick and I, many improvements occurred this week),
- Board of Directors consider whether draft spec is a public release to encourage engagement - or not.
- Web3D announces X3D v4 Working Draft availability at Web3D & SIGGRAPH 2019 conferences,
- Working Group continues to add nodes and components,
- Confirm implement/evaluate examples complete
- Excerpted draft spec and implementation details posted for public comment on a per-component basis ~monthly,
- Web3D deadline for new additions to X3Dv4: 16 DEC 2019
- +1 month, final public comments period and editorial work, member review, Board review and approval
- Web3D submits New Work Item Proposal (NWIP) and Committee Draft (CD) to ISO
- ISO dates/deadline for DIS/FDIS/IS proceed
- Work begins on X3Dv4.1 Working Draft (WD)
Schedule (old section, review and merge with Timeline)
ISO Considerations
- Deciding readiness for ISO New Work Item Proposal (NWIP): we need Committee Draft (CD) specification prose for each planned capability.
- Web3D Consortium is not locked into an annual schedule, ISO handling is flexible.
- Once the NWIP is approved, ISO rules for schedule and review are established.
Execution goals
- Review progress during monthly calls, Web3D Conference, and SIGGRAPH Conference.
- We are continuing a monthly review schedule for submissions so that we can build out X3D version 4 one component at a time.
- We are planning to have a 1-year deadline for completion of CD specification prose, rather than wait until all possible version 4 work is ready.
- Web3D Consortium members and public review when a final draft specification is ready to proceed to ISO.
- Any new components not meeting Web3D deadlines might be a candidate for deferral to V4.1. Or considered not ready.
Progress
- Active development of X3D, X3DOM and Cobweb content is tracking HTML 5 capabilities now
- We participate and contribute to the W3C Community Group for Declarative 3D