From 093de1ec6f58054ded555371fcdb6c4113cb6f78 Mon Sep 17 00:00:00 2001
From: Leon van Kammen
Date: Mon, 17 Jun 2024 05:59:51 +0000
Subject: [PATCH] main: update documentation
---
doc/RFC_XR_Fragments.html | 38 ++--
doc/RFC_XR_Fragments.md | 60 +++---
doc/RFC_XR_Fragments.txt | 380 +++++++++++++++++++-------------------
doc/RFC_XR_Fragments.xml | 34 +---
4 files changed, 234 insertions(+), 278 deletions(-)
diff --git a/doc/RFC_XR_Fragments.html b/doc/RFC_XR_Fragments.html
index e2c916d..bb641fa 100644
--- a/doc/RFC_XR_Fragments.html
+++ b/doc/RFC_XR_Fragments.html
@@ -664,7 +664,7 @@ For example, to render a portal with a preview-version of the scene, create an 3
│ index.gltf#playall │
│ │ │
│ ├ # : #t=0&shared=play │ apply default XR Fragment on load (`t` plays global 3D animation timeline)
- │ ├ play : #t=l:0,2 │ variable for [URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
+ │ ├ play : #t=0&loop │ variable for [URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
│ │ │
│ ├── ◻ plane (with material) │
│ │ └ #: #uv=0,0,0,+0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
@@ -947,33 +947,15 @@ How does the scale of the object (with the embedded properties) impact the scale
XR Fragment: pos
+[[» example implementation|https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js]]
+
XR Fragment: rot
+[[» example implementation|https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js]]
+
XR Fragment: t
-controls the animation(s) of the scene (or src
resource which contains a timeline)
-
-| fragment | type | functionality |
-| #t=1,1,100 | [vector3|vector] | speed,framestart,framestop |
-
-
-- playposition is reset to framestart, when framestart or framestop is greater than 0 |
-
-
-| Example Value | Explanation |
-|-|-|
-| 1,1,100
| play loop between frame 1 and 100 |
-| 1,1,0
| play once from frame 1 (oneshot) |
-| 1,0,0
| play (previously set looprange if any) |
-| 0,0,0
| pause |
-| 1,1,1
| play and auto-loop between begin and end of duration |
-| -1,0,0
| reverse playback speed |
-| 2.3,0,0
| set (forward) playback speed to 2.3 (no restart) |
-| -2.3,0,0
| set (reverse) playback speed to -2.3 ( no restart)|
-| -2.3,100,0
| set (reverse) playback speed to -2.3 restarting from frame 100 |
-
-[[» example implementation|https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/t.js]]
-[[» discussion|https://github.com/coderofsalvation/xrfragment/issues/10]]
+[[» example implementation|https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/t.js]]
XR audio/video integration
@@ -981,10 +963,10 @@ How does the scale of the object (with the embedded properties) impact the scale
- add a
src: foo.mp3
or src: bar.mp4
metadata to a 3D object (cube
e.g.)
-- to disable auto-play and global timeline ([[#t=|t]]) control: hardcode a [[#t=|t]] XR Fragment: (
src: bar.mp3#t=0,0,0
e.g.)
+- to enable auto-play and global timeline ([[#t=|t]]) control: hardcode a [[#t=|t]] XR Fragment: (
src: bar.mp3#t=0&loop
e.g.)
- to play it, add
href: #cube
somewhere else
-- when the enduser clicks the
href
, #t=1,0,0
(play) will be applied to the src
value
-- to play a single animation, add href: #animationname=1,0,0 somewhere else
+- to enable enduser-triggered play, use a [[URI Template]] XR Fragment: (
src: bar.mp3#{player}
and play: t=0&loop
and href: xrf://#player=play
e.g.)
+- when the enduser clicks the
href
, #t=0&loop
(play) will be applied to the src
value
@@ -1636,6 +1618,8 @@ Spec:
The enduser must be able to enable an accessibility-mode (which persists across application/webpage restarts)
Accessibility-mode must contain a text-input for the user to enter text
Accessibility-mode must contain a flexible textlog for the user to read (via screenreader, screen, or TTS e.g.)
+the textlog contains aria-descriptions
, and its narration (Screenreader e.g.) can be skipped (via cycling href’s, see next rule)
+href’s can be cycled via tab (keyboard) or ‘skip’ command
The back
command should navigate back to the previous URL (alias for browser-backbutton)
The forward
command should navigate back to the next URL (alias for browser-nextbutton)
A destination is a 3D node containing an href
with a pos=
XR fragment
diff --git a/doc/RFC_XR_Fragments.md b/doc/RFC_XR_Fragments.md
index 2db971d..295f80a 100644
--- a/doc/RFC_XR_Fragments.md
+++ b/doc/RFC_XR_Fragments.md
@@ -349,7 +349,7 @@ Example URI's:
│ index.gltf#playall │
│ │ │
│ ├ # : #t=0&shared=play │ apply default XR Fragment on load (`t` plays global 3D animation timeline)
- │ ├ play : #t=l:0,2 │ variable for [URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
+ │ ├ play : #t=0&loop │ variable for [URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
│ │ │
│ ├── ◻ plane (with material) │
│ │ └ #: #uv=0,0,0,+0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
@@ -559,41 +559,25 @@ How does the scale of the object (with the embedded properties) impact the scale
# XR Fragment: pos
+[[» example implementation|https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js]]
+
# XR Fragment: rot
+[[» example implementation|https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js]]
+
# XR Fragment: t
-controls the animation(s) of the scene (or `src` resource which contains a timeline)
-
-| fragment | type | functionality |
-| #t=1,1,100 | [[vector3|vector]] (default:`#t=1,0,0`) | speed,framestart,framestop |
-
-* playposition is reset to framestart, when framestart or framestop is greater than 0 |
-
-| Example Value | Explanation |
-|-|-|
-| `1,1,100` | play loop between frame 1 and 100 |
-| `1,1,0` | play once from frame 1 (oneshot) |
-| `1,0,0` | play (previously set looprange if any) |
-| `0,0,0` | pause |
-| `1,1,1` | play and auto-loop between begin and end of duration |
-| `-1,0,0` | reverse playback speed |
-| `2.3,0,0` | set (forward) playback speed to 2.3 (no restart) |
-| `-2.3,0,0` | set (reverse) playback speed to -2.3 ( no restart)|
-| `-2.3,100,0` | set (reverse) playback speed to -2.3 restarting from frame 100 |
-
[[» example implementation|https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/t.js]]
-[[» discussion|https://github.com/coderofsalvation/xrfragment/issues/10]]
# XR audio/video integration
To play global audio/video items:
1. add a `src: foo.mp3` or `src: bar.mp4` metadata to a 3D object (`cube` e.g.)
-1. to disable auto-play and global timeline ([[#t=|t]]) control: hardcode a [[#t=|t]] XR Fragment: (`src: bar.mp3#t=0,0,0` e.g.)
+1. to enable auto-play and global timeline ([[#t=|t]]) control: hardcode a [[#t=|t]] XR Fragment: (`src: bar.mp3#t=0&loop` e.g.)
1. to play it, add `href: #cube` somewhere else
-1. when the enduser clicks the `href`, `#t=1,0,0` (play) will be applied to the `src` value
-1. to play a single animation, add href: #animationname=1,0,0 somewhere else
+1. to enable enduser-triggered play, use a [[URI Template]] XR Fragment: (`src: bar.mp3#{player}` and `play: t=0&loop` and `href: xrf://#player=play` e.g.)
+1. when the enduser clicks the `href`, `#t=0&loop` (play) will be applied to the `src` value
> NOTE: hardcoded framestart/framestop uses sampleRate/fps of embedded audio/video, otherwise the global fps applies. For more info see [[#t|t]].
@@ -1081,19 +1065,21 @@ Spec:
1. The enduser must be able to enable an accessibility-mode (which persists across application/webpage restarts)
2. Accessibility-mode must contain a text-input for the user to enter text
3. Accessibility-mode must contain a flexible textlog for the user to read (via screenreader, screen, or TTS e.g.)
-4. The `back` command should navigate back to the previous URL (alias for browser-backbutton)
-5. The `forward` command should navigate back to the next URL (alias for browser-nextbutton)
-6. A destination is a 3D node containing an `href` with a `pos=` XR fragment
-7. The `go` command should list all possible destinations
-8. The `go left` command should move the camera around 0.3 meters to the left
-9. The `go right` command should move the camera around 0.3 meters to the right
-10. The `go forward` command should move the camera 0.3 meters forward (direction of current rotation).
-11. The `rotate left` command should rotate the camera 0.3 to the left
-12. The `rotate left` command should rotate the camera 0.3 to the right
-13. The (dynamic) `go abc` command should navigate to `#pos=scene2` in case there's a 3D node with name `abc` and `href` value `#pos=scene2`
-14. The `look` command should give an (contextual) 3D-to-text transcript, by scanning the `aria-description` values of the current `pos=` value (including its children)
-15. The `do` command should list all possible `href` values which don't contain an `pos=` XR Fragment
-16. The (dynamic) `do abc` command should navigate/execute `https://.../...` in case a 3D node exist with name `abc` and `href` value `https://.../...`
+4. the textlog contains `aria-descriptions`, and its narration (Screenreader e.g.) can be skipped (via cycling href's, see next rule)
+5. href's can be cycled via tab (keyboard) or 'skip' command
+6. The `back` command should navigate back to the previous URL (alias for browser-backbutton)
+7. The `forward` command should navigate back to the next URL (alias for browser-nextbutton)
+8. A destination is a 3D node containing an `href` with a `pos=` XR fragment
+9. The `go` command should list all possible destinations
+10. The `go left` command should move the camera around 0.3 meters to the left
+11. The `go right` command should move the camera around 0.3 meters to the right
+12. The `go forward` command should move the camera 0.3 meters forward (direction of current rotation).
+13. The `rotate left` command should rotate the camera 0.3 to the left
+14. The `rotate left` command should rotate the camera 0.3 to the right
+15. The (dynamic) `go abc` command should navigate to `#pos=scene2` in case there's a 3D node with name `abc` and `href` value `#pos=scene2`
+16. The `look` command should give an (contextual) 3D-to-text transcript, by scanning the `aria-description` values of the current `pos=` value (including its children)
+17. The `do` command should list all possible `href` values which don't contain an `pos=` XR Fragment
+18. The (dynamic) `do abc` command should navigate/execute `https://.../...` in case a 3D node exist with name `abc` and `href` value `https://.../...`
# Security Considerations
diff --git a/doc/RFC_XR_Fragments.txt b/doc/RFC_XR_Fragments.txt
index cea33b4..0ce7700 100644
--- a/doc/RFC_XR_Fragments.txt
+++ b/doc/RFC_XR_Fragments.txt
@@ -3,7 +3,7 @@
Jens & Leon Internet Engineering Task Force L.R. van Kammen
-Internet-Draft 9 May 2024
+Internet-Draft 17 June 2024
Intended status: Informational
@@ -46,16 +46,16 @@ Status of This Memo
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
- This Internet-Draft will expire on 10 November 2024.
+ This Internet-Draft will expire on 19 December 2024.
-van Kammen Expires 10 November 2024 [Page 1]
+van Kammen Expires 19 December 2024 [Page 1]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
Copyright Notice
@@ -94,9 +94,9 @@ Table of Contents
11. XR Fragment: pos . . . . . . . . . . . . . . . . . . . . . . 22
12. XR Fragment: rot . . . . . . . . . . . . . . . . . . . . . . 22
13. XR Fragment: t . . . . . . . . . . . . . . . . . . . . . . . 22
- 14. XR audio/video integration . . . . . . . . . . . . . . . . . 23
+ 14. XR audio/video integration . . . . . . . . . . . . . . . . . 22
15. XR Fragment filters . . . . . . . . . . . . . . . . . . . . . 23
- 15.1. including/excluding . . . . . . . . . . . . . . . . . . 24
+ 15.1. including/excluding . . . . . . . . . . . . . . . . . . 23
15.2. Filter Parser . . . . . . . . . . . . . . . . . . . . . 24
16. Visible links . . . . . . . . . . . . . . . . . . . . . . . . 25
17. Text in XR (tagging,linking to spatial objects) . . . . . . . 25
@@ -109,18 +109,18 @@ Table of Contents
-van Kammen Expires 10 November 2024 [Page 2]
+van Kammen Expires 19 December 2024 [Page 2]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
21. Additional scene metadata . . . . . . . . . . . . . . . . . . 35
22. Accessibility interface . . . . . . . . . . . . . . . . . . . 37
- 23. Security Considerations . . . . . . . . . . . . . . . . . . . 37
+ 23. Security Considerations . . . . . . . . . . . . . . . . . . . 38
24. FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
25. authors . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
- 26. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 38
- 27. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 38
+ 26. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 39
+ 27. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 39
28. Appendix: Definitions . . . . . . . . . . . . . . . . . . . . 39
1. Introduction
@@ -165,9 +165,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 3]
+van Kammen Expires 19 December 2024 [Page 3]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
XR Fragments tries to seek to connect the world of text (semantical
@@ -221,9 +221,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 4]
+van Kammen Expires 19 December 2024 [Page 4]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
+───────────────────────────────────────────────────────────────────────────────────────────────+
@@ -277,9 +277,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 5]
+van Kammen Expires 19 December 2024 [Page 5]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
* allowing 3D assets/nodes to publish XR Fragments to themselves/
@@ -333,9 +333,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 6]
+van Kammen Expires 19 December 2024 [Page 6]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
+=========+======================+=====================================+
@@ -389,9 +389,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 7]
+van Kammen Expires 19 December 2024 [Page 7]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
4. Conventions and Definitions
@@ -445,9 +445,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 8]
+van Kammen Expires 19 December 2024 [Page 8]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
my.io/scene.fbx
@@ -501,9 +501,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 9]
+van Kammen Expires 19 December 2024 [Page 9]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
|Media Fragments |media fragment |#t=0,2&loop |play (and |
@@ -557,9 +557,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 10]
+van Kammen Expires 19 December 2024 [Page 10]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
6.2. Fragment-to-metadata mapping
@@ -613,9 +613,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 11]
+van Kammen Expires 19 December 2024 [Page 11]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
| | | | |metadata (bar:#t=0 |
@@ -669,9 +669,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 12]
+van Kammen Expires 19 December 2024 [Page 12]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
| temporal | s=x | 1 | set playback |
@@ -725,9 +725,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 13]
+van Kammen Expires 19 December 2024 [Page 13]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
| | | | uv |
@@ -781,9 +781,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 14]
+van Kammen Expires 19 December 2024 [Page 14]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
+──────────────────────────────────────────────────────────+
@@ -791,7 +791,7 @@ Internet-Draft XR Fragments May 2024
│ index.gltf#playall │
│ │ │
│ ├ # : #t=0&shared=play │ apply default XR Fragment on load (`t` plays global 3D animation timeline)
- │ ├ play : #t=l:0,2 │ variable for [URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
+ │ ├ play : #t=0&loop │ variable for [URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
│ │ │
│ ├── ◻ plane (with material) │
│ │ └ #: #uv=0,0,0,+0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
@@ -837,9 +837,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 15]
+van Kammen Expires 19 December 2024 [Page 15]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
1. the Y-coordinate of pos identifies the floorposition. This means
@@ -893,9 +893,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 16]
+van Kammen Expires 19 December 2024 [Page 16]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
1. IF a #cube matches a custom property-key (of an object) in the 3D
@@ -949,9 +949,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 17]
+van Kammen Expires 19 December 2024 [Page 17]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
+────────────────────────────────────────────────────────+ +─────────────────────────+
@@ -1005,9 +1005,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 18]
+van Kammen Expires 19 December 2024 [Page 18]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
6. external src values should be served with appropriate
@@ -1061,9 +1061,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 19]
+van Kammen Expires 19 December 2024 [Page 19]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
+==========+==================+============================+
@@ -1117,9 +1117,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 20]
+van Kammen Expires 19 December 2024 [Page 20]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
» example implementation
@@ -1173,9 +1173,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 21]
+van Kammen Expires 19 December 2024 [Page 21]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
* calculate the bounding box of the instanced scene, and
@@ -1193,46 +1193,24 @@ Internet-Draft XR Fragments May 2024
11. XR Fragment: pos
+ [[» example implementation|https://github.com/coderofsalvation/xrfrag
+ ment/blob/main/src/3rd/js/three/xrf/pos.js]
+ (https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/
+ three/xrf/pos.js])]
+
12. XR Fragment: rot
+ [[» example implementation|https://github.com/coderofsalvation/xrfrag
+ ment/blob/main/src/3rd/js/three/xrf/pos.js]
+ (https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/
+ three/xrf/pos.js])]
+
13. XR Fragment: t
- controls the animation(s) of the scene (or src resource which
- contains a timeline)
-
- | fragment | type | functionality | | #t=1,1,100 |
- [vector3|vector] (default:`#t=1,0,0`) | speed,framestart,framestop |
-
- * playposition is reset to framestart, when framestart or framestop
- is greater than 0 |
-
- | Example Value | Explanation | |-|-| | 1,1,100 | play loop between
- frame 1 and 100 | | 1,1,0 | play once from frame 1 (oneshot) | |
- 1,0,0 | play (previously set looprange if any) | | 0,0,0 | pause | |
- 1,1,1 | play and auto-loop between begin and end of duration | |
- -1,0,0 | reverse playback speed | | 2.3,0,0 | set (forward) playback
- speed to 2.3 (no restart) | | -2.3,0,0 | set (reverse) playback speed
- to -2.3 ( no restart)| | -2.3,100,0 | set (reverse) playback speed to
- -2.3 restarting from frame 100 |
-
[[» example implementation|https://github.com/coderofsalvation/xrfrag
ment/blob/main/src/3rd/js/three/xrf/t.js]
(https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/
three/xrf/t.js])]
- [[» discussion|https://github.com/coderofsalvation/xrfragment/
- issues/10] (https://github.com/coderofsalvation/xrfragment/
- issues/10])]
-
-
-
-
-
-
-
-van Kammen Expires 10 November 2024 [Page 22]
-
-Internet-Draft XR Fragments May 2024
-
14. XR audio/video integration
@@ -1240,13 +1218,21 @@ Internet-Draft XR Fragments May 2024
1. add a src: foo.mp3 or src: bar.mp4 metadata to a 3D object (cube
e.g.)
- 2. to disable auto-play and global timeline ([[#t=|t]]) control:
- hardcode a [[#t=|t]] XR Fragment: (src: bar.mp3#t=0,0,0 e.g.)
+ 2. to enable auto-play and global timeline ([[#t=|t]]) control:
+ hardcode a [[#t=|t]] XR Fragment: (src: bar.mp3#t=0&loop e.g.)
3. to play it, add href: #cube somewhere else
- 4. when the enduser clicks the href, #t=1,0,0 (play) will be applied
- to the src value
- 5. to play a single animation, add href: #animationname=1,0,0
- somewhere else
+ 4. to enable enduser-triggered play, use a [[URI Template]] XR
+ Fragment: (src: bar.mp3#{player} and play: t=0&loop and href:
+ xrf://#player=play e.g.)
+ 5. when the enduser clicks the href, #t=0&loop (play) will be
+ applied to the src value
+
+
+
+van Kammen Expires 19 December 2024 [Page 22]
+
+Internet-Draft XR Fragments June 2024
+
| NOTE: hardcoded framestart/framestop uses sampleRate/fps of
| embedded audio/video, otherwise the global fps applies. For more
@@ -1281,15 +1267,6 @@ Internet-Draft XR Fragments May 2024
which used a dedicated q= variable (now deprecated and usable
directly)
-
-
-
-
-van Kammen Expires 10 November 2024 [Page 23]
-
-Internet-Draft XR Fragments May 2024
-
-
15.1. including/excluding
By default, selectors work like photoshop-layers: they scan for
@@ -1297,6 +1274,22 @@ Internet-Draft XR Fragments May 2024
object (not their children) will be toggled (in)visible when
selecting.
+
+
+
+
+
+
+
+
+
+
+
+van Kammen Expires 19 December 2024 [Page 23]
+
+Internet-Draft XR Fragments June 2024
+
+
+==========+==============================================+
| operator | info |
+==========+==============================================+
@@ -1337,15 +1330,6 @@ Internet-Draft XR Fragments May 2024
1. create an associative array/object to store filter-arguments as
objects
-
-
-
-
-van Kammen Expires 10 November 2024 [Page 24]
-
-Internet-Draft XR Fragments May 2024
-
-
2. detect object id's & properties foo=1 and foo (reference regex=
~/^.*=[><=]?/ )
3. detect excluders like -foo,-foo=1,-.foo,-/foo (reference regex=
@@ -1354,6 +1338,14 @@ Internet-Draft XR Fragments May 2024
5. detect number values like foo=1 (reference regex= /^[0-9\.]+$/ )
6. detect operators so you can easily strip keys (reference regex=
/(^-|\*$)/ )
+
+
+
+van Kammen Expires 19 December 2024 [Page 24]
+
+Internet-Draft XR Fragments June 2024
+
+
7. detect exclude keys like -foo (reference regex= /^-/ )
8. for every filter token split string on =
9. and we set root to true or false (true=/ root selector is
@@ -1394,19 +1386,22 @@ Internet-Draft XR Fragments May 2024
How does XR Fragments interlink text with objects?
-
-
-
-van Kammen Expires 10 November 2024 [Page 25]
-
-Internet-Draft XR Fragments May 2024
-
-
| The XR Fragments does this by collapsing space into a *Word Graph*
| (the *XRWG* example
| (https://github.com/coderofsalvation/xrfragment/blob/feat/macros/
| src/3rd/js/XRWG.js)), augmented by Bib(s)Tex.
+
+
+
+
+
+
+van Kammen Expires 19 December 2024 [Page 25]
+
+Internet-Draft XR Fragments June 2024
+
+
Instead of just throwing together all kinds media types into one
experience (games), what about their tagged/semantical relationships?
Perhaps the following question is related: why is HTML adopted less
@@ -1453,9 +1448,14 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 26]
+
+
+
+
+
+van Kammen Expires 19 December 2024 [Page 26]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
http://y.io/z.fbx | Derived XRWG (expressed as BibTex)
@@ -1509,9 +1509,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 27]
+van Kammen Expires 19 December 2024 [Page 27]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
As seen above, the XRWG can expand bibs
@@ -1565,9 +1565,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 28]
+van Kammen Expires 19 December 2024 [Page 28]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
12. Default font (unless specified otherwise) is a modern monospace
@@ -1621,9 +1621,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 29]
+van Kammen Expires 19 December 2024 [Page 29]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
* lines beginning with @ will not be rendered verbatim by default
@@ -1677,9 +1677,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 30]
+van Kammen Expires 19 December 2024 [Page 30]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
+--------------------------------------------------------------+ +------------------------+
@@ -1733,9 +1733,9 @@ xrtext = {
-van Kammen Expires 10 November 2024 [Page 31]
+van Kammen Expires 19 December 2024 [Page 31]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
// bibtex: ↓@ ↓ ↓property ↓end
@@ -1789,9 +1789,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 32]
+van Kammen Expires 19 December 2024 [Page 32]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
str = `
@@ -1845,9 +1845,9 @@ console.log( xrtext.encode(text,tags) ) // multiplex text & bibtex back to
-van Kammen Expires 10 November 2024 [Page 33]
+van Kammen Expires 19 December 2024 [Page 33]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
2. mirroring files on another protocol using (HTTP) errorcode tags
@@ -1901,9 +1901,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 34]
+van Kammen Expires 19 December 2024 [Page 34]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
* href: university.edu/projects.gltf#math&-theme math
@@ -1957,9 +1957,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 35]
+van Kammen Expires 19 December 2024 [Page 35]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
* BibTex (https://bibtex.eu/fields) when known bibtex-keys exist
@@ -2013,9 +2013,9 @@ Internet-Draft XR Fragments May 2024
-van Kammen Expires 10 November 2024 [Page 36]
+van Kammen Expires 19 December 2024 [Page 36]
-Internet-Draft XR Fragments May 2024
+Internet-Draft XR Fragments June 2024
22. Accessibility interface
@@ -2031,33 +2031,49 @@ Internet-Draft XR Fragments May 2024
enter text
3. Accessibility-mode must contain a flexible textlog for the user
to read (via screenreader, screen, or TTS e.g.)
- 4. The back command should navigate back to the previous URL (alias
+ 4. the textlog contains aria-descriptions, and its narration
+ (Screenreader e.g.) can be skipped (via cycling href's, see next
+ rule)
+ 5. href's can be cycled via tab (keyboard) or 'skip' command
+ 6. The back command should navigate back to the previous URL (alias
for browser-backbutton)
- 5. The forward command should navigate back to the next URL (alias
+ 7. The forward command should navigate back to the next URL (alias
for browser-nextbutton)
- 6. A destination is a 3D node containing an href with a pos= XR
+ 8. A destination is a 3D node containing an href with a pos= XR
fragment
- 7. The go command should list all possible destinations
- 8. The go left command should move the camera around 0.3 meters to
+ 9. The go command should list all possible destinations
+ 10. The go left command should move the camera around 0.3 meters to
the left
- 9. The go right command should move the camera around 0.3 meters to
+ 11. The go right command should move the camera around 0.3 meters to
the right
- 10. The go forward command should move the camera 0.3 meters forward
+ 12. The go forward command should move the camera 0.3 meters forward
(direction of current rotation).
- 11. The rotate left command should rotate the camera 0.3 to the left
- 12. The rotate left command should rotate the camera 0.3 to the
+ 13. The rotate left command should rotate the camera 0.3 to the left
+ 14. The rotate left command should rotate the camera 0.3 to the
right
- 13. The (dynamic) go abc command should navigate to #pos=scene2 in
+ 15. The (dynamic) go abc command should navigate to #pos=scene2 in
case there's a 3D node with name abc and href value #pos=scene2
- 14. The look command should give an (contextual) 3D-to-text
+ 16. The look command should give an (contextual) 3D-to-text
transcript, by scanning the aria-description values of the
current pos= value (including its children)
- 15. The do command should list all possible href values which don't
+ 17. The do command should list all possible href values which don't
contain an pos= XR Fragment
- 16. The (dynamic) do abc command should navigate/execute
+ 18. The (dynamic) do abc command should navigate/execute
https://.../... in case a 3D node exist with name abc and href
value https://.../...
+
+
+
+
+
+
+
+van Kammen Expires 19 December 2024 [Page 37]
+
+Internet-Draft XR Fragments June 2024
+
+
23. Security Considerations
The only dynamic parts are W3C Media Fragments
@@ -2066,14 +2082,6 @@ Internet-Draft XR Fragments May 2024
The use of URI Templates is limited to pre-defined variables and
Level0 fragments-expansion only, which makes it quite safe.
In fact, it is much safer than relying on a scripting language
-
-
-
-van Kammen Expires 10 November 2024 [Page 37]
-
-Internet-Draft XR Fragments May 2024
-
-
(javascript) which can change URN too.
24. FAQ
@@ -2114,6 +2122,14 @@ Internet-Draft XR Fragments May 2024
* Leon van Kammen (@lvk@mastodon.online)
* Jens Finkhäuser (@jens@social.finkhaeuser.de)
+
+
+
+van Kammen Expires 19 December 2024 [Page 38]
+
+Internet-Draft XR Fragments June 2024
+
+
26. IANA Considerations
This document has no IANA actions.
@@ -2122,14 +2138,6 @@ Internet-Draft XR Fragments May 2024
* NLNET (https://nlnet.nl)
* Future of Text (https://futureoftext.org)
-
-
-
-van Kammen Expires 10 November 2024 [Page 38]
-
-Internet-Draft XR Fragments May 2024
-
-
* visual-meta.info (https://visual-meta.info)
* Michiel Leenaars
* Gerben van der Broeke
@@ -2170,6 +2178,14 @@ Internet-Draft XR Fragments May 2024
| | Object(nodes), relevant to machines and a |
| | human minority (academics/developers) |
+-----------------+---------------------------------------------+
+
+
+
+van Kammen Expires 19 December 2024 [Page 39]
+
+Internet-Draft XR Fragments June 2024
+
+
| XR fragment | URI Fragment with spatial hints like |
| | #pos=0,0,0&t=1,100 e.g. |
+-----------------+---------------------------------------------+
@@ -2178,14 +2194,6 @@ Internet-Draft XR Fragments May 2024
| the hashbus | hashtags map to camera/scene-projections |
+-----------------+---------------------------------------------+
| spacetime | positions camera, triggers scene-preset/ |
-
-
-
-van Kammen Expires 10 November 2024 [Page 39]
-
-Internet-Draft XR Fragments May 2024
-
-
| hashtags | time |
+-----------------+---------------------------------------------+
| teleportation | repositioning the enduser to a different |
@@ -2226,6 +2234,14 @@ Internet-Draft XR Fragments May 2024
| extrospective | outward sensemaking ("I'm fairly sure John |
| | is a person who lives in oklahoma") |
+-----------------+---------------------------------------------+
+
+
+
+van Kammen Expires 19 December 2024 [Page 40]
+
+Internet-Draft XR Fragments June 2024
+
+
| ◻ | ascii representation of an 3D object/mesh |
+-----------------+---------------------------------------------+
| (un)obtrusive | obtrusive: wrapping human text/thought in |
@@ -2234,14 +2250,6 @@ Internet-Draft XR Fragments May 2024
+-----------------+---------------------------------------------+
| flat 3D object | a 3D object of which all verticies share a |
| | plane |
-
-
-
-van Kammen Expires 10 November 2024 [Page 40]
-
-Internet-Draft XR Fragments May 2024
-
-
+-----------------+---------------------------------------------+
| BibTeX | simple tagging/citing/referencing standard |
| | for plaintext |
@@ -2285,12 +2293,4 @@ Internet-Draft XR Fragments May 2024
-
-
-
-
-
-
-
-
-van Kammen Expires 10 November 2024 [Page 41]
+van Kammen Expires 19 December 2024 [Page 41]
diff --git a/doc/RFC_XR_Fragments.xml b/doc/RFC_XR_Fragments.xml
index e41a3a1..cf66180 100644
--- a/doc/RFC_XR_Fragments.xml
+++ b/doc/RFC_XR_Fragments.xml
@@ -553,7 +553,7 @@ For example, to render a portal with a preview-version of the scene, create an 3
│ index.gltf#playall │
│ │ │
│ ├ # : #t=0&shared=play │ apply default XR Fragment on load (`t` plays global 3D animation timeline)
- │ ├ play : #t=l:0,2 │ variable for [URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
+ │ ├ play : #t=0&loop │ variable for [URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
│ │ │
│ ├── ◻ plane (with material) │
│ │ └ #: #uv=0,0,0,+0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
@@ -837,33 +837,17 @@ How does the scale of the object (with the embedded properties) impact the scale
XR Fragment: pos
+[[» example implementation|https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js]]
+
XR Fragment: rot
+[[» example implementation|https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js]]
+
XR Fragment: t
-controls the animation(s) of the scene (or src resource which contains a timeline)
-| fragment | type | functionality |
-| <b>#t</b>=1,1,100 | [vector3|vector] | speed,framestart,framestop |
-
-
-- playposition is reset to framestart, when framestart or framestop is greater than 0 |
-
-| Example Value | Explanation |
-|-|-|
-| 1,1,100 | play loop between frame 1 and 100 |
-| 1,1,0 | play once from frame 1 (oneshot) |
-| 1,0,0 | play (previously set looprange if any) |
-| 0,0,0 | pause |
-| 1,1,1 | play and auto-loop between begin and end of duration |
-| -1,0,0 | reverse playback speed |
-| 2.3,0,0 | set (forward) playback speed to 2.3 (no restart) |
-| -2.3,0,0 | set (reverse) playback speed to -2.3 ( no restart)|
-| -2.3,100,0 | set (reverse) playback speed to -2.3 restarting from frame 100 |
[[» example implementation|https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/t.js]]
-
-[[» discussion|https://github.com/coderofsalvation/xrfragment/issues/10]]
@@ -872,10 +856,10 @@ How does the scale of the object (with the embedded properties) impact the scale
- add a src: foo.mp3 or src: bar.mp4 metadata to a 3D object (cube e.g.)
-- to disable auto-play and global timeline ([[#t=|t]]) control: hardcode a [[#t=|t]] XR Fragment: (src: bar.mp3#t=0,0,0 e.g.)
+- to enable auto-play and global timeline ([[#t=|t]]) control: hardcode a [[#t=|t]] XR Fragment: (src: bar.mp3#t=0&loop e.g.)
- to play it, add href: #cube somewhere else
-- when the enduser clicks the href, #t=1,0,0 (play) will be applied to the src value
-- to play a single animation, add href: #animationname=1,0,0 somewhere else
+- to enable enduser-triggered play, use a [[URI Template]] XR Fragment: (src: bar.mp3#{player} and play: t=0&loop and href: xrf://#player=play e.g.)
+- when the enduser clicks the href, #t=0&loop (play) will be applied to the src value
NOTE: hardcoded framestart/framestop uses sampleRate/fps of embedded audio/video, otherwise the global fps applies. For more info see [[#t|t]].
@@ -1455,6 +1439,8 @@ Spec:
The enduser must be able to enable an accessibility-mode (which persists across application/webpage restarts)
Accessibility-mode must contain a text-input for the user to enter text
Accessibility-mode must contain a flexible textlog for the user to read (via screenreader, screen, or TTS e.g.)
+the textlog contains aria-descriptions, and its narration (Screenreader e.g.) can be skipped (via cycling href's, see next rule)
+href's can be cycled via tab (keyboard) or 'skip' command
The back command should navigate back to the previous URL (alias for browser-backbutton)
The forward command should navigate back to the next URL (alias for browser-nextbutton)
A destination is a 3D node containing an href with a pos= XR fragment