main: update documentation
This commit is contained in:
parent
b1a518bbd8
commit
093de1ec6f
|
@ -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
|
|||
|
||||
<h1 id="xr-fragment-pos">XR Fragment: pos</h1>
|
||||
|
||||
<p>[[» example implementation|<a href="https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js]">https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js]</a>]<br></p>
|
||||
|
||||
<h1 id="xr-fragment-rot">XR Fragment: rot</h1>
|
||||
|
||||
<p>[[» example implementation|<a href="https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js]">https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js]</a>]<br></p>
|
||||
|
||||
<h1 id="xr-fragment-t">XR Fragment: t</h1>
|
||||
|
||||
<p>controls the animation(s) of the scene (or <code>src</code> resource which contains a timeline)</p>
|
||||
|
||||
<p>| fragment | type | functionality |
|
||||
| <b>#t</b>=1,1,100 | <a href="default:`#t=1,0,0`">[vector3|vector]</a> | speed,framestart,framestop |</p>
|
||||
|
||||
<ul>
|
||||
<li>playposition is reset to framestart, when framestart or framestop is greater than 0 |</li>
|
||||
</ul>
|
||||
|
||||
<p>| Example Value | Explanation |
|
||||
|-|-|
|
||||
| <code>1,1,100</code> | play loop between frame 1 and 100 |
|
||||
| <code>1,1,0</code> | play once from frame 1 (oneshot) |
|
||||
| <code>1,0,0</code> | play (previously set looprange if any) |
|
||||
| <code>0,0,0</code> | pause |
|
||||
| <code>1,1,1</code> | play and auto-loop between begin and end of duration |
|
||||
| <code>-1,0,0</code> | reverse playback speed |
|
||||
| <code>2.3,0,0</code> | set (forward) playback speed to 2.3 (no restart) |
|
||||
| <code>-2.3,0,0</code> | set (reverse) playback speed to -2.3 ( no restart)|
|
||||
| <code>-2.3,100,0</code> | set (reverse) playback speed to -2.3 restarting from frame 100 |</p>
|
||||
|
||||
<p>[[» example implementation|<a href="https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/t.js]">https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/t.js]</a>]<br>
|
||||
[[» discussion|<a href="https://github.com/coderofsalvation/xrfragment/issues/10]">https://github.com/coderofsalvation/xrfragment/issues/10]</a>]<br></p>
|
||||
<p>[[» example implementation|<a href="https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/t.js]">https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/t.js]</a>]<br></p>
|
||||
|
||||
<h1 id="xr-audio-video-integration">XR audio/video integration</h1>
|
||||
|
||||
|
@ -981,10 +963,10 @@ How does the scale of the object (with the embedded properties) impact the scale
|
|||
|
||||
<ol>
|
||||
<li>add a <code>src: foo.mp3</code> or <code>src: bar.mp4</code> metadata to a 3D object (<code>cube</code> e.g.)</li>
|
||||
<li>to disable auto-play and global timeline ([[#t=|t]]) control: hardcode a [[#t=|t]] XR Fragment: (<code>src: bar.mp3#t=0,0,0</code> e.g.)</li>
|
||||
<li>to enable auto-play and global timeline ([[#t=|t]]) control: hardcode a [[#t=|t]] XR Fragment: (<code>src: bar.mp3#t=0&loop</code> e.g.)</li>
|
||||
<li>to play it, add <code>href: #cube</code> somewhere else</li>
|
||||
<li>when the enduser clicks the <code>href</code>, <code>#t=1,0,0</code> (play) will be applied to the <code>src</code> value</li>
|
||||
<li>to play a single animation, add href: #animationname=1,0,0 somewhere else</li>
|
||||
<li>to enable enduser-triggered play, use a [[URI Template]] XR Fragment: (<code>src: bar.mp3#{player}</code> and <code>play: t=0&loop</code> and <code>href: xrf://#player=play</code> e.g.)</li>
|
||||
<li>when the enduser clicks the <code>href</code>, <code>#t=0&loop</code> (play) will be applied to the <code>src</code> value</li>
|
||||
</ol>
|
||||
|
||||
<blockquote>
|
||||
|
@ -1636,6 +1618,8 @@ Spec:<br><Br></p>
|
|||
<li>The enduser must be able to enable an accessibility-mode (which persists across application/webpage restarts)</li>
|
||||
<li>Accessibility-mode must contain a text-input for the user to enter text</li>
|
||||
<li>Accessibility-mode must contain a flexible textlog for the user to read (via screenreader, screen, or TTS e.g.)</li>
|
||||
<li>the textlog contains <code>aria-descriptions</code>, and its narration (Screenreader e.g.) can be skipped (via cycling href’s, see next rule)</li>
|
||||
<li>href’s can be cycled via tab (keyboard) or ‘skip’ command</li>
|
||||
<li>The <code>back</code> command should navigate back to the previous URL (alias for browser-backbutton)</li>
|
||||
<li>The <code>forward</code> command should navigate back to the next URL (alias for browser-nextbutton)</li>
|
||||
<li>A destination is a 3D node containing an <code>href</code> with a <code>pos=</code> XR fragment</li>
|
||||
|
|
|
@ -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]]<br>
|
||||
|
||||
# XR Fragment: rot
|
||||
|
||||
[[» example implementation|https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js]]<br>
|
||||
|
||||
# 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]] (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]]<br>
|
||||
[[» discussion|https://github.com/coderofsalvation/xrfragment/issues/10]]<br>
|
||||
|
||||
# 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:<br><Br>
|
|||
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
|
||||
|
|
|
@ -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. <b>external</b> 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 <b>bounding box</b> 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 | | <b>#t</b>=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: ↓@ ↓<tag|tag{phrase,|{ruler}> ↓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]
|
||||
|
|
|
@ -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
|
|||
</section>
|
||||
|
||||
<section anchor="xr-fragment-pos"><name>XR Fragment: pos</name>
|
||||
<t>[[» example implementation|<eref target="https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js]">https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js]</eref>]<br />
|
||||
</t>
|
||||
</section>
|
||||
|
||||
<section anchor="xr-fragment-rot"><name>XR Fragment: rot</name>
|
||||
<t>[[» example implementation|<eref target="https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js]">https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js]</eref>]<br />
|
||||
</t>
|
||||
</section>
|
||||
|
||||
<section anchor="xr-fragment-t"><name>XR Fragment: t</name>
|
||||
<t>controls the animation(s) of the scene (or <tt>src</tt> resource which contains a timeline)</t>
|
||||
<t>| fragment | type | functionality |
|
||||
| <b>#t</b>=1,1,100 | <eref target="default:`#t=1,0,0`">[vector3|vector]</eref> | speed,framestart,framestop |</t>
|
||||
|
||||
<ul spacing="compact">
|
||||
<li>playposition is reset to framestart, when framestart or framestop is greater than 0 |</li>
|
||||
</ul>
|
||||
<t>| Example Value | Explanation |
|
||||
|-|-|
|
||||
| <tt>1,1,100</tt> | play loop between frame 1 and 100 |
|
||||
| <tt>1,1,0</tt> | play once from frame 1 (oneshot) |
|
||||
| <tt>1,0,0</tt> | play (previously set looprange if any) |
|
||||
| <tt>0,0,0</tt> | pause |
|
||||
| <tt>1,1,1</tt> | play and auto-loop between begin and end of duration |
|
||||
| <tt>-1,0,0</tt> | reverse playback speed |
|
||||
| <tt>2.3,0,0</tt> | set (forward) playback speed to 2.3 (no restart) |
|
||||
| <tt>-2.3,0,0</tt> | set (reverse) playback speed to -2.3 ( no restart)|
|
||||
| <tt>-2.3,100,0</tt> | set (reverse) playback speed to -2.3 restarting from frame 100 |</t>
|
||||
<t>[[» example implementation|<eref target="https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/t.js]">https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/t.js]</eref>]<br />
|
||||
|
||||
[[» discussion|<eref target="https://github.com/coderofsalvation/xrfragment/issues/10]">https://github.com/coderofsalvation/xrfragment/issues/10]</eref>]<br />
|
||||
</t>
|
||||
</section>
|
||||
|
||||
|
@ -872,10 +856,10 @@ How does the scale of the object (with the embedded properties) impact the scale
|
|||
|
||||
<ol spacing="compact">
|
||||
<li>add a <tt>src: foo.mp3</tt> or <tt>src: bar.mp4</tt> metadata to a 3D object (<tt>cube</tt> e.g.)</li>
|
||||
<li>to disable auto-play and global timeline ([[#t=|t]]) control: hardcode a [[#t=|t]] XR Fragment: (<tt>src: bar.mp3#t=0,0,0</tt> e.g.)</li>
|
||||
<li>to enable auto-play and global timeline ([[#t=|t]]) control: hardcode a [[#t=|t]] XR Fragment: (<tt>src: bar.mp3#t=0&loop</tt> e.g.)</li>
|
||||
<li>to play it, add <tt>href: #cube</tt> somewhere else</li>
|
||||
<li>when the enduser clicks the <tt>href</tt>, <tt>#t=1,0,0</tt> (play) will be applied to the <tt>src</tt> value</li>
|
||||
<li>to play a single animation, add href: #animationname=1,0,0 somewhere else</li>
|
||||
<li>to enable enduser-triggered play, use a [[URI Template]] XR Fragment: (<tt>src: bar.mp3#{player}</tt> and <tt>play: t=0&loop</tt> and <tt>href: xrf://#player=play</tt> e.g.)</li>
|
||||
<li>when the enduser clicks the <tt>href</tt>, <tt>#t=0&loop</tt> (play) will be applied to the <tt>src</tt> value</li>
|
||||
</ol>
|
||||
<blockquote><t>NOTE: hardcoded framestart/framestop uses sampleRate/fps of embedded audio/video, otherwise the global fps applies. For more info see [[#t|t]].</t>
|
||||
</blockquote></section>
|
||||
|
@ -1455,6 +1439,8 @@ Spec:<br />
|
|||
<li>The enduser must be able to enable an accessibility-mode (which persists across application/webpage restarts)</li>
|
||||
<li>Accessibility-mode must contain a text-input for the user to enter text</li>
|
||||
<li>Accessibility-mode must contain a flexible textlog for the user to read (via screenreader, screen, or TTS e.g.)</li>
|
||||
<li>the textlog contains <tt>aria-descriptions</tt>, and its narration (Screenreader e.g.) can be skipped (via cycling href's, see next rule)</li>
|
||||
<li>href's can be cycled via tab (keyboard) or 'skip' command</li>
|
||||
<li>The <tt>back</tt> command should navigate back to the previous URL (alias for browser-backbutton)</li>
|
||||
<li>The <tt>forward</tt> command should navigate back to the next URL (alias for browser-nextbutton)</li>
|
||||
<li>A destination is a 3D node containing an <tt>href</tt> with a <tt>pos=</tt> XR fragment</li>
|
||||
|
|
Loading…
Reference in New Issue