spec: version bump

This commit is contained in:
Leon van Kammen 2025-09-19 20:00:50 +02:00
parent ec07443201
commit d326a0cd05
4 changed files with 241 additions and 221 deletions

View file

@ -80,16 +80,15 @@ value: draft-XRFRAGMENTS-leonvankammen-00
<h1 class="special" id="abstract">Abstract</h1>
<blockquote>
<p>Version: 0.5</p>
</blockquote>
<p>An open specification for hyperlinking &amp; deeplinking 3D fileformats.
This draft is a specification for interactive URI-controllable 3D files, enabling <a href="https://github.com/coderofsalvation/hypermediatic">hypermediatic</a> navigation, to enable a spatial web for hypermedia browsers with- or without a network-connection.<br>
XR Fragments allows us to better use implicit metadata inside 3D scene(files), by mapping it to proven technologies like <a href="https://en.wikipedia.org/wiki/URI_fragment">URI Fragments</a>.<br>
XR Fragments views XR experiences thru the lens of 3D deeplinked URI&rsquo;s, rather than thru code(frameworks) or protocol-specific browsers (webbrowser e.g.).
The standard comprises of various (optional) support levels, which also include <a href="https://www.w3.org/TR/media-frags/">W3C Media Fragments</a> and <a href="https://www.rfc-editor.org/rfc/rfc6570">URI Templates (RFC6570)</a> to promote spatial addressibility, sharing, navigation, filtering and databinding objects for (XR) Browsers.<br></p>
XR Fragments allows us to better use implicit metadata inside 3D scene(files), by mapping it to proven technologies like <a href="https://en.wikipedia.org/wiki/URI_fragment">URI Fragments</a>.<br></p>
<blockquote>
<p>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.<br>
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.</p>
<p>Almost every idea in this document is demonstrated at <a href="https://xrfragment.org">https://xrfragment.org</a></p>
</blockquote>
<section data-matter="main">
@ -99,7 +98,8 @@ These heuristics, enable features that are both meaningful and consistent across
<li><a href="#abstract">Abstract</a></li>
<li><a href="#index">Index</a></li>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#what-is-xr-fragments">What is XR Fragments</a></li>
<li><a href="#how-does-it-work">How does it work</a></li>
<li><a href="#what-does-it-solve">What does it solve</a></li>
<li><a href="#hfl-hypermediatic-feedback-loop-for-xr-browsers">HFL (Hypermediatic Feedback Loop) for XR Browsers</a></li>
<li><a href="#conventions-and-definitions">Conventions and Definitions</a>
@ -182,6 +182,21 @@ XR Fragments exploits the fact that all 3D models already contain such metadata:
<p><strong>XR Fragments allows deeplinking of 3D objects by mapping objectnames to URI fragments</strong></p>
<h1 id="how-does-it-work">How does it work</h1>
<p><span class="index" id="idxref:1"></span></p>
<p>XR Fragments utilizes URLs:</p>
<ol>
<li>for 3D viewers/browser to manipulate the camera or objects (via URI fragments)</li>
<li>implicitly: by mapping 3D objectnames (of a 3D scene/file) to URI fragments (3D deeplinking)</li>
<li>explicitly: by scanning <code>href</code> metadata <strong>inside</strong> 3D scene-files to enable interactions</li>
<li>externally: progressively enhance a 3D (file) into an experience via <a href="https://en.wikipedia.org/wiki/Sidecar_file">sidecarfiles</a></li>
</ol>
<h1 id="what-does-it-solve">What does it solve</h1>
<p>It solves:</p>
<ol>
@ -196,18 +211,13 @@ XR Fragments exploits the fact that all 3D models already contain such metadata:
<p>NOTE: The chapters in this document are ordered from highlevel to lowlevel (technical) as much as possible</p>
</blockquote>
<h1 id="what-is-xr-fragments">What is XR Fragments</h1>
<p>XR Fragments views XR experiences through the lens of 3D deeplinked URI&rsquo;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 <a href="https://www.w3.org/TR/media-frags/">W3C Media Fragments</a> and <a href="https://www.rfc-editor.org/rfc/rfc6570">URI Templates (RFC6570)</a> to promote spatial addressibility, sharing, navigation, filtering and databinding objects for (XR) Browsers.<br></p>
<p><span class="index" id="idxref:1"></span></p>
<p>XR Fragments utilizes URLs:</p>
<ol>
<li>for 3D viewers/browser to manipulate the camera or objects (via URI fragments)</li>
<li>implicitly: by mapping 3D objectnames (of a 3D scene/file) to URI fragments (3D deeplinking)</li>
<li>explicitly: by scanning <code>href</code> metadata <strong>inside</strong> 3D scene-files to enable interactions</li>
<li>externally: progressively enhance a 3D (file) into an experience via <a href="https://en.wikipedia.org/wiki/Sidecar_file">sidecarfiles</a></li>
</ol>
<blockquote>
<p>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.<br>
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.</p>
</blockquote>
<h1 id="hfl-hypermediatic-feedback-loop-for-xr-browsers">HFL (Hypermediatic Feedback Loop) for XR Browsers</h1>

View file

@ -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.<br>
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).<br>
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.<br>
> 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.<br>
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](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.<br>
> 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.<br>
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.
# HFL (Hypermediatic Feedback Loop) for XR Browsers
(!HFL (Hypermediatic Feedback Loop) for XR Browsers)

View file

@ -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 <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 (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 <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.
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 <a href="#hashbus">hashbus</a> 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 | | <b>#-loop</b> | 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 |

View file

@ -10,17 +10,12 @@
<workgroup>Jens &amp; Leon Internet Engineering Task Force</workgroup>
<abstract>
<t>Version: 0.5</t>
<t>An open specification for hyperlinking &amp; deeplinking 3D fileformats.
This draft is a specification for interactive URI-controllable 3D files, enabling <eref target="https://github.com/coderofsalvation/hypermediatic">hypermediatic</eref> navigation, to enable a spatial web for hypermedia browsers with- or without a network-connection.<br />
XR Fragments allows us to better use implicit metadata inside 3D scene(files), by mapping it to proven technologies like <eref target="https://en.wikipedia.org/wiki/URI_fragment">URI Fragments</eref>.<br />
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 <eref target="https://www.w3.org/TR/media-frags/">W3C Media Fragments</eref> and <eref target="https://www.rfc-editor.org/rfc/rfc6570">URI Templates (RFC6570)</eref> to promote spatial addressibility, sharing, navigation, filtering and databinding objects for (XR) Browsers.<br />
</t>
<t>XR Fragments is in a sense, a &lt;b&gt;heuristical 3D format&lt;/b&gt; 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.<br />
These heuristics, enable features that are both meaningful and consistent across different scene representations, allowing &lt;b&gt;higher interop&lt;/b&gt; between fileformats, 3D editors, viewers and game-engines.</t>
<t>Almost every idea in this document is demonstrated at <eref target="https://xrfragment.org">https://xrfragment.org</eref></t>
</abstract>
@ -34,7 +29,8 @@ These heuristics, enable features that are both meaningful and consistent across
<li><eref target="#abstract">Abstract</eref></li>
<li><eref target="#index">Index</eref></li>
<li><eref target="#introduction">Introduction</eref></li>
<li><eref target="#what-is-xr-fragments">What is XR Fragments</eref></li>
<li><eref target="#how-does-it-work">How does it work</eref></li>
<li><eref target="#what-does-it-solve">What does it solve</eref></li>
<li><eref target="#hfl-hypermediatic-feedback-loop-for-xr-browsers">HFL (Hypermediatic Feedback Loop) for XR Browsers</eref></li>
<li><t><eref target="#conventions-and-definitions">Conventions and Definitions</eref></t>
@ -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:</t>
<t><strong>XR Fragments allows deeplinking of 3D objects by mapping objectnames to URI fragments</strong></t>
</section>
<section anchor="how-does-it-work"><name>How does it work</name>
<iref item="What is XR Fragments"/><t>XR Fragments utilizes URLs:</t>
<ol spacing="compact">
<li>for 3D viewers/browser to manipulate the camera or objects (via URI fragments)</li>
<li>implicitly: by mapping 3D objectnames (of a 3D scene/file) to URI fragments (3D deeplinking)</li>
<li>explicitly: by scanning <tt>href</tt> metadata <strong>inside</strong> 3D scene-files to enable interactions</li>
<li>externally: progressively enhance a 3D (file) into an experience via <eref target="https://en.wikipedia.org/wiki/Sidecar_file">sidecarfiles</eref></li>
</ol>
</section>
<section anchor="what-does-it-solve"><name>What does it solve</name>
<t>It solves:</t>
<ol spacing="compact">
@ -126,19 +136,14 @@ XR Fragments exploits the fact that all 3D models already contain such metadata:
<li>the gap between text an 3d objects: object-names directly map to hashtags (=fragments), which allows 3D to text transcription.</li>
</ol>
<blockquote><t>NOTE: The chapters in this document are ordered from highlevel to lowlevel (technical) as much as possible</t>
</blockquote><t>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 <eref target="https://www.w3.org/TR/media-frags/">W3C Media Fragments</eref> and <eref target="https://www.rfc-editor.org/rfc/rfc6570">URI Templates (RFC6570)</eref> to promote spatial addressibility, sharing, navigation, filtering and databinding objects for (XR) Browsers.<br />
</t>
<blockquote><t>XR Fragments is in a sense, a &lt;b&gt;heuristical 3D format&lt;/b&gt; 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.<br />
These heuristics, enable features that are both meaningful and consistent across different scene representations, allowing &lt;b&gt;higher interop&lt;/b&gt; between fileformats, 3D editors, viewers and game-engines.</t>
</blockquote></section>
<section anchor="what-is-xr-fragments"><name>What is XR Fragments</name>
<iref item="What is XR Fragments"/><t>XR Fragments utilizes URLs:</t>
<ol spacing="compact">
<li>for 3D viewers/browser to manipulate the camera or objects (via URI fragments)</li>
<li>implicitly: by mapping 3D objectnames (of a 3D scene/file) to URI fragments (3D deeplinking)</li>
<li>explicitly: by scanning <tt>href</tt> metadata <strong>inside</strong> 3D scene-files to enable interactions</li>
<li>externally: progressively enhance a 3D (file) into an experience via <eref target="https://en.wikipedia.org/wiki/Sidecar_file">sidecarfiles</eref></li>
</ol>
</section>
<section anchor="hfl-hypermediatic-feedback-loop-for-xr-browsers"><name>HFL (Hypermediatic Feedback Loop) for XR Browsers</name>
<t><iref item="HFL (Hypermediatic Feedback Loop"/> for XR Browsers)</t>
<t><tt>href</tt> metadata traditionally implies <strong>click</strong> AND <strong>navigate</strong>, however XR Fragments adds stateless <strong>click</strong> (<tt>xrf://....</tt>) via the <tt>xrf://</tt> scheme, which does not change the top-level URL-adress (of the browser).