update documentation
This commit is contained in:
parent
6c88baeee4
commit
84212f31a4
|
@ -100,9 +100,10 @@ XR Fragments exploits the fact that all 3D models already contain such metadata:
|
|||
<p>It solves:</p>
|
||||
|
||||
<ol>
|
||||
<li>addressibility and <a href="https://github.com/coderofsalvation/hypermediatic">hypermediatic</a> navigation of 3D scenes/objects: <a href="https://en.wikipedia.org/wiki/URI_fragment">URI Fragments</a> + src/href spatial metadata</li>
|
||||
<li>addressibility and <a href="https://github.com/coderofsalvation/hypermediatic">hypermediatic</a> navigation of 3D scenes/objects: <a href="https://en.wikipedia.org/wiki/URI_fragment">URI Fragments</a> using src/href spatial metadata</li>
|
||||
<li>Interlinking text & spatial objects by collapsing space into a Word Graph (XRWG) to show <a href="#visible-links">visible links</a></li>
|
||||
<li>unlocking spatial potential of the (originally 2D) hashtag (which jumps to a chapter) for navigating XR documents</li>
|
||||
<li>refraining from introducing scripting-engines for mundane tasks (and preventing its inevitable security-headaches)</li>
|
||||
</ol>
|
||||
|
||||
<blockquote>
|
||||
|
@ -170,7 +171,7 @@ Instead of forcing authors to combine 3D/2D objects programmatically (publishing
|
|||
</code></pre>
|
||||
|
||||
<blockquote>
|
||||
<p>?-linked and #-linked navigation allows a Hypermediatic FeedbackLoop (HFL) between external and internal 4D navigation.</p>
|
||||
<p>?-linked and #-linked navigation are JUST one possible way to implement XR Fragments, to allow a Hypermediatic FeedbackLoop (HFL) between external and internal 4D navigation.</p>
|
||||
</blockquote>
|
||||
|
||||
<p>Traditional webbrowsers can become 4D document-ready by:</p>
|
||||
|
@ -370,6 +371,14 @@ That way, if the link gets shared, the XR Fragments implementation at <code>http
|
|||
<td>tag object (for filter-use / XRWG highlighting)</td>
|
||||
<td>custom property in 3D fileformats</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><code>#</code></td>
|
||||
<td>string</td>
|
||||
<td><code>"#": "#mypreset</code></td>
|
||||
<td>trigger default fragment on load</td>
|
||||
<td>custom property in 3D fileformats</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@ -527,7 +536,7 @@ That way, if the link gets shared, the XR Fragments implementation at <code>http
|
|||
|
||||
<tr>
|
||||
<td>vector2</td>
|
||||
<td>uv=uv,v,uspeed,vspeed</td>
|
||||
<td>uv=u,v,uspeed,vspeed</td>
|
||||
<td>0,0</td>
|
||||
<td>set uv offset instantly (default speed = <code>1,1</code>)</td>
|
||||
</tr>
|
||||
|
@ -566,15 +575,15 @@ That way, if the link gets shared, the XR Fragments implementation at <code>http
|
|||
<blockquote>
|
||||
<p>* = this is extending the <a href="https://www.w3.org/TR/media-frags/#mf-advanced">W3C media fragments</a> with (missing) playback/viewport-control. Normally <code>#t=0,2</code> implies setting start/stop-values AND starting playback, whereas <code>#s=0&loop</code> allows pausing a video, speeding up/slowing down media, as well as enabling/disabling looping.</p>
|
||||
|
||||
<p>The rationale for <code>uv</code> is that the <code>xywh</code> Media Fragment deals with rectangular media, which does not translate well to 3D models (which use triangular polygons, not rectangular) positioned by uv-coordinates.</p>
|
||||
<p>The rationale for <code>uv</code> is that the <code>xywh</code> Media Fragment deals with rectangular media, which does not translate well to 3D models (which use triangular polygons, not rectangular) positioned by uv-coordinates. This also explains the absense of a <code>scale</code> or <code>rotate</code> primitive, which is challenged by this, as well as multiple origins (mesh- or texture).</p>
|
||||
</blockquote>
|
||||
|
||||
<p>Example URI’s:</p>
|
||||
|
||||
<ul>
|
||||
<li><code>https://images.org/credits.jpg#uv=0,0,0,+0.1</code> (infinite vertical texturescrolling)</li>
|
||||
<li><code>https://video.org/organogram.mp4#t=0&loop&uv:0.1,0.1,0.3,0.3</code> (animated zoom towards region in looped video)</li>
|
||||
<li><code>https://shaders.org/plasma.glsl#t=0&u:col1=1,0,0&u:col2=0,1,0</code> (red-green shader plasma starts playing from time-offset 0)</li>
|
||||
<li><code>https://video.org/organogram.mp4#t=0&loop&uv=0.1,0.1,0.3,0.3</code> (animated zoom towards region in looped video)</li>
|
||||
<li><code>https://shaders.org/plasma.glsl#t=0&u:col2=0,1,0</code> (red-green shader plasma starts playing from time-offset 0)</li>
|
||||
</ul>
|
||||
|
||||
<pre><code> +──────────────────────────────────────────────────────────+
|
||||
|
@ -585,10 +594,10 @@ That way, if the link gets shared, the XR Fragments implementation at <code>http
|
|||
│ ├ play : #t=l:0,2 │ variable for [URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
|
||||
│ │ │
|
||||
│ ├── ◻ plane (with material) │
|
||||
│ │ └ #: #suv=l:0,0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
|
||||
│ │ └ #: #uv=0,0,0,+0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
|
||||
│ │ │
|
||||
│ ├── ◻ plane │
|
||||
│ │ └ src: foo.jpg#suv=l:0,0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
|
||||
│ │ └ src: foo.jpg#uv=0,0,0,+0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
|
||||
│ │ │
|
||||
│ ├── ◻ media │
|
||||
│ │ └ src: cat.mp4#t=l:2,10&uv=0.5,0.5 │ loop cat.mp4 (or mp3/wav/jpg) between 2 and 10 seconds (uv's shifted with 0.5,0.5)
|
||||
|
|
|
@ -112,9 +112,10 @@ XR Fragments exploits the fact that all 3D models already contain such metadata:
|
|||
|
||||
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) + src/href spatial metadata
|
||||
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
|
||||
1. Interlinking text & spatial objects by collapsing space into a Word Graph (XRWG) to show [visible links](#visible-links)
|
||||
1. unlocking spatial potential of the (originally 2D) hashtag (which jumps to a chapter) for navigating XR documents
|
||||
1. refraining from introducing scripting-engines for mundane tasks (and preventing its inevitable security-headaches)
|
||||
|
||||
> NOTE: The chapters in this document are ordered from highlevel to lowlevel (technical) as much as possible
|
||||
|
||||
|
@ -178,7 +179,7 @@ Below you can see how this translates back into good-old URLs:
|
|||
|
||||
```
|
||||
|
||||
> ?-linked and #-linked navigation allows a Hypermediatic FeedbackLoop (HFL) between external and internal 4D navigation.
|
||||
> ?-linked and #-linked navigation are JUST one possible way to implement XR Fragments, to allow a Hypermediatic FeedbackLoop (HFL) between external and internal 4D navigation.
|
||||
|
||||
Traditional webbrowsers can become 4D document-ready by:
|
||||
|
||||
|
@ -243,6 +244,7 @@ That way, if the link gets shared, the XR Fragments implementation at `https://m
|
|||
| `href` | string | `"href": "b.gltf"` | XR teleport | custom property in 3D fileformats |
|
||||
| `src` | string | `"src": "#cube"` | XR embed / teleport | custom property in 3D fileformats |
|
||||
| `tag` | string | `"tag": "cubes geo"` | tag object (for filter-use / XRWG highlighting) | custom property in 3D fileformats |
|
||||
| `#` | string | `"#": "#mypreset` | trigger default fragment on load | custom property in 3D fileformats |
|
||||
|
||||
> Supported popular compatible 3D fileformats: `.gltf`, `.obj`, `.fbx`, `.usdz`, `.json` (THREE.js), `.dae` and so on.
|
||||
|
||||
|
@ -274,7 +276,7 @@ These are automatic fragment-to-metadata mappings, which only trigger if the 3D
|
|||
| temporal W3C media fragment * | s=x | 1 | set playback speed of audio/video/3D anim |
|
||||
| temporal W3C media fragment * | [-]loop | loop | enable looped playback of audio/video/3D anim |
|
||||
| | | -loop | disable looped playback (does not affect playbackstate of media) |
|
||||
| vector2 | uv=uv,v,uspeed,vspeed | 0,0 | set uv offset instantly (default speed = `1,1`) |
|
||||
| vector2 | uv=u,v,uspeed,vspeed | 0,0 | set uv offset instantly (default speed = `1,1`) |
|
||||
| | | +0.5,+0.5 | scroll instantly by adding 0.5 to the current uv coordinates |
|
||||
| | | 0.2,1,0.1,0.1 | scroll (lerp) to uv coordinate `0,2,1` with `0.1` units per second |
|
||||
| | | 0,0,0,+0.1 | scroll v coordinates with `0.1` units per second (infinitely) |
|
||||
|
@ -284,13 +286,13 @@ These are automatic fragment-to-metadata mappings, which only trigger if the 3D
|
|||
|
||||
> \* = this is extending the [W3C media fragments](https://www.w3.org/TR/media-frags/#mf-advanced) with (missing) playback/viewport-control. Normally `#t=0,2` implies setting start/stop-values AND starting playback, whereas `#s=0&loop` allows pausing a video, speeding up/slowing down media, as well as enabling/disabling looping.
|
||||
|
||||
> The rationale for `uv` is that the `xywh` Media Fragment deals with rectangular media, which does not translate well to 3D models (which use triangular polygons, not rectangular) positioned by uv-coordinates.
|
||||
> The rationale for `uv` is that the `xywh` Media Fragment deals with rectangular media, which does not translate well to 3D models (which use triangular polygons, not rectangular) positioned by uv-coordinates. This also explains the absense of a `scale` or `rotate` primitive, which is challenged by this, as well as multiple origins (mesh- or texture).
|
||||
|
||||
Example URI's:
|
||||
|
||||
* `https://images.org/credits.jpg#uv=0,0,0,+0.1` (infinite vertical texturescrolling)
|
||||
* `https://video.org/organogram.mp4#t=0&loop&uv:0.1,0.1,0.3,0.3` (animated zoom towards region in looped video)
|
||||
* `https://shaders.org/plasma.glsl#t=0&u:col1=1,0,0&u:col2=0,1,0` (red-green shader plasma starts playing from time-offset 0)
|
||||
* `https://video.org/organogram.mp4#t=0&loop&uv=0.1,0.1,0.3,0.3` (animated zoom towards region in looped video)
|
||||
* `https://shaders.org/plasma.glsl#t=0&u:col2=0,1,0` (red-green shader plasma starts playing from time-offset 0)
|
||||
|
||||
```
|
||||
+──────────────────────────────────────────────────────────+
|
||||
|
@ -301,10 +303,10 @@ Example URI's:
|
|||
│ ├ play : #t=l:0,2 │ variable for [URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
|
||||
│ │ │
|
||||
│ ├── ◻ plane (with material) │
|
||||
│ │ └ #: #suv=l:0,0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
|
||||
│ │ └ #: #uv=0,0,0,+0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
|
||||
│ │ │
|
||||
│ ├── ◻ plane │
|
||||
│ │ └ src: foo.jpg#suv=l:0,0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
|
||||
│ │ └ src: foo.jpg#uv=0,0,0,+0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
|
||||
│ │ │
|
||||
│ ├── ◻ media │
|
||||
│ │ └ src: cat.mp4#t=l:2,10&uv=0.5,0.5 │ loop cat.mp4 (or mp3/wav/jpg) between 2 and 10 seconds (uv's shifted with 0.5,0.5)
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
|
||||
Jens & Leon Internet Engineering Task Force L.R. van Kammen
|
||||
Internet-Draft 16 February 2024
|
||||
Internet-Draft 23 February 2024
|
||||
Intended status: Informational
|
||||
|
||||
|
||||
|
@ -43,7 +43,7 @@ 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 19 August 2024.
|
||||
This Internet-Draft will expire on 26 August 2024.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
|
@ -53,7 +53,7 @@ Copyright Notice
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 1]
|
||||
van Kammen Expires 26 August 2024 [Page 1]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -109,7 +109,7 @@ Table of Contents
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 2]
|
||||
van Kammen Expires 26 August 2024 [Page 2]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -133,11 +133,13 @@ Internet-Draft XR Fragments February 2024
|
|||
1. addressibility and hypermediatic
|
||||
(https://github.com/coderofsalvation/hypermediatic) navigation of
|
||||
3D scenes/objects: URI Fragments (https://en.wikipedia.org/wiki/
|
||||
URI_fragment) + src/href spatial metadata
|
||||
URI_fragment) using src/href spatial metadata
|
||||
2. Interlinking text & spatial objects by collapsing space into a
|
||||
Word Graph (XRWG) to show visible links (#visible-links)
|
||||
3. unlocking spatial potential of the (originally 2D) hashtag (which
|
||||
jumps to a chapter) for navigating XR documents
|
||||
4. refraining from introducing scripting-engines for mundane tasks
|
||||
(and preventing its inevitable security-headaches)
|
||||
|
||||
| NOTE: The chapters in this document are ordered from highlevel to
|
||||
| lowlevel (technical) as much as possible
|
||||
|
@ -163,9 +165,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 3]
|
||||
van Kammen Expires 26 August 2024 [Page 3]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -221,7 +221,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 4]
|
||||
van Kammen Expires 26 August 2024 [Page 4]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -247,8 +247,9 @@ Internet-Draft XR Fragments February 2024
|
|||
│ │
|
||||
+───────────────────────────────────────────────────────────────────────────────────────────────+
|
||||
|
||||
| ?-linked and #-linked navigation allows a Hypermediatic
|
||||
| FeedbackLoop (HFL) between external and internal 4D navigation.
|
||||
| ?-linked and #-linked navigation are JUST one possible way to
|
||||
| implement XR Fragments, to allow a Hypermediatic FeedbackLoop
|
||||
| (HFL) between external and internal 4D navigation.
|
||||
|
||||
Traditional webbrowsers can become 4D document-ready by:
|
||||
|
||||
|
@ -276,8 +277,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 5]
|
||||
van Kammen Expires 26 August 2024 [Page 5]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -333,7 +333,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 6]
|
||||
van Kammen Expires 26 August 2024 [Page 6]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -389,7 +389,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 7]
|
||||
van Kammen Expires 26 August 2024 [Page 7]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -405,22 +405,28 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
4.1. List of metadata for 3D nodes
|
||||
|
||||
+======+========+==========+===================+===================+
|
||||
| key | type | example | function | existing |
|
||||
| | | (JSON) | | compatibility |
|
||||
+======+========+==========+===================+===================+
|
||||
| href | string | "href": | XR teleport | custom property |
|
||||
| | | "b.gltf" | | in 3D fileformats |
|
||||
+------+--------+----------+-------------------+-------------------+
|
||||
| src | string | "src": | XR embed / | custom property |
|
||||
| | | "#cube" | teleport | in 3D fileformats |
|
||||
+------+--------+----------+-------------------+-------------------+
|
||||
| tag | string | "tag": | tag object (for | custom property |
|
||||
| | | "cubes | filter-use / XRWG | in 3D fileformats |
|
||||
| | | geo" | highlighting) | |
|
||||
+------+--------+----------+-------------------+-------------------+
|
||||
+======+========+============+===================+================+
|
||||
| key | type | example | function | existing |
|
||||
| | | (JSON) | | compatibility |
|
||||
+======+========+============+===================+================+
|
||||
| href | string | "href": | XR teleport | custom |
|
||||
| | | "b.gltf" | | property in 3D |
|
||||
| | | | | fileformats |
|
||||
+------+--------+------------+-------------------+----------------+
|
||||
| src | string | "src": | XR embed / | custom |
|
||||
| | | "#cube" | teleport | property in 3D |
|
||||
| | | | | fileformats |
|
||||
+------+--------+------------+-------------------+----------------+
|
||||
| tag | string | "tag": | tag object (for | custom |
|
||||
| | | "cubes | filter-use / XRWG | property in 3D |
|
||||
| | | geo" | highlighting) | fileformats |
|
||||
+------+--------+------------+-------------------+----------------+
|
||||
| # | string | "#": | trigger default | custom |
|
||||
| | | "#mypreset | fragment on load | property in 3D |
|
||||
| | | | | fileformats |
|
||||
+------+--------+------------+-------------------+----------------+
|
||||
|
||||
Table 4
|
||||
Table 4
|
||||
|
||||
| Supported popular compatible 3D fileformats: .gltf, .obj, .fbx,
|
||||
| .usdz, .json (THREE.js), .dae and so on.
|
||||
|
@ -436,20 +442,20 @@ Internet-Draft XR Fragments February 2024
|
|||
|*PRESET* |#<preset> |string |#cubes |evaluates preset |
|
||||
| | | | |(#foo&bar) defined in |
|
||||
| | | | |3D Object metadata |
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 26 August 2024 [Page 8]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
||||
| | | | |(#cubes: #foo&bar e.g.)|
|
||||
| | | | |while URL-browserbar |
|
||||
| | | | |reflects #cubes. Only |
|
||||
| | | | |works when metadata-key|
|
||||
| | | | |starts with # |
|
||||
+----------------+--------------------------------------+-------------+---------------------+-----------------------+
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 8]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
||||
|*FOCUS* |#<tag_or_objectname> |string |#person |(and show) object(s) |
|
||||
| | | | |with tag: person or |
|
||||
| | | | |name person (XRWG |
|
||||
|
@ -492,20 +498,20 @@ Internet-Draft XR Fragments February 2024
|
|||
| | | | |cat.mp4#{foo} e.g., to |
|
||||
| | | | |play media using media |
|
||||
| | | | |fragment URI |
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 26 August 2024 [Page 9]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
||||
| | | | |(https://www.w3.org/TR/|
|
||||
| | | | |media-frags/#valid- |
|
||||
| | | | |uri)). NOTE: metadata-|
|
||||
| | | | |key should not start |
|
||||
| | | | |with # |
|
||||
+----------------+--------------------------------------+-------------+---------------------+-----------------------+
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 9]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
||||
|*ANIMATION* |#<tag_or_objectname>=<animationname> |string=string|#people=walk |assign a different |
|
||||
| | | |#people=noanim |animation to object(s) |
|
||||
+----------------+--------------------------------------+-------------+---------------------+-----------------------+
|
||||
|
@ -518,88 +524,83 @@ Internet-Draft XR Fragments February 2024
|
|||
| the 3D scene(file) *but also* media defined in src-metadata like
|
||||
| audio/video-files (mp3/mp4 e.g.)
|
||||
|
||||
+==========+=======================+===============+================+
|
||||
| type | syntax | example | info |
|
||||
+==========+=======================+===============+================+
|
||||
| vector2 | x,y | 2,3.0 | 2-dimensional |
|
||||
| | | | vector |
|
||||
+----------+-----------------------+---------------+----------------+
|
||||
| vector3 | x,y,z | 2,3.0,4 | 3-dimensional |
|
||||
| | | | vector |
|
||||
+----------+-----------------------+---------------+----------------+
|
||||
| temporal | t=x | 0 | play from 0 |
|
||||
| W3C | | | seconds to |
|
||||
| media | | | end (and |
|
||||
| fragment | | | stop) |
|
||||
+----------+-----------------------+---------------+----------------+
|
||||
| temporal | t=x,y | 0,2 | play from 0 |
|
||||
| W3C | | | seconds till |
|
||||
| media | | | 2 seconds |
|
||||
| fragment | | | (and stop) |
|
||||
+----------+-----------------------+---------------+----------------+
|
||||
| temporal | s=x | 1 | set playback |
|
||||
| W3C | | | speed of |
|
||||
| media | | | audio/ |
|
||||
| fragment | | | video/3D anim |
|
||||
| * | | | |
|
||||
+----------+-----------------------+---------------+----------------+
|
||||
| temporal | [-]loop | loop | enable looped |
|
||||
| W3C | | | playback of |
|
||||
| media | | | audio/ |
|
||||
| fragment | | | video/3D anim |
|
||||
| * | | | |
|
||||
+----------+-----------------------+---------------+----------------+
|
||||
| | | -loop | disable |
|
||||
| | | | looped |
|
||||
| | | | playback |
|
||||
| | | | (does not |
|
||||
| | | | affect |
|
||||
+==========+======================+===============+================+
|
||||
| type | syntax | example | info |
|
||||
+==========+======================+===============+================+
|
||||
| vector2 | x,y | 2,3.0 | 2-dimensional |
|
||||
| | | | vector |
|
||||
+----------+----------------------+---------------+----------------+
|
||||
| vector3 | x,y,z | 2,3.0,4 | 3-dimensional |
|
||||
| | | | vector |
|
||||
+----------+----------------------+---------------+----------------+
|
||||
| temporal | t=x | 0 | play from 0 |
|
||||
| W3C | | | seconds to end |
|
||||
| media | | | (and stop) |
|
||||
| fragment | | | |
|
||||
+----------+----------------------+---------------+----------------+
|
||||
| temporal | t=x,y | 0,2 | play from 0 |
|
||||
| W3C | | | seconds till 2 |
|
||||
| media | | | seconds (and |
|
||||
| fragment | | | stop) |
|
||||
+----------+----------------------+---------------+----------------+
|
||||
| temporal | s=x | 1 | set playback |
|
||||
| W3C | | | speed of |
|
||||
| media | | | audio/video/3D |
|
||||
| fragment | | | anim |
|
||||
| * | | | |
|
||||
+----------+----------------------+---------------+----------------+
|
||||
| temporal | [-]loop | loop | enable looped |
|
||||
| W3C | | | playback of |
|
||||
| media | | | audio/video/3D |
|
||||
| fragment | | | anim |
|
||||
| * | | | |
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 10]
|
||||
van Kammen Expires 26 August 2024 [Page 10]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
||||
| | | | playbackstate |
|
||||
| | | | of media) |
|
||||
+----------+-----------------------+---------------+----------------+
|
||||
| vector2 | uv=uv,v,uspeed,vspeed | 0,0 | set uv offset |
|
||||
| | | | instantly |
|
||||
| | | | (default |
|
||||
| | | | speed = 1,1) |
|
||||
+----------+-----------------------+---------------+----------------+
|
||||
| | | +0.5,+0.5 | scroll |
|
||||
| | | | instantly by |
|
||||
| | | | adding 0.5 to |
|
||||
| | | | the current |
|
||||
| | | | uv |
|
||||
| | | | coordinates |
|
||||
+----------+-----------------------+---------------+----------------+
|
||||
| | | 0.2,1,0.1,0.1 | scroll (lerp) |
|
||||
| | | | to uv |
|
||||
| | | | coordinate |
|
||||
| | | | 0,2,1 with |
|
||||
| | | | 0.1 units per |
|
||||
| | | | second |
|
||||
+----------+-----------------------+---------------+----------------+
|
||||
| | | 0,0,0,+0.1 | scroll v |
|
||||
| | | | coordinates |
|
||||
| | | | with 0.1 |
|
||||
| | | | units per |
|
||||
| | | | second |
|
||||
| | | | (infinitely) |
|
||||
+----------+-----------------------+---------------+----------------+
|
||||
| | | +0.5,+0.5 | scroll |
|
||||
| | | | instantly by |
|
||||
| | | | adding 0.5 to |
|
||||
| | | | the current |
|
||||
| | | | uv |
|
||||
| | | | coordinates |
|
||||
+----------+-----------------------+---------------+----------------+
|
||||
+----------+----------------------+---------------+----------------+
|
||||
| | | -loop | disable looped |
|
||||
| | | | playback (does |
|
||||
| | | | not affect |
|
||||
| | | | playbackstate |
|
||||
| | | | of media) |
|
||||
+----------+----------------------+---------------+----------------+
|
||||
| vector2 | uv=u,v,uspeed,vspeed | 0,0 | set uv offset |
|
||||
| | | | instantly |
|
||||
| | | | (default speed |
|
||||
| | | | = 1,1) |
|
||||
+----------+----------------------+---------------+----------------+
|
||||
| | | +0.5,+0.5 | scroll |
|
||||
| | | | instantly by |
|
||||
| | | | adding 0.5 to |
|
||||
| | | | the current uv |
|
||||
| | | | coordinates |
|
||||
+----------+----------------------+---------------+----------------+
|
||||
| | | 0.2,1,0.1,0.1 | scroll (lerp) |
|
||||
| | | | to uv |
|
||||
| | | | coordinate |
|
||||
| | | | 0,2,1 with 0.1 |
|
||||
| | | | units per |
|
||||
| | | | second |
|
||||
+----------+----------------------+---------------+----------------+
|
||||
| | | 0,0,0,+0.1 | scroll v |
|
||||
| | | | coordinates |
|
||||
| | | | with 0.1 units |
|
||||
| | | | per second |
|
||||
| | | | (infinitely) |
|
||||
+----------+----------------------+---------------+----------------+
|
||||
| | | +0.5,+0.5 | scroll |
|
||||
| | | | instantly by |
|
||||
| | | | adding 0.5 to |
|
||||
| | | | the current uv |
|
||||
| | | | coordinates |
|
||||
+----------+----------------------+---------------+----------------+
|
||||
|
||||
Table 6
|
||||
Table 6
|
||||
|
||||
| media parameter (shader uniform) |
|
||||
u:<uniform>=<string|float|vec2|vec3|vec4> | u:color=1,0,0 | set
|
||||
|
@ -612,8 +613,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 11]
|
||||
van Kammen Expires 26 August 2024 [Page 11]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -628,16 +628,18 @@ Internet-Draft XR Fragments February 2024
|
|||
| The rationale for uv is that the xywh Media Fragment deals with
|
||||
| rectangular media, which does not translate well to 3D models
|
||||
| (which use triangular polygons, not rectangular) positioned by uv-
|
||||
| coordinates.
|
||||
| coordinates. This also explains the absense of a scale or rotate
|
||||
| primitive, which is challenged by this, as well as multiple
|
||||
| origins (mesh- or texture).
|
||||
|
||||
Example URI's:
|
||||
|
||||
* https://images.org/credits.jpg#uv=0,0,0,+0.1 (infinite vertical
|
||||
texturescrolling)
|
||||
* https://video.org/organogram.mp4#t=0&loop&uv:0.1,0.1,0.3,0.3
|
||||
* https://video.org/organogram.mp4#t=0&loop&uv=0.1,0.1,0.3,0.3
|
||||
(animated zoom towards region in looped video)
|
||||
* https://shaders.org/plasma.glsl#t=0&u:col1=1,0,0&u:col2=0,1,0
|
||||
(red-green shader plasma starts playing from time-offset 0)
|
||||
* https://shaders.org/plasma.glsl#t=0&u:col2=0,1,0 (red-green shader
|
||||
plasma starts playing from time-offset 0)
|
||||
|
||||
+──────────────────────────────────────────────────────────+
|
||||
│ │
|
||||
|
@ -647,10 +649,10 @@ Internet-Draft XR Fragments February 2024
|
|||
│ ├ play : #t=l:0,2 │ variable for [URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
|
||||
│ │ │
|
||||
│ ├── ◻ plane (with material) │
|
||||
│ │ └ #: #suv=l:0,0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
|
||||
│ │ └ #: #uv=0,0,0,+0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
|
||||
│ │ │
|
||||
│ ├── ◻ plane │
|
||||
│ │ └ src: foo.jpg#suv=l:0,0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
|
||||
│ │ └ src: foo.jpg#uv=0,0,0,+0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
|
||||
│ │ │
|
||||
│ ├── ◻ media │
|
||||
│ │ └ src: cat.mp4#t=l:2,10&uv=0.5,0.5 │ loop cat.mp4 (or mp3/wav/jpg) between 2 and 10 seconds (uv's shifted with 0.5,0.5)
|
||||
|
@ -667,9 +669,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 12]
|
||||
van Kammen Expires 26 August 2024 [Page 12]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -725,7 +725,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 13]
|
||||
van Kammen Expires 26 August 2024 [Page 13]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -781,7 +781,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 14]
|
||||
van Kammen Expires 26 August 2024 [Page 14]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -837,7 +837,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 15]
|
||||
van Kammen Expires 26 August 2024 [Page 15]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -893,7 +893,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 16]
|
||||
van Kammen Expires 26 August 2024 [Page 16]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -949,7 +949,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 17]
|
||||
van Kammen Expires 26 August 2024 [Page 17]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1005,7 +1005,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 18]
|
||||
van Kammen Expires 26 August 2024 [Page 18]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1061,7 +1061,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 19]
|
||||
van Kammen Expires 26 August 2024 [Page 19]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1117,7 +1117,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 20]
|
||||
van Kammen Expires 26 August 2024 [Page 20]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1173,7 +1173,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 21]
|
||||
van Kammen Expires 26 August 2024 [Page 21]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1229,7 +1229,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 22]
|
||||
van Kammen Expires 26 August 2024 [Page 22]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1285,7 +1285,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 23]
|
||||
van Kammen Expires 26 August 2024 [Page 23]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1341,7 +1341,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 24]
|
||||
van Kammen Expires 26 August 2024 [Page 24]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1397,7 +1397,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 25]
|
||||
van Kammen Expires 26 August 2024 [Page 25]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1453,7 +1453,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 26]
|
||||
van Kammen Expires 26 August 2024 [Page 26]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1509,7 +1509,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 27]
|
||||
van Kammen Expires 26 August 2024 [Page 27]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1565,7 +1565,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 28]
|
||||
van Kammen Expires 26 August 2024 [Page 28]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1621,7 +1621,7 @@ xrtext = {
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 29]
|
||||
van Kammen Expires 26 August 2024 [Page 29]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1677,7 +1677,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 30]
|
||||
van Kammen Expires 26 August 2024 [Page 30]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1733,7 +1733,7 @@ console.log( xrtext.encode(text,tags) ) // multiplex text & bibtex back to
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 31]
|
||||
van Kammen Expires 26 August 2024 [Page 31]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1789,7 +1789,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 32]
|
||||
van Kammen Expires 26 August 2024 [Page 32]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1845,7 +1845,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 33]
|
||||
van Kammen Expires 26 August 2024 [Page 33]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1901,7 +1901,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 34]
|
||||
van Kammen Expires 26 August 2024 [Page 34]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -1957,7 +1957,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 35]
|
||||
van Kammen Expires 26 August 2024 [Page 35]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -2013,7 +2013,7 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 36]
|
||||
van Kammen Expires 26 August 2024 [Page 36]
|
||||
|
||||
Internet-Draft XR Fragments February 2024
|
||||
|
||||
|
@ -2069,4 +2069,4 @@ Internet-Draft XR Fragments February 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 August 2024 [Page 37]
|
||||
van Kammen Expires 26 August 2024 [Page 37]
|
||||
|
|
|
@ -34,9 +34,10 @@ XR Fragments exploits the fact that all 3D models already contain such metadata:
|
|||
<t>It solves:</t>
|
||||
|
||||
<ol spacing="compact">
|
||||
<li>addressibility and <eref target="https://github.com/coderofsalvation/hypermediatic">hypermediatic</eref> navigation of 3D scenes/objects: <eref target="https://en.wikipedia.org/wiki/URI_fragment">URI Fragments</eref> + src/href spatial metadata</li>
|
||||
<li>addressibility and <eref target="https://github.com/coderofsalvation/hypermediatic">hypermediatic</eref> navigation of 3D scenes/objects: <eref target="https://en.wikipedia.org/wiki/URI_fragment">URI Fragments</eref> using src/href spatial metadata</li>
|
||||
<li>Interlinking text & spatial objects by collapsing space into a Word Graph (XRWG) to show <eref target="#visible-links">visible links</eref></li>
|
||||
<li>unlocking spatial potential of the (originally 2D) hashtag (which jumps to a chapter) for navigating XR documents</li>
|
||||
<li>refraining from introducing scripting-engines for mundane tasks (and preventing its inevitable security-headaches)</li>
|
||||
</ol>
|
||||
<blockquote><t>NOTE: The chapters in this document are ordered from highlevel to lowlevel (technical) as much as possible</t>
|
||||
</blockquote></section>
|
||||
|
@ -96,7 +97,7 @@ But approaches things from a higherlevel feedbackloop/hypermedia browser-perspec
|
|||
+───────────────────────────────────────────────────────────────────────────────────────────────+
|
||||
|
||||
</artwork>
|
||||
<blockquote><t>?-linked and #-linked navigation allows a Hypermediatic FeedbackLoop (HFL) between external and internal 4D navigation.</t>
|
||||
<blockquote><t>?-linked and #-linked navigation are JUST one possible way to implement XR Fragments, to allow a Hypermediatic FeedbackLoop (HFL) between external and internal 4D navigation.</t>
|
||||
</blockquote><t>Traditional webbrowsers can become 4D document-ready by:</t>
|
||||
|
||||
<ul spacing="compact">
|
||||
|
@ -282,6 +283,14 @@ That way, if the link gets shared, the XR Fragments implementation at <tt>https:
|
|||
<td>tag object (for filter-use / XRWG highlighting)</td>
|
||||
<td>custom property in 3D fileformats</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><tt>#</tt></td>
|
||||
<td>string</td>
|
||||
<td><tt>"#": "#mypreset</tt></td>
|
||||
<td>trigger default fragment on load</td>
|
||||
<td>custom property in 3D fileformats</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table><blockquote><t>Supported popular compatible 3D fileformats: <tt>.gltf</tt>, <tt>.obj</tt>, <tt>.fbx</tt>, <tt>.usdz</tt>, <tt>.json</tt> (THREE.js), <tt>.dae</tt> and so on.</t>
|
||||
</blockquote></section>
|
||||
|
@ -430,7 +439,7 @@ That way, if the link gets shared, the XR Fragments implementation at <tt>https:
|
|||
|
||||
<tr>
|
||||
<td>vector2</td>
|
||||
<td>uv=uv,v,uspeed,vspeed</td>
|
||||
<td>uv=u,v,uspeed,vspeed</td>
|
||||
<td>0,0</td>
|
||||
<td>set uv offset instantly (default speed = <tt>1,1</tt>)</td>
|
||||
</tr>
|
||||
|
@ -465,13 +474,13 @@ That way, if the link gets shared, the XR Fragments implementation at <tt>https:
|
|||
</tbody>
|
||||
</table><t>| media parameter (shader uniform) | u:<uniform>=<string|float|vec2|vec3|vec4> | u:color=1,0,0 | set shader uniform value |</t>
|
||||
<blockquote><t>* = this is extending the <eref target="https://www.w3.org/TR/media-frags/#mf-advanced">W3C media fragments</eref> with (missing) playback/viewport-control. Normally <tt>#t=0,2</tt> implies setting start/stop-values AND starting playback, whereas <tt>#s=0&loop</tt> allows pausing a video, speeding up/slowing down media, as well as enabling/disabling looping.</t>
|
||||
<t>The rationale for <tt>uv</tt> is that the <tt>xywh</tt> Media Fragment deals with rectangular media, which does not translate well to 3D models (which use triangular polygons, not rectangular) positioned by uv-coordinates.</t>
|
||||
<t>The rationale for <tt>uv</tt> is that the <tt>xywh</tt> Media Fragment deals with rectangular media, which does not translate well to 3D models (which use triangular polygons, not rectangular) positioned by uv-coordinates. This also explains the absense of a <tt>scale</tt> or <tt>rotate</tt> primitive, which is challenged by this, as well as multiple origins (mesh- or texture).</t>
|
||||
</blockquote><t>Example URI's:</t>
|
||||
|
||||
<ul spacing="compact">
|
||||
<li><tt>https://images.org/credits.jpg#uv=0,0,0,+0.1</tt> (infinite vertical texturescrolling)</li>
|
||||
<li><tt>https://video.org/organogram.mp4#t=0&loop&uv:0.1,0.1,0.3,0.3</tt> (animated zoom towards region in looped video)</li>
|
||||
<li><tt>https://shaders.org/plasma.glsl#t=0&u:col1=1,0,0&u:col2=0,1,0</tt> (red-green shader plasma starts playing from time-offset 0)</li>
|
||||
<li><tt>https://video.org/organogram.mp4#t=0&loop&uv=0.1,0.1,0.3,0.3</tt> (animated zoom towards region in looped video)</li>
|
||||
<li><tt>https://shaders.org/plasma.glsl#t=0&u:col2=0,1,0</tt> (red-green shader plasma starts playing from time-offset 0)</li>
|
||||
</ul>
|
||||
|
||||
<artwork> +──────────────────────────────────────────────────────────+
|
||||
|
@ -482,10 +491,10 @@ That way, if the link gets shared, the XR Fragments implementation at <tt>https:
|
|||
│ ├ play : #t=l:0,2 │ variable for [URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
|
||||
│ │ │
|
||||
│ ├── ◻ plane (with material) │
|
||||
│ │ └ #: #suv=l:0,0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
|
||||
│ │ └ #: #uv=0,0,0,+0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
|
||||
│ │ │
|
||||
│ ├── ◻ plane │
|
||||
│ │ └ src: foo.jpg#suv=l:0,0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
|
||||
│ │ └ src: foo.jpg#uv=0,0,0,+0.1 │ infinite texturescroll `v` of uv·coordinates with 0.1/fps
|
||||
│ │ │
|
||||
│ ├── ◻ media │
|
||||
│ │ └ src: cat.mp4#t=l:2,10&uv=0.5,0.5 │ loop cat.mp4 (or mp3/wav/jpg) between 2 and 10 seconds (uv's shifted with 0.5,0.5)
|
||||
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue