diff --git a/doc/RFC_XR_Fragments.html b/doc/RFC_XR_Fragments.html index b3c61e6..6920d4f 100644 --- a/doc/RFC_XR_Fragments.html +++ b/doc/RFC_XR_Fragments.html @@ -93,8 +93,88 @@ These heuristics, enable features that are both meaningful and consistent across
Almost every idea in this document is demonstrated at https://xrfragment.org
+
How can we add more control to existing text and 3D scenes, without introducing new dataformats?
Historically, there’s many attempts to create the ultimate 3D fileformat.
The lowest common denominator is: designers describing/tagging/naming things using plain text.
@@ -118,6 +198,8 @@ XR Fragments exploits the fact that all 3D models already contain such metadata:
+
XR Fragments utilizes URLs:
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).
This allows for many extra interactions via URLs, which otherwise needs a scripting language.
These are called hashbus-only events/
+
See appendix below in case certain terms are not clear.
+
For typical HTTP-like browsers/applications:
reserved = gen-delims / sub-delims
@@ -272,6 +360,8 @@ That way, if the link gets shared, the XR Fragments implementation at http
Spatial Referencing 3D
+
+
3D files contain an hierarchy of objects.
XR Fragments assumes the following objectname-to-URI-Fragment mapping, in order to deeplink 3D objects:
@@ -310,6 +400,9 @@ For example, to render a portal with a preview-version of the scene, create an 3
Level0: Files
+
+
+
These are optional auto-loaded side-car files to enable hasslefree XR Movies.
they can accomodate developers or applications who (for whatever reason) must not modify the 3D scene-file (a .glb e.g.).
@@ -415,6 +508,8 @@ The sidecar will define (or override already existing) extras,
Level1: URI
+
+
XR Fragments allows deeplinking of 3D objects by mapping objectnames to URI fragments
@@ -479,7 +574,7 @@ Instead of forcing authors to combine 3D/2D objects programmatically (publishing
?-linked and #-linked navigation are JUST one possible way to implement XR Fragments: the essential goal is to allow a Hypermediatic FeedbackLoop (HFL) between external and internal 4D navigation.
-List of URI Fragments
+List of URI Fragments
@@ -508,7 +603,7 @@ Instead of forcing authors to combine 3D/2D objects programmatically (publishing
-List of *explicit metadata
+List of *explicit metadata
These are the possible ‘extras’ for 3D nodes and sidecar-files
@@ -536,6 +631,8 @@ Instead of forcing authors to combine 3D/2D objects programmatically (publishing
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 :
| fragment | type | example value |
@@ -565,6 +662,8 @@ Instead of forcing authors to combine 3D/2D objects programmatically (publishing
Level3: Media Fragments
+
+
these allow for XR Movies with a controllable timeline using href URI’s with Media Fragments
@@ -628,6 +727,8 @@ XR Fragments Level3 makes the 3D timeline, as well as URL-referenced files Level4: prefix operators
+
+
Prefixing objectnames with the following simple operators allow for extremely powerful XR interactions:
@@ -787,8 +888,17 @@ Clicking the href-value below will:
compliance with RFC 3986: unimplemented/unknown URI schemes (xrf:... e.g.) will not update the top-level URL
+Level5: URI Templates (RFC6570)
+
+)
+
+XR Fragments adopts Level1 URI Fragment expansion to provide safe interactivity.
+This is non-normative, and the draft spec is available on request.
+
Top-level URL processing
+
+
Example URL: ://foo/world.gltf#room1&t=10&cam
@@ -813,6 +923,8 @@ Clicking the href-value below will:
Example: Navigating content href portals
+
+
navigation, portals & mutations
@@ -873,7 +985,9 @@ Clicking the href-value below will:
optionally the viewer can offer thumbstick, mouse or joystick teleport-tools for non-roomscale VR/AR setups.
-Virtual world rings
+Example: Virtual world rings
+
+
Consider 3D scenes linking to eachother using these href values, attached to 3D button-objects:
@@ -892,13 +1006,10 @@ Now consider adding a ‘webring index’-button to each file, with this
This would allow displaying the (remote 3D file) webring menu with various href-buttons inside, all centrally curated by the workgroup.
-Level5: URI Templates (RFC6570)
-
-XR Fragments adopts Level1 URI Fragment expansion to provide safe interactivity.
-This is non-normative, and the draft spec is available on request.
-
Additional scene metadata
+
+
XR Fragments does not aim to redefine the metadata-space or accessibility-space by introducing its own cataloging-metadata fields.
Instead, it encourages browsers to scan nodes for the following custom properties:
@@ -997,6 +1108,8 @@ Instead, it encourages browsers to scan nodes for the following custom propertie
Accessibility interface
+
+
The addressibility of XR Fragments allows for unique 3D-to-text transcripts, as well as an textual interface to navigate 3D content.
Spec:
@@ -1057,7 +1170,9 @@ If a glTF implementation does not support a particular extension, the (XRF) extr
Example 2 If an Extensions uses XR Fragments in URI’s (href: #otherroom or href: xrf://-walls in OMI_LINK e.g.), then perform them according to XR Fragment spec (teleport user). But only once: ignore further overlapping metadata for that usecase.
-Vendor Prefixes
+Vendor Prefixes
+
+
Vendor-specific metadata in a 3D scenefiles, are similar to vendor-specific CSS-prefixes (-moz-opacity: 0.2 e.g.).
This allows popular 3D engines/frameworks, to initialize specific features when loading a scene/object, in a progressive enhanced way.
@@ -1145,12 +1260,16 @@ The lowest common denominator between 3D engines is the ‘entity’-par
Security Considerations
+
+
The only dynamic parts are W3C Media Fragments and URI Templates (RFC6570).
The use of URI Templates is limited to pre-defined variables and Level0 fragments-expansion only, which makes it quite safe.
n fact, it is much safer than relying on a scripting language (javascript) which can change URN too.
FAQ
+
+
Q: Why is everything HTTP GET-based, what about POST/PUT/DELETE HATEOS
A: Because it’s out of scope: XR Fragment specifies a read-only way to surf XR documents. These things belong in the application layer (for example, an XR Hypermedia browser can decide to support POST/PUT/DELETE requests for embedded HTML thru src values)
@@ -1164,6 +1283,8 @@ Non-HTML Hypermedia browsers should make browser extensions the right place, to
authors
+
+
- Leon van Kammen (@lvk@mastodon.online)
- Jens Finkhäuser (@jens@social.finkhaeuser.de)
@@ -1171,10 +1292,14 @@ Non-HTML Hypermedia browsers should make browser extensions the right place, to
IANA Considerations
+
+
This document has no IANA actions.
Acknowledgments
+
+
- NLNET
- Future of Text
@@ -1192,6 +1317,8 @@ Non-HTML Hypermedia browsers should make browser extensions the right place, to
Appendix: Definitions
+
+
@@ -1342,6 +1469,149 @@ Non-HTML Hypermedia browsers should make browser extensions the right place, to
+Index
+
+
+- A
+-
+
+
+
+
+- C
+-
+
+-
+Conventions and Definitions [go]
+
+
+
+
+
+- F
+-
+
+-
+FAQ [go]
+
+
+
+
+- H
+-
+
+-
+HFL (Hypermediatic Feedback Loop [go]
+
+
+
+
+
+- L
+-
+
+
+
+
+
+- T
+-
+
+-
+Top-level URL processing [go]
+
+
+
+
+- V
+-
+
+-
+Vendor Prefixes [go]
+
+
+
+
+- W
+-
+
+-
+What is XR Fragments [go]
+
+
+
+
+- X
+-
+
+-
+XR Fragment URL Grammar [go]
+
+
+
+
+- a
+-
+
+-
+authors [go]
+
+
+
+
+