diff --git a/doc/RFC_XR_Fragments.html b/doc/RFC_XR_Fragments.html
index 6920d4f..d804fdb 100644
--- a/doc/RFC_XR_Fragments.html
+++ b/doc/RFC_XR_Fragments.html
@@ -80,16 +80,15 @@ value: draft-XRFRAGMENTS-leonvankammen-00
Abstract
+
+Version: 0.5
+
+
An open specification for hyperlinking & deeplinking 3D fileformats.
This draft is a specification for interactive URI-controllable 3D files, enabling hypermediatic navigation, to enable a spatial web for hypermedia browsers with- or without a network-connection.
-XR Fragments allows us to better use implicit metadata inside 3D scene(files), by mapping it to proven technologies like URI Fragments.
-XR Fragments views XR experiences thru the lens of 3D deeplinked URI’s, rather than thru code(frameworks) or protocol-specific browsers (webbrowser e.g.).
-The standard comprises of various (optional) support levels, which also include W3C Media Fragments and URI Templates (RFC6570) to promote spatial addressibility, sharing, navigation, filtering and databinding objects for (XR) Browsers.
+XR Fragments allows us to better use implicit metadata inside 3D scene(files), by mapping it to proven technologies like URI Fragments.
-XR Fragments is in a sense, a heuristical 3D format or meta-format, which leverages heuristic rules derived from any 3D scene or well-established 3D file formats, to extract meaningful features from scene hierarchies.
-These heuristics, enable features that are both meaningful and consistent across different scene representations, allowing higher interop between fileformats, 3D editors, viewers and game-engines.
-
Almost every idea in this document is demonstrated at https://xrfragment.org
@@ -99,7 +98,8 @@ These heuristics, enable features that are both meaningful and consistent across
Abstract
Index
Introduction
-What is XR Fragments
+How does it work
+What does it solve
HFL (Hypermediatic Feedback Loop) for XR Browsers
Conventions and Definitions
@@ -182,6 +182,21 @@ XR Fragments exploits the fact that all 3D models already contain such metadata:
XR Fragments allows deeplinking of 3D objects by mapping objectnames to URI fragments
+How does it work
+
+
+
+XR Fragments utilizes URLs:
+
+
+- for 3D viewers/browser to manipulate the camera or objects (via URI fragments)
+- implicitly: by mapping 3D objectnames (of a 3D scene/file) to URI fragments (3D deeplinking)
+- explicitly: by scanning
href metadata inside 3D scene-files to enable interactions
+- externally: progressively enhance a 3D (file) into an experience via sidecarfiles
+
+
+What does it solve
+
It solves:
@@ -196,18 +211,13 @@ XR Fragments exploits the fact that all 3D models already contain such metadata:
NOTE: The chapters in this document are ordered from highlevel to lowlevel (technical) as much as possible
-What is XR Fragments
+XR Fragments views XR experiences through the lens of 3D deeplinked URI’s, rather than thru code(frameworks) or protocol-specific browsers (webbrowser e.g.).
+To aid adoption, the standard comprises of various (optional) support-levels, which incorporate existing standards like W3C Media Fragments and URI Templates (RFC6570) to promote spatial addressibility, sharing, navigation, filtering and databinding objects for (XR) Browsers.
-
-
-XR Fragments utilizes URLs:
-
-
-- for 3D viewers/browser to manipulate the camera or objects (via URI fragments)
-- implicitly: by mapping 3D objectnames (of a 3D scene/file) to URI fragments (3D deeplinking)
-- explicitly: by scanning
href metadata inside 3D scene-files to enable interactions
-- externally: progressively enhance a 3D (file) into an experience via sidecarfiles
-
+
+XR Fragments is in a sense, a heuristical 3D format or meta-format, which leverages heuristic rules derived from any 3D scene or well-established 3D file formats, to extract meaningful features from scene hierarchies.
+These heuristics, enable features that are both meaningful and consistent across different scene representations, allowing higher interop between fileformats, 3D editors, viewers and game-engines.
+
diff --git a/doc/RFC_XR_Fragments.md b/doc/RFC_XR_Fragments.md
index a4ec26d..0050a88 100644
--- a/doc/RFC_XR_Fragments.md
+++ b/doc/RFC_XR_Fragments.md
@@ -93,14 +93,11 @@ value: draft-XRFRAGMENTS-leonvankammen-00
.# Abstract
+> Version: 0.5
+
An open specification for hyperlinking & deeplinking 3D fileformats.
This draft is a specification for interactive URI-controllable 3D files, enabling [hypermediatic](https://github.com/coderofsalvation/hypermediatic) navigation, to enable a spatial web for hypermedia browsers with- or without a network-connection.
XR Fragments allows us to better use implicit metadata inside 3D scene(files), by mapping it to proven technologies like [URI Fragments](https://en.wikipedia.org/wiki/URI_fragment).
-XR Fragments views XR experiences thru the lens of 3D deeplinked URI's, rather than thru code(frameworks) or protocol-specific browsers (webbrowser e.g.).
-The standard comprises of various (optional) support levels, which also include [W3C Media Fragments](https://www.w3.org/TR/media-frags/) and [URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570) to promote spatial addressibility, sharing, navigation, filtering and databinding objects for (XR) Browsers.
-
-> XR Fragments is in a sense, a heuristical 3D format or meta-format, which leverages heuristic rules derived from any 3D scene or well-established 3D file formats, to extract meaningful features from scene hierarchies.
-These heuristics, enable features that are both meaningful and consistent across different scene representations, allowing higher interop between fileformats, 3D editors, viewers and game-engines.
> Almost every idea in this document is demonstrated at [https://xrfragment.org](https://xrfragment.org)
@@ -111,7 +108,8 @@ These heuristics, enable features that are both meaningful and consistent across
1. [Abstract](#abstract)
1. [Index](#index)
1. [Introduction](#introduction)
-1. [What is XR Fragments](#what-is-xr-fragments)
+1. [How does it work](#how-does-it-work)
+1. [What does it solve](#what-does-it-solve)
1. [HFL (Hypermediatic Feedback Loop) for XR Browsers](#hfl-hypermediatic-feedback-loop-for-xr-browsers)
1. [Conventions and Definitions](#conventions-and-definitions)
1. [XR Fragment URL Grammar](#xr-fragment-url-grammar)
@@ -165,6 +163,18 @@ XR Fragments exploits the fact that all 3D models already contain such metadata:
**XR Fragments allows deeplinking of 3D objects by mapping objectnames to URI fragments**
+# How does it work
+(!What is XR Fragments )
+
+XR Fragments utilizes URLs:
+
+1. for 3D viewers/browser to manipulate the camera or objects (via URI fragments)
+2. implicitly: by mapping 3D objectnames (of a 3D scene/file) to URI fragments (3D deeplinking)
+3. explicitly: by scanning `href` metadata **inside** 3D scene-files to enable interactions
+4. externally: progressively enhance a 3D (file) into an experience via [sidecarfiles](https://en.wikipedia.org/wiki/Sidecar_file)
+
+# What does it solve
+
It solves:
1. addressibility and [hypermediatic](https://github.com/coderofsalvation/hypermediatic) navigation of 3D scenes/objects: [URI Fragments](https://en.wikipedia.org/wiki/URI_fragment) using src/href spatial metadata
@@ -175,16 +185,11 @@ It solves:
> NOTE: The chapters in this document are ordered from highlevel to lowlevel (technical) as much as possible
-# What is XR Fragments
-(!What is XR Fragments )
-
-XR Fragments utilizes URLs:
-
-1. for 3D viewers/browser to manipulate the camera or objects (via URI fragments)
-2. implicitly: by mapping 3D objectnames (of a 3D scene/file) to URI fragments (3D deeplinking)
-3. explicitly: by scanning `href` metadata **inside** 3D scene-files to enable interactions
-4. externally: progressively enhance a 3D (file) into an experience via [sidecarfiles](https://en.wikipedia.org/wiki/Sidecar_file)
+XR Fragments views XR experiences through the lens of 3D deeplinked URI's, rather than thru code(frameworks) or protocol-specific browsers (webbrowser e.g.).
+To aid adoption, the standard comprises of various (optional) support-levels, which incorporate existing standards like [W3C Media Fragments](https://www.w3.org/TR/media-frags/) and [URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570) to promote spatial addressibility, sharing, navigation, filtering and databinding objects for (XR) Browsers.
+> XR Fragments is in a sense, a heuristical 3D format or meta-format, which leverages heuristic rules derived from any 3D scene or well-established 3D file formats, to extract meaningful features from scene hierarchies.
+These heuristics, enable features that are both meaningful and consistent across different scene representations, allowing higher interop between fileformats, 3D editors, viewers and game-engines.
# HFL (Hypermediatic Feedback Loop) for XR Browsers
(!HFL (Hypermediatic Feedback Loop) for XR Browsers)
diff --git a/doc/RFC_XR_Fragments.txt b/doc/RFC_XR_Fragments.txt
index 7e84673..8ef464f 100644
--- a/doc/RFC_XR_Fragments.txt
+++ b/doc/RFC_XR_Fragments.txt
@@ -13,6 +13,8 @@ Intended status: Informational
Abstract
+ Version: 0.5
+
An open specification for hyperlinking & deeplinking 3D fileformats.
This draft is a specification for interactive URI-controllable 3D
files, enabling hypermediatic (https://github.com/coderofsalvation/
@@ -21,23 +23,6 @@ Abstract
XR Fragments allows us to better use implicit metadata inside 3D
scene(files), by mapping it to proven technologies like URI Fragments
(https://en.wikipedia.org/wiki/URI_fragment).
- XR Fragments views XR experiences thru the lens of 3D deeplinked
- URI's, rather than thru code(frameworks) or protocol-specific
- browsers (webbrowser e.g.). The standard comprises of various
- (optional) support levels, which also include W3C Media Fragments
- (https://www.w3.org/TR/media-frags/) and URI Templates (RFC6570)
- (https://www.rfc-editor.org/rfc/rfc6570) to promote spatial
- addressibility, sharing, navigation, filtering and databinding
- objects for (XR) Browsers.
-
- XR Fragments is in a sense, a heuristical 3D format or meta-
- format, which leverages heuristic rules derived from any 3D scene or
- well-established 3D file formats, to extract meaningful features from
- scene hierarchies.
- These heuristics, enable features that are both meaningful and
- consistent across different scene representations, allowing higher
- interop between fileformats, 3D editors, viewers and game-
- engines.
Almost every idea in this document is demonstrated at
https://xrfragment.org (https://xrfragment.org)
@@ -47,17 +32,6 @@ Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
-
-
-
-
-
-
-van Kammen Expires 23 March 2026 [Page 1]
-
-Internet-Draft XR Fragments September 2025
-
-
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
@@ -75,6 +49,15 @@ Copyright Notice
Copyright (c) 2025 IETF Trust and the persons identified as the
document authors. All rights reserved.
+
+
+
+
+van Kammen Expires 23 March 2026 [Page 1]
+
+Internet-Draft XR Fragments September 2025
+
+
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document.
@@ -88,24 +71,41 @@ Table of Contents
1. Quick reference . . . . . . . . . . . . . . . . . . . . . . . 3
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4
- 3. What is XR Fragments . . . . . . . . . . . . . . . . . . . . 5
- 4. HFL (Hypermediatic Feedback Loop) for XR Browsers . . . . . . 5
- 5. Conventions and Definitions . . . . . . . . . . . . . . . . . 8
- 5.1. XR Fragment URL Grammar . . . . . . . . . . . . . . . . . 8
- 6. Spatial Referencing 3D . . . . . . . . . . . . . . . . . . . 8
- 7. Level0: Files . . . . . . . . . . . . . . . . . . . . . . . . 9
- 7.1. via href metadata . . . . . . . . . . . . . . . . . . . . 9
- 7.2. via chained extension . . . . . . . . . . . . . . . . . . 10
- 7.3. via subdocuments/xattr . . . . . . . . . . . . . . . . . 10
- 7.4. JSON sidecar-file . . . . . . . . . . . . . . . . . . . . 11
- 8. Level1: URI . . . . . . . . . . . . . . . . . . . . . . . . . 11
- 8.1. List of URI Fragments . . . . . . . . . . . . . . . . . . 13
- 8.2. List of *_explicit_ metadata . . . . . . . . . . . . . . 14
- 9. Level2: href links . . . . . . . . . . . . . . . . . . . . . 14
- 9.1. Interaction behaviour . . . . . . . . . . . . . . . . . . 14
- 9.2. XR Viewer implementation . . . . . . . . . . . . . . . . 14
- 10. Level3: Media Fragments . . . . . . . . . . . . . . . . . . . 15
- 10.1. Animation(s) timeline . . . . . . . . . . . . . . . . . 15
+ 3. How does it work . . . . . . . . . . . . . . . . . . . . . . 4
+ 4. What does it solve . . . . . . . . . . . . . . . . . . . . . 4
+ 5. HFL (Hypermediatic Feedback Loop) for XR Browsers . . . . . . 5
+ 6. Conventions and Definitions . . . . . . . . . . . . . . . . . 8
+ 6.1. XR Fragment URL Grammar . . . . . . . . . . . . . . . . . 8
+ 7. Spatial Referencing 3D . . . . . . . . . . . . . . . . . . . 8
+ 8. Level0: Files . . . . . . . . . . . . . . . . . . . . . . . . 9
+ 8.1. via href metadata . . . . . . . . . . . . . . . . . . . . 9
+ 8.2. via chained extension . . . . . . . . . . . . . . . . . . 10
+ 8.3. via subdocuments/xattr . . . . . . . . . . . . . . . . . 10
+ 8.4. JSON sidecar-file . . . . . . . . . . . . . . . . . . . . 11
+ 9. Level1: URI . . . . . . . . . . . . . . . . . . . . . . . . . 11
+ 9.1. List of URI Fragments . . . . . . . . . . . . . . . . . . 13
+ 9.2. List of *_explicit_ metadata . . . . . . . . . . . . . . 14
+ 10. Level2: href links . . . . . . . . . . . . . . . . . . . . . 14
+ 10.1. Interaction behaviour . . . . . . . . . . . . . . . . . 14
+ 10.2. XR Viewer implementation . . . . . . . . . . . . . . . . 14
+ 11. Level3: Media Fragments . . . . . . . . . . . . . . . . . . . 15
+ 11.1. Animation(s) timeline . . . . . . . . . . . . . . . . . 15
+ 11.2. Specify playback loopmode . . . . . . . . . . . . . . . 15
+ 11.3. Controlling embedded content . . . . . . . . . . . . . . 16
+ 12. Level4: prefix operators . . . . . . . . . . . . . . . . . . 16
+ 12.1. Object teleports (!) . . . . . . . . . . . . . . . . . . 16
+ 12.2. Object multipliers (*) . . . . . . . . . . . . . . . . . 18
+ 12.3. De/selectors (+ and -) . . . . . . . . . . . . . . . . . 18
+ 12.4. Sharing object or file (#|) . . . . . . . . . . . . . . 18
+ 12.5. xrf:// URI scheme . . . . . . . . . . . . . . . . . . . 19
+ 13. Level5: URI Templates (RFC6570) . . . . . . . . . . . . . . . 19
+ 14. Top-level URL processing . . . . . . . . . . . . . . . . . . 19
+ 14.1. UX . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
+ 15. Example: Navigating content href portals . . . . . . . . . . 20
+ 15.1. Walking surfaces . . . . . . . . . . . . . . . . . . . . 21
+ 16. Example: Virtual world rings . . . . . . . . . . . . . . . . 21
+ 17. Additional scene metadata . . . . . . . . . . . . . . . . . . 22
+ 18. Accessibility interface . . . . . . . . . . . . . . . . . . . 23
@@ -114,54 +114,54 @@ van Kammen Expires 23 March 2026 [Page 2]
Internet-Draft XR Fragments September 2025
- 10.2. Specify playback loopmode . . . . . . . . . . . . . . . 15
- 10.3. Controlling embedded content . . . . . . . . . . . . . . 16
- 11. Level4: prefix operators . . . . . . . . . . . . . . . . . . 16
- 11.1. Object teleports (!) . . . . . . . . . . . . . . . . . . 16
- 11.2. Object multipliers (*) . . . . . . . . . . . . . . . . . 18
- 11.3. De/selectors (+ and -) . . . . . . . . . . . . . . . . . 18
- 11.4. Sharing object or file (#|) . . . . . . . . . . . . . . 18
- 11.5. xrf:// URI scheme . . . . . . . . . . . . . . . . . . . 19
- 12. Level5: URI Templates (RFC6570) . . . . . . . . . . . . . . . 19
- 13. Top-level URL processing . . . . . . . . . . . . . . . . . . 19
- 13.1. UX . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
- 14. Example: Navigating content href portals . . . . . . . . . . 20
- 14.1. Walking surfaces . . . . . . . . . . . . . . . . . . . . 21
- 15. Example: Virtual world rings . . . . . . . . . . . . . . . . 21
- 16. Additional scene metadata . . . . . . . . . . . . . . . . . . 22
- 17. Accessibility interface . . . . . . . . . . . . . . . . . . . 23
- 17.1. Two-button navigation . . . . . . . . . . . . . . . . . 24
- 17.2. Overlap with fileformat-specific extensions . . . . . . 25
- 18. Vendor Prefixes . . . . . . . . . . . . . . . . . . . . . . . 25
- 19. Security Considerations . . . . . . . . . . . . . . . . . . . 28
- 20. FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
- 21. authors . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
- 22. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29
- 23. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 29
- 24. Appendix: Definitions . . . . . . . . . . . . . . . . . . . . 29
+ 18.1. Two-button navigation . . . . . . . . . . . . . . . . . 24
+ 18.2. Overlap with fileformat-specific extensions . . . . . . 25
+ 19. Vendor Prefixes . . . . . . . . . . . . . . . . . . . . . . . 25
+ 20. Security Considerations . . . . . . . . . . . . . . . . . . . 28
+ 21. FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
+ 22. authors . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
+ 23. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29
+ 24. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 29
+ 25. Appendix: Definitions . . . . . . . . . . . . . . . . . . . . 29
1. Quick reference
1. Abstract (#abstract)
2. Index (#index)
3. Introduction (#introduction)
- 4. What is XR Fragments (#what-is-xr-fragments)
- 5. HFL (Hypermediatic Feedback Loop) for XR Browsers (#hfl-
+ 4. How does it work (#how-does-it-work)
+ 5. What does it solve (#what-does-it-solve)
+ 6. HFL (Hypermediatic Feedback Loop) for XR Browsers (#hfl-
hypermediatic-feedback-loop-for-xr-browsers)
- 6. Conventions and Definitions (#conventions-and-definitions)
+ 7. Conventions and Definitions (#conventions-and-definitions)
1. XR Fragment URL Grammar (#xr-fragment-url-grammar)
- 7. Spatial Referencing 3D (#spatial-referencing-3d)
- 8. Level0: Files (#level0-files)
+ 8. Spatial Referencing 3D (#spatial-referencing-3d)
+ 9. Level0: Files (#level0-files)
1. via href metadata (#via-href-metadata)
2. via chained extension (#via-chained-extension)
3. via subdocuments/xattr (#via-subdocuments-xattr)
4. JSON sidecar-file (#json-sidecar-file)
- 9. Level1: URI (#level1-uri)
+ 10. Level1: URI (#level1-uri)
1. List of URI Fragments (#list-of-uri-fragments)
2. List of explicit metadata (#list-of-explicit-metadata)
- 10. Level2: href links (#level2-href-links)
+ 11. Level2: href links (#level2-href-links)
1. Interaction behaviour (#interaction-behaviour)
2. XR Viewer implementation (#xr-viewer-implementation)
+ 12. Level3: Media Fragments (#level3-media-fragments)
+ 1. Animation(s) timeline (#animation-s-timeline)
+ 2. Specify playback loopmode (#specify-playback-loopmode)
+ 3. Controlling embedded content (#controlling-embedded-content)
+ 13. Level4: prefix operators (#level4-prefix-operators)
+ 1. Object teleports (#object-teleports)
+ 2. Object multipliers (#object-multipliers)
+ 3. De/selectors (+ and -) (#de-selectors-and)
+ 4. Sharing object or file (#|) (#sharing-object-or-file)
+ 5. xrf:// URI scheme (#xrf-uri-scheme)
+ 14. Level5: URI Templates (RFC6570) (#level5-uri-templates-rfc6570)
+ 15. Top-level URL processing (#top-level-url-processing)
+ 1. UX (#ux)
+ 16. Example: Navigating content href portals (#example-navigating-
+ content-href-portals)
@@ -170,35 +170,20 @@ van Kammen Expires 23 March 2026 [Page 3]
Internet-Draft XR Fragments September 2025
- 11. Level3: Media Fragments (#level3-media-fragments)
- 1. Animation(s) timeline (#animation-s-timeline)
- 2. Specify playback loopmode (#specify-playback-loopmode)
- 3. Controlling embedded content (#controlling-embedded-content)
- 12. Level4: prefix operators (#level4-prefix-operators)
- 1. Object teleports (#object-teleports)
- 2. Object multipliers (#object-multipliers)
- 3. De/selectors (+ and -) (#de-selectors-and)
- 4. Sharing object or file (#|) (#sharing-object-or-file)
- 5. xrf:// URI scheme (#xrf-uri-scheme)
- 13. Level5: URI Templates (RFC6570) (#level5-uri-templates-rfc6570)
- 14. Top-level URL processing (#top-level-url-processing)
- 1. UX (#ux)
- 15. Example: Navigating content href portals (#example-navigating-
- content-href-portals)
1. Walking surfaces (#walking-surfaces)
- 16. Example: Virtual world rings (#example-virtual-world-rings)
- 17. Additional scene metadata (#additional-scene-metadata)
- 18. Accessibility interface (#accessibility-interface)
+ 17. Example: Virtual world rings (#example-virtual-world-rings)
+ 18. Additional scene metadata (#additional-scene-metadata)
+ 19. Accessibility interface (#accessibility-interface)
1. Two-button navigation (#two-button-navigation)
2. Overlap with fileformat-specific extensions (#overlap-with-
fileformat-specific-extensions)
- 19. Vendor Prefixes (#vendor-prefixes)
- 20. Security Considerations (#security-considerations)
- 21. FAQ (#faq)
- 22. Authors (#authors)
- 23. IANA Considerations (#iana-considerations)
- 24. Acknowledgments (#acknowledgments)
- 25. Appendix: Definitions (#appendix-definitions)
+ 20. Vendor Prefixes (#vendor-prefixes)
+ 21. Security Considerations (#security-considerations)
+ 22. FAQ (#faq)
+ 23. Authors (#authors)
+ 24. IANA Considerations (#iana-considerations)
+ 25. Acknowledgments (#acknowledgments)
+ 26. Appendix: Definitions (#appendix-definitions)
2. Introduction
@@ -214,6 +199,21 @@ Internet-Draft XR Fragments September 2025
*XR Fragments allows deeplinking of 3D objects by mapping objectnames
to URI fragments*
+3. How does it work
+
+ XR Fragments utilizes URLs:
+
+ 1. for 3D viewers/browser to manipulate the camera or objects (via
+ URI fragments)
+ 2. implicitly: by mapping 3D objectnames (of a 3D scene/file) to URI
+ fragments (3D deeplinking)
+ 3. explicitly: by scanning href metadata *inside* 3D scene-files to
+ enable interactions
+ 4. externally: progressively enhance a 3D (file) into an experience
+ via sidecarfiles (https://en.wikipedia.org/wiki/Sidecar_file)
+
+4. What does it solve
+
It solves:
@@ -242,20 +242,25 @@ Internet-Draft XR Fragments September 2025
| NOTE: The chapters in this document are ordered from highlevel to
| lowlevel (technical) as much as possible
-3. What is XR Fragments
+ XR Fragments views XR experiences through the lens of 3D deeplinked
+ URI's, rather than thru code(frameworks) or protocol-specific
+ browsers (webbrowser e.g.). To aid adoption, the standard comprises
+ of various (optional) support-levels, which incorporate existing
+ standards like W3C Media Fragments (https://www.w3.org/TR/media-
+ frags/) and URI Templates (RFC6570) (https://www.rfc-editor.org/rfc/
+ rfc6570) to promote spatial addressibility, sharing, navigation,
+ filtering and databinding objects for (XR) Browsers.
- XR Fragments utilizes URLs:
+ | XR Fragments is in a sense, a heuristical 3D format or
+ | meta-format, which leverages heuristic rules derived from any 3D
+ | scene or well-established 3D file formats, to extract meaningful
+ | features from scene hierarchies.
+ | These heuristics, enable features that are both meaningful and
+ | consistent across different scene representations, allowing
+ | higher interop between fileformats, 3D editors, viewers and
+ | game-engines.
- 1. for 3D viewers/browser to manipulate the camera or objects (via
- URI fragments)
- 2. implicitly: by mapping 3D objectnames (of a 3D scene/file) to URI
- fragments (3D deeplinking)
- 3. explicitly: by scanning href metadata *inside* 3D scene-files to
- enable interactions
- 4. externally: progressively enhance a 3D (file) into an experience
- via sidecarfiles (https://en.wikipedia.org/wiki/Sidecar_file)
-
-4. HFL (Hypermediatic Feedback Loop) for XR Browsers
+5. HFL (Hypermediatic Feedback Loop) for XR Browsers
for XR Browsers)
@@ -266,13 +271,8 @@ Internet-Draft XR Fragments September 2025
otherwise needs a scripting language. These are called *hashbus*-
only events/
- | Being able to use the same URI Fragment DSL for navigation (href:
- | #foo) as well as interactions (href: xrf://#foo) greatly
- | simplifies implementation, increases HFL, and reduces need for
- | scripting languages.
- This opens up the following benefits for traditional & future
- webbrowsers:
+
@@ -282,6 +282,14 @@ van Kammen Expires 23 March 2026 [Page 5]
Internet-Draft XR Fragments September 2025
+ | Being able to use the same URI Fragment DSL for navigation (href:
+ | #foo) as well as interactions (href: xrf://#foo) greatly
+ | simplifies implementation, increases HFL, and reduces need for
+ | scripting languages.
+
+ This opens up the following benefits for traditional & future
+ webbrowsers:
+
* hypermediatic (https://github.com/coderofsalvation/hypermediatic)
loading/clicking 3D assets (gltf/fbx e.g.) natively (with or
without using HTML).
@@ -316,14 +324,6 @@ Internet-Draft XR Fragments September 2025
-
-
-
-
-
-
-
-
@@ -394,11 +394,11 @@ van Kammen Expires 23 March 2026 [Page 7]
Internet-Draft XR Fragments September 2025
-5. Conventions and Definitions
+6. Conventions and Definitions
See appendix below in case certain terms are not clear.
-5.1. XR Fragment URL Grammar
+6.1. XR Fragment URL Grammar
For typical HTTP-like browsers/applications:
@@ -430,7 +430,7 @@ Internet-Draft XR Fragments September 2025
https://me.com can load the latter (and still indicates which XR
Fragments entrypoint-experience/client was used).
-6. Spatial Referencing 3D
+7. Spatial Referencing 3D
3D files contain an hierarchy of objects.
XR Fragments assumes the following objectname-to-URI-Fragment
@@ -481,14 +481,14 @@ Internet-Draft XR Fragments September 2025
| embedded object. Basically an embedded link becoming an outbound
| link by activating it.
-7. Level0: Files
+8. Level0: Files
These are *optional* auto-loaded side-car files to enable hasslefree
XR Movies (#XR%20Movies).
they can accomodate developers or applications who (for whatever
reason) must not modify the 3D scene-file (a .glb e.g.).
-7.1. via href metadata
+8.1. via href metadata
scene.glb <--- 'href' extra [heuristic] detected inside!
scene.png (preview thumbnail)
@@ -510,7 +510,7 @@ Internet-Draft XR Fragments September 2025
* The viewer should poll for the above mentioned sidecar-file
extensions (and present accordingly)
-7.2. via chained extension
+8.2. via chained extension
scene.xrf.glb <--- '.xrf.' sidecar file heuristic detected!
scene.xrf.png (preview thumbnail)
@@ -526,7 +526,7 @@ Internet-Draft XR Fragments September 2025
* the chained-extension heuristic .xrf. should be present in the
filename (scene.xrf.glb e.g.)
-7.3. via subdocuments/xattr
+8.3. via subdocuments/xattr
More secure protocols (Nextgraph e.g.) don't allow for simply polling
files. In such case, subdocuments or extended attributes should be
@@ -562,7 +562,7 @@ van Kammen Expires 23 March 2026 [Page 10]
Internet-Draft XR Fragments September 2025
-7.4. JSON sidecar-file
+8.4. JSON sidecar-file
For developers, sidecar-file can allow for defining *explicit* XR
Fragments links (>level1), outside of the 3D file.
@@ -597,7 +597,7 @@ Internet-Draft XR Fragments September 2025
// now the XR Fragments parser can process the XR Fragments userData 'extras' in the scene
-8. Level1: URI
+9. Level1: URI
| *XR Fragments allows deeplinking of 3D objects by mapping
| objectnames to URI fragments*
@@ -700,7 +700,7 @@ Internet-Draft XR Fragments September 2025
| Hypermediatic FeedbackLoop (HFL) between external and internal 4D
| navigation.
-8.1. List of URI Fragments
+9.1. List of URI Fragments
+=======================+======================================+===========+=============+
|fragment |type |example |info |
@@ -732,7 +732,7 @@ Internet-Draft XR Fragments September 2025
Table 3
-8.2. List of *_explicit_ metadata
+9.2. List of *_explicit_ metadata
These are the possible 'extras' for 3D nodes and sidecar-files
@@ -746,7 +746,7 @@ Internet-Draft XR Fragments September 2025
Table 4
-9. Level2: href links
+10. Level2: href links
Explicit href metadata ('extras') in a 3D object (of a 3D file), hint
the viewer that the user ''can interact'' with that object :
@@ -758,7 +758,7 @@ Internet-Draft XR Fragments September 2025
://somefile.gltf#foo
|
-9.1. Interaction behaviour
+10.1. Interaction behaviour
When clicking an ''href''-value, the user(camera) is teleport to the
referenced object.
@@ -766,7 +766,7 @@ Internet-Draft XR Fragments September 2025
The imported/teleported destination can be another object in the same
scene-file, or a different file.
-9.2. XR Viewer implementation
+10.2. XR Viewer implementation
| *spec* | *action* | *feature* | |-|-|-| | level0+1 | hover 3D file
href (#via-href-metadata) | show the preview PNG thumbnail (if any).
@@ -797,7 +797,7 @@ Internet-Draft XR Fragments September 2025
| #roomC navigation, which benefit back/forward browser-buttons),
| see hashbus for more info.
-10. Level3: Media Fragments
+11. Level3: Media Fragments
| these allow for XR Movies with a controllable timeline using href
| URI's with Media Fragments
@@ -813,7 +813,7 @@ Internet-Draft XR Fragments September 2025
- href: xrf:news.glb?clone#t=0 to instance and play another
experience
-10.1. Animation(s) timeline
+11.1. Animation(s) timeline
controls the animation(s) of the scene (or src resource which
contains a timeline)
@@ -828,7 +828,7 @@ Internet-Draft XR Fragments September 2025
| Use [[#s 🌱]] to control playback speed
-10.2. Specify playback loopmode
+11.2. Specify playback loopmode
This compensates a missing element from Media Fragments to enable/
disable temporal looping. .
@@ -846,7 +846,7 @@ Internet-Draft XR Fragments September 2025
animation/video/audio loop | | #-loop | string | disables
animation/video/audio loop |
-10.3. Controlling embedded content
+11.3. Controlling embedded content
use [[URI Templates]] to control embedded media, for example a simple
video-player:
@@ -865,7 +865,7 @@ Internet-Draft XR Fragments September 2025
└── ◻ playbutton_external
â”” href: https://my.org/animation.glb#!&t=3,10 <-- import & play external anim
-11. Level4: prefix operators
+12. Level4: prefix operators
Prefixing objectnames with the following simple operators allow for
*extremely powerful* XR interactions:
@@ -880,7 +880,7 @@ Internet-Draft XR Fragments September 2025
| to teleport a menu, #*block to clone a grabbable block, #|object
| to share an object
-11.1. Object teleports (!)
+12.1. Object teleports (!)
Prefixing an object with an exclamation-symbol, will teleport a
(local or remote) referenced object from/to its original/usercamera
@@ -967,7 +967,7 @@ Internet-Draft XR Fragments September 2025
| *NOTE*: combining instance-operators allows dynamic construction
| of 3D scenes (#london&!welcomeMenu&!fadeBox e.g.)
-11.2. Object multipliers (*)
+12.2. Object multipliers (*)
The star-prefix will clone a (local or remote) referenced object to
the usercamera's location, and make it grabbable.
@@ -977,7 +977,7 @@ Internet-Draft XR Fragments September 2025
| infinitely *clones* the referenced object (instead of
| repositioning the object).
-11.3. De/selectors (+ and -)
+12.3. De/selectors (+ and -)
* href: #-welcome (or #+welcome)
@@ -990,7 +990,7 @@ Internet-Draft XR Fragments September 2025
| *NOTE:* the latter shows that (de)selectors can also be with
| regular href (#href)-values
-11.4. Sharing object or file (#|)
+12.4. Sharing object or file (#|)
The pipe-symbol (|) sends a (targeted) object to the OS. Clicking
the href-value below will:
@@ -1013,7 +1013,7 @@ Internet-Draft XR Fragments September 2025
| *NOTE*: sharing is limited to (internal objects) via xrf: scheme-
| only
-11.5. xrf:// URI scheme
+12.5. xrf:// URI scheme
Prefixing the xrf: to href (#href)-values *will prevent* level2
(#📜%20level2:%20explicit%20links) href (#href)-values from changing
@@ -1036,7 +1036,7 @@ Internet-Draft XR Fragments September 2025
| *compliance with RFC 3986*: unimplemented/unknown URI schemes
| (xrf:... e.g.) will not update the top-level URL
-12. Level5: URI Templates (RFC6570)
+13. Level5: URI Templates (RFC6570)
)
@@ -1044,7 +1044,7 @@ Internet-Draft XR Fragments September 2025
interactivity.
This is non-normative, and the draft spec is available on request.
-13. Top-level URL processing
+14. Top-level URL processing
| Example URL: ://foo/world.gltf#room1&t=10&cam
@@ -1069,7 +1069,7 @@ Internet-Draft XR Fragments September 2025
3. IF a camera-object exists with name cam assume that user(camera)
position
-13.1. UX
+14.1. UX
End-users should always have read/write access to:
@@ -1079,7 +1079,7 @@ Internet-Draft XR Fragments September 2025
another scene/file (and coordinate e.g. in case the URL contains
XR Fragments).
-14. Example: Navigating content href portals
+15. Example: Navigating content href portals
navigation, portals & mutations
@@ -1148,7 +1148,7 @@ Internet-Draft XR Fragments September 2025
» discussion (https://github.com/coderofsalvation/xrfragment/
issues/1)
-14.1. Walking surfaces
+15.1. Walking surfaces
| By default position 0,0,0 of the 3D scene represents the walkable
| plane, however this is overridden when the following applies:
@@ -1162,7 +1162,7 @@ Internet-Draft XR Fragments September 2025
| optionally the viewer can offer thumbstick, mouse or joystick
| teleport-tools for non-roomscale VR/AR setups.
-15. Example: Virtual world rings
+16. Example: Virtual world rings
Consider 3D scenes linking to eachother using these href values,
attached to 3D button-objects:
@@ -1187,7 +1187,7 @@ Internet-Draft XR Fragments September 2025
This would allow displaying the (remote 3D file) webring menu with
various href-buttons inside, all centrally curated by the workgroup.
-16. Additional scene metadata
+17. Additional scene metadata
XR Fragments does not aim to redefine the metadata-space or
accessibility-space by introducing its own cataloging-metadata
@@ -1270,7 +1270,7 @@ Internet-Draft XR Fragments September 2025
| These attributes can be scanned and presented during an href or
| src eye/mouse-over.
-17. Accessibility interface
+18. Accessibility interface
The addressibility of XR Fragments allows for unique 3D-to-text
transcripts, as well as an textual interface to navigate 3D content.
@@ -1321,7 +1321,7 @@ Internet-Draft XR Fragments September 2025
https://.../... in case a 3D node exist with name abc and href
value https://.../...
-17.1. Two-button navigation
+18.1. Two-button navigation
For specific user-profiles, gyroscope/mouse/keyboard/audio/visuals
will not be available.
@@ -1346,7 +1346,7 @@ van Kammen Expires 23 March 2026 [Page 24]
Internet-Draft XR Fragments September 2025
-17.2. Overlap with fileformat-specific extensions
+18.2. Overlap with fileformat-specific extensions
Some 3D scene-fileformats have support for extensions. What if the
functionality of those overlap? For example, GLTF has the OMI_LINK
@@ -1380,7 +1380,7 @@ Internet-Draft XR Fragments September 2025
| them according to XR Fragment spec (teleport user). But only
| once: ignore further overlapping metadata for that usecase.
-18. Vendor Prefixes
+19. Vendor Prefixes
Vendor-specific metadata in a 3D scenefiles, are similar to vendor-
specific CSS-prefixes (https://en.wikipedia.org/wiki/
@@ -1514,7 +1514,7 @@ van Kammen Expires 23 March 2026 [Page 27]
Internet-Draft XR Fragments September 2025
-19. Security Considerations
+20. Security Considerations
The only dynamic parts are W3C Media Fragments
(https://www.w3.org/TR/media-frags/) and URI Templates (RFC6570)
@@ -1524,7 +1524,7 @@ Internet-Draft XR Fragments September 2025
n fact, it is much safer than relying on a scripting language
(javascript) which can change URN too.
-20. FAQ
+21. FAQ
*Q:* Why is everything HTTP GET-based, what about POST/PUT/DELETE
HATEOS
@@ -1557,7 +1557,7 @@ Internet-Draft XR Fragments September 2025
place, to 'extend' experiences, in contrast to code/javascript inside
hypermedia documents (this turned out as a hypermedia antipattern).
-21. authors
+22. authors
* Leon van Kammen (@lvk@mastodon.online)
* Jens Finkhäuser (@jens@social.finkhaeuser.de)
@@ -1570,11 +1570,11 @@ van Kammen Expires 23 March 2026 [Page 28]
Internet-Draft XR Fragments September 2025
-22. IANA Considerations
+23. IANA Considerations
This document has no IANA actions.
-23. Acknowledgments
+24. Acknowledgments
* NLNET (https://nlnet.nl)
* Future of Text (https://futureoftext.org)
@@ -1589,7 +1589,7 @@ Internet-Draft XR Fragments September 2025
* Brandel Zackernuk
* Mark Anderson
-24. Appendix: Definitions
+25. Appendix: Definitions
+=================+=============================================+
| definition | explanation |
diff --git a/doc/RFC_XR_Fragments.xml b/doc/RFC_XR_Fragments.xml
index 91755f6..f4bfa33 100644
--- a/doc/RFC_XR_Fragments.xml
+++ b/doc/RFC_XR_Fragments.xml
@@ -10,17 +10,12 @@
Jens & Leon Internet Engineering Task Force
+Version: 0.5
An open specification for hyperlinking & deeplinking 3D fileformats.
This draft is a specification for interactive URI-controllable 3D files, enabling hypermediatic navigation, to enable a spatial web for hypermedia browsers with- or without a network-connection.
XR Fragments allows us to better use implicit metadata inside 3D scene(files), by mapping it to proven technologies like URI Fragments.
-
-XR Fragments views XR experiences thru the lens of 3D deeplinked URI's, rather than thru code(frameworks) or protocol-specific browsers (webbrowser e.g.).
-The standard comprises of various (optional) support levels, which also include W3C Media Fragments and URI Templates (RFC6570) to promote spatial addressibility, sharing, navigation, filtering and databinding objects for (XR) Browsers.
-XR Fragments is in a sense, a <b>heuristical 3D format</b> or meta-format, which leverages heuristic rules derived from any 3D scene or well-established 3D file formats, to extract meaningful features from scene hierarchies.
-
-These heuristics, enable features that are both meaningful and consistent across different scene representations, allowing <b>higher interop</b> between fileformats, 3D editors, viewers and game-engines.
Almost every idea in this document is demonstrated at https://xrfragment.org
@@ -34,7 +29,8 @@ These heuristics, enable features that are both meaningful and consistent across
- Abstract
- Index
- Introduction
-- What is XR Fragments
+- How does it work
+- What does it solve
- HFL (Hypermediatic Feedback Loop) for XR Browsers
- Conventions and Definitions
@@ -116,6 +112,20 @@ The lowest common denominator is: designers describing/tagging/naming things usi
XR Fragments exploits the fact that all 3D models already contain such metadata:
XR Fragments allows deeplinking of 3D objects by mapping objectnames to URI fragments
+
+
+How does it work
+XR Fragments utilizes URLs:
+
+
+- for 3D viewers/browser to manipulate the camera or objects (via URI fragments)
+- implicitly: by mapping 3D objectnames (of a 3D scene/file) to URI fragments (3D deeplinking)
+- explicitly: by scanning href metadata inside 3D scene-files to enable interactions
+- externally: progressively enhance a 3D (file) into an experience via sidecarfiles
+
+
+
+What does it solve
It solves:
@@ -126,19 +136,14 @@ XR Fragments exploits the fact that all 3D models already contain such metadata:
- the gap between text an 3d objects: object-names directly map to hashtags (=fragments), which allows 3D to text transcription.
NOTE: The chapters in this document are ordered from highlevel to lowlevel (technical) as much as possible
+
XR Fragments views XR experiences through the lens of 3D deeplinked URI's, rather than thru code(frameworks) or protocol-specific browsers (webbrowser e.g.).
+To aid adoption, the standard comprises of various (optional) support-levels, which incorporate existing standards like W3C Media Fragments and URI Templates (RFC6570) to promote spatial addressibility, sharing, navigation, filtering and databinding objects for (XR) Browsers.
+
+XR Fragments is in a sense, a <b>heuristical 3D format</b> or meta-format, which leverages heuristic rules derived from any 3D scene or well-established 3D file formats, to extract meaningful features from scene hierarchies.
+
+These heuristics, enable features that are both meaningful and consistent across different scene representations, allowing <b>higher interop</b> between fileformats, 3D editors, viewers and game-engines.
-What is XR Fragments
-XR Fragments utilizes URLs:
-
-
-- for 3D viewers/browser to manipulate the camera or objects (via URI fragments)
-- implicitly: by mapping 3D objectnames (of a 3D scene/file) to URI fragments (3D deeplinking)
-- explicitly: by scanning href metadata inside 3D scene-files to enable interactions
-- externally: progressively enhance a 3D (file) into an experience via sidecarfiles
-
-
-
HFL (Hypermediatic Feedback Loop) for XR Browsers
for XR Browsers)
href metadata traditionally implies click AND navigate, however XR Fragments adds stateless click (xrf://....) via the xrf:// scheme, which does not change the top-level URL-adress (of the browser).