main: update documentation

This commit is contained in:
Leon van Kammen 2024-10-07 08:57:20 +00:00
parent 60ed159b0c
commit 2ce60fc493
5 changed files with 255 additions and 247 deletions

View File

@ -208,8 +208,8 @@ Instead of forcing authors to combine 3D/2D objects programmatically (publishing
<tr> <tr>
<td><code>#pos</code></td> <td><code>#pos</code></td>
<td>vector3</td> <td>vector3</td>
<td><code>#pos=0.5,0,0</code></td> <td><code>#pos=0.5,0,0</code> <code>#pos=room</code> <code>pos=cam2</code></td>
<td>positions camera (or XR floor) to xyz-coord 0.5,0,0,</td> <td>positions camera (or XR floor) to xyz-coord/object/camera</td>
</tr> </tr>
<tr> <tr>
@ -225,13 +225,6 @@ Instead of forcing authors to combine 3D/2D objects programmatically (publishing
<td><code>#t=0,2&amp;loop</code></td> <td><code>#t=0,2&amp;loop</code></td>
<td>play (and loop) 3D animation from 0 seconds till 2 seconds</td> <td>play (and loop) 3D animation from 0 seconds till 2 seconds</td>
</tr> </tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>but can also crop, animate &amp; configure uv-coordinates/shader uniforms</td>
</tr>
</tbody> </tbody>
</table> </table>
@ -512,9 +505,9 @@ For example, to render a portal with a preview-version of the scene, create an 3
<p>It also allows <strong>sourceportation</strong>, which basically means the enduser can teleport to the original XR Document of an <code>src</code> embedded object, and see a visible connection to the particular embedded object. Basically an embedded link becoming an outbound link by activating it.</p> <p>It also allows <strong>sourceportation</strong>, which basically means the enduser can teleport to the original XR Document of an <code>src</code> embedded object, and see a visible connection to the particular embedded object. Basically an embedded link becoming an outbound link by activating it.</p>
</blockquote> </blockquote>
<h2 id="fragment-to-metadata-mapping">Fragment-to-metadata mapping</h2> <h2 id="level2-implicit-uri-fragments">Level2: Implicit URI Fragments</h2>
<p>These are automatic fragment-to-metadata mappings, which only trigger if the 3D scene metadata matches a specific identifier:</p> <p>These fragments are derived from objectnames (or their extras) within a 3D scene, and trigger certain actions when evaluated by the browser:</p>
<table> <table>
<thead> <thead>
@ -533,7 +526,7 @@ For example, to render a portal with a preview-version of the scene, create an 3
<td><code>#&lt;preset&gt;</code></td> <td><code>#&lt;preset&gt;</code></td>
<td>string</td> <td>string</td>
<td><code>#cubes</code></td> <td><code>#cubes</code></td>
<td>evaluates preset (<code>#foo&amp;bar</code>) defined in 3D Object metadata (<code>#cubes: #foo&amp;bar</code> e.g.) while URL-browserbar reflects <code>#cubes</code>. Only works when metadata-key starts with <code>#</code></td> <td>evaluates preset (<code>#foo&amp;bar</code>) when a scene contains extra (<code>#cubes: #foo&amp;bar</code> e.g.) while URL-browserbar reflects <code>#cubes</code>. Only works when metadata-key starts with <code>#</code></td>
</tr> </tr>
<tr> <tr>
@ -552,14 +545,6 @@ For example, to render a portal with a preview-version of the scene, create an 3
<td>will reset (<code>!</code>), show/focus or hide (<code>-</code>) focus object(s) with <code>tag: person</code> or name <code>person</code> by looking up XRWG (<code>*</code>=including children)</td> <td>will reset (<code>!</code>), show/focus or hide (<code>-</code>) focus object(s) with <code>tag: person</code> or name <code>person</code> by looking up XRWG (<code>*</code>=including children)</td>
</tr> </tr>
<tr>
<td><strong>CAMERASWITCH</strong></td>
<td><code>#&lt;cameraname&gt;</code></td>
<td>string</td>
<td><code>#cam01</code></td>
<td>sets camera with name <code>cam01</code> as active camera</td>
</tr>
<tr> <tr>
<td><strong>MATERIALUPDATE</strong></td> <td><strong>MATERIALUPDATE</strong></td>
<td><code>#&lt;tag_or_objectname&gt;[*]=&lt;materialname&gt;</code></td> <td><code>#&lt;tag_or_objectname&gt;[*]=&lt;materialname&gt;</code></td>

View File

@ -201,10 +201,9 @@ XR Fragments utilizes URLs:
| fragment | type | example | info | | fragment | type | example | info |
|-------------------|------------|--------------------|----------------------------------------------------------------------| |-------------------|------------|--------------------|----------------------------------------------------------------------|
| `#pos` | vector3 | `#pos=0.5,0,0` | positions camera (or XR floor) to xyz-coord 0.5,0,0, | | `#pos` | vector3 | `#pos=0.5,0,0` `#pos=room` `pos=cam2` | positions camera (or XR floor) to xyz-coord/object/camera |
| `#rot` | vector3 | `#rot=0,90,0` | rotates camera to xyz-coord 0.5,0,0 | | `#rot` | vector3 | `#rot=0,90,0` | rotates camera to xyz-coord 0.5,0,0 |
| [Media Fragments](https://www.w3.org/TR/media-frags/) | [media fragment](#media%20fragments%20and%20datatypes) | `#t=0,2&loop` | play (and loop) 3D animation from 0 seconds till 2 seconds| | [Media Fragments](https://www.w3.org/TR/media-frags/) | [media fragment](#media%20fragments%20and%20datatypes) | `#t=0,2&loop` | play (and loop) 3D animation from 0 seconds till 2 seconds|
| | | | but can also crop, animate & configure uv-coordinates/shader uniforms |
# List of **explicit* metadata # List of **explicit* metadata
@ -352,16 +351,15 @@ For example, to render a portal with a preview-version of the scene, create an 3
> It also allows **sourceportation**, which basically means the enduser can teleport to the original XR Document of an `src` embedded object, and see a visible connection to the particular embedded object. Basically an embedded link becoming an outbound link by activating it. > It also allows **sourceportation**, which basically means the enduser can teleport to the original XR Document of an `src` embedded object, and see a visible connection to the particular embedded object. Basically an embedded link becoming an outbound link by activating it.
## Fragment-to-metadata mapping ## Level2: Implicit URI Fragments
These are automatic fragment-to-metadata mappings, which only trigger if the 3D scene metadata matches a specific identifier: These fragments are derived from objectnames (or their extras) within a 3D scene, and trigger certain actions when evaluated by the browser:
| |fragment | type | example | info | | |fragment | type | example | info |
|------|------------------|----------|-------------------|-------------------------------------------------------------------------------| |------|------------------|----------|-------------------|-------------------------------------------------------------------------------|
| **PRESET** | `#<preset>` | string | `#cubes` | evaluates preset (`#foo&bar`) defined in 3D Object metadata (`#cubes: #foo&bar` e.g.) while URL-browserbar reflects `#cubes`. Only works when metadata-key starts with `#` | | **PRESET** | `#<preset>` | string | `#cubes` | evaluates preset (`#foo&bar`) when a scene contains extra (`#cubes: #foo&bar` e.g.) while URL-browserbar reflects `#cubes`. Only works when metadata-key starts with `#` |
| **FOCUS** | `#<tag_or_objectname>` | string | `#person` | (and show) object(s) with `tag: person` or name `person` (XRWG lookup) | | **FOCUS** | `#<tag_or_objectname>` | string | `#person` | (and show) object(s) with `tag: person` or name `person` (XRWG lookup) |
| **FILTERS** | `#[!][-]<tag_or_objectname>[*]` | string | `#person` (`#-person`) | will reset (`!`), show/focus or hide (`-`) focus object(s) with `tag: person` or name `person` by looking up XRWG (`*`=including children) | | **FILTERS** | `#[!][-]<tag_or_objectname>[*]` | string | `#person` (`#-person`) | will reset (`!`), show/focus or hide (`-`) focus object(s) with `tag: person` or name `person` by looking up XRWG (`*`=including children) |
| **CAMERASWITCH** | `#<cameraname>` | string | `#cam01` | sets camera with name `cam01` as active camera |
| **MATERIALUPDATE** | `#<tag_or_objectname>[*]=<materialname>` | string=string | `#car=metallic`| sets material of car to material with name `metallic` (`*`=including children)| | **MATERIALUPDATE** | `#<tag_or_objectname>[*]=<materialname>` | string=string | `#car=metallic`| sets material of car to material with name `metallic` (`*`=including children)|
| | | | `#soldout*=halfopacity`| set material of objects tagged with `product` to material with name `metallic` | | | | | `#soldout*=halfopacity`| set material of objects tagged with `product` to material with name `metallic` |
| **VARIABLE UPDATE** | `#<variable>=<metadata-key>` | string=string | `#foo=bar` | sets [URI Template](https://www.rfc-editor.org/rfc/rfc6570) variable `foo` to the value `#t=0` from **existing** object metadata (`bar`:`#t=0` e.g.), This allows for reactive [URI Template](https://www.rfc-editor.org/rfc/rfc6570) defined in object metadata elsewhere (`src`:`://m.com/cat.mp4#{foo}` e.g., to play media using [media fragment URI](https://www.w3.org/TR/media-frags/#valid-uri)). NOTE: metadata-key should not start with `#` | | **VARIABLE UPDATE** | `#<variable>=<metadata-key>` | string=string | `#foo=bar` | sets [URI Template](https://www.rfc-editor.org/rfc/rfc6570) variable `foo` to the value `#t=0` from **existing** object metadata (`bar`:`#t=0` e.g.), This allows for reactive [URI Template](https://www.rfc-editor.org/rfc/rfc6570) defined in object metadata elsewhere (`src`:`://m.com/cat.mp4#{foo}` e.g., to play media using [media fragment URI](https://www.w3.org/TR/media-frags/#valid-uri)). NOTE: metadata-key should not start with `#` |
@ -430,20 +428,24 @@ Example URI's:
| fragment | type | functionality | | fragment | type | functionality |
|----------|--------|------------------------------| |----------|--------|------------------------------|
| <b>#pos</b>=0,0,0 | vector3 or string| (re)position camera based on coordinates directly, or indirectly using objectname (its worldposition) | | <b>#pos</b>=0,0,0 | vector3 |position camera to 0,0,0 (+userheight in VR) |
| <b>#pos</b>=room | string | position camera to position of objectname `room` (+userheight in VR) |
| <b>#pos</b>=cam02 | string | set camera with name `cam02` as active cam (follow animation e.g.) |
| <b>#rot</b>=0,90,0 | vector3 | rotate camera | | <b>#rot</b>=0,90,0 | vector3 | rotate camera |
[» example implementation](https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js)<br> [» example implementation](https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/three/xrf/pos.js)<br>
[» discussion](https://github.com/coderofsalvation/xrfragment/issues/5)<br> [» discussion](https://github.com/coderofsalvation/xrfragment/issues/5)<br>
1. the Y-coordinate of `pos` identifies the floorposition. This means that desktop-projections usually need to add 1.5m (average person height) on top (which is done automatically by VR/AR headsets). Here's the basic **level1** flow (with optional level2 features):
1. the Y-coordinate of `pos` identifies the floorposition. This means that desktop-projections usually need to add 1.5m (average person height) on top (which is done automatically by VR/AR headsets), except in case of camera-switching.
2. set the position of the camera accordingly to the vector3 values of `#pos` 2. set the position of the camera accordingly to the vector3 values of `#pos`
3. `rot` sets the rotation of the camera (only for non-VR/AR headsets) 3. `rot` sets the rotation of the camera (only for non-VR/AR headsets, however a camera-value overrules this)
4. mediafragment `t` in the top-URL sets the playbackspeed and animation-range of the global scene animation 4. **level2**: mediafragment `t` in the top-URL sets the playbackspeed and animation-range of the global scene animation
5. before scene load: the scene is cleared 5. before scene load: the scene is cleared
6. after scene load: in case the scene (rootnode) contains an `#` default view with a fragment value: execute non-positional fragments via the hashbus (no top-level URL change) 6. **level2**: after scene load: in case the scene (rootnode) contains an `#` default view with a fragment value: execute non-positional fragments via the hashbus (no top-level URL change)
7. after scene load: in case the scene (rootnode) contains an `#` default view with a fragment value: execute positional fragment via the hashbus + update top-level URL 7. **level2**: after scene load: in case the scene (rootnode) contains an `#` default view with a fragment value: execute positional fragment via the hashbus + update top-level URL
8. in case of no default `#` view on the scene (rootnode), default player(rig) position `0,0,0` is assumed. 8. **level2**: in case of no default `#` view on the scene (rootnode), default player(rig) position `0,0,0` is assumed.
9. in case a `href` does not mention any `pos`-coordinate, the current position will be assumed 9. in case a `href` does not mention any `pos`-coordinate, the current position will be assumed
Here's an ascii representation of a 3D scene-graph which contains 3D objects `◻` and their metadata: Here's an ascii representation of a 3D scene-graph which contains 3D objects `◻` and their metadata:

View File

@ -3,7 +3,7 @@
Jens & Leon Internet Engineering Task Force L.R. van Kammen Jens & Leon Internet Engineering Task Force L.R. van Kammen
Internet-Draft 27 September 2024 Internet-Draft 7 October 2024
Intended status: Informational Intended status: Informational
@ -53,9 +53,9 @@ Status of This Memo
van Kammen Expires 31 March 2025 [Page 1] van Kammen Expires 10 April 2025 [Page 1]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
@ -63,7 +63,7 @@ Internet-Draft XR Fragments September 2024
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 31 March 2025. This Internet-Draft will expire on 10 April 2025.
Copyright Notice Copyright Notice
@ -91,7 +91,7 @@ Table of Contents
7. Conventions and Definitions . . . . . . . . . . . . . . . . . 10 7. Conventions and Definitions . . . . . . . . . . . . . . . . . 10
7.1. XR Fragment URL Grammar . . . . . . . . . . . . . . . . . 10 7.1. XR Fragment URL Grammar . . . . . . . . . . . . . . . . . 10
8. Spatial Referencing 3D . . . . . . . . . . . . . . . . . . . 10 8. Spatial Referencing 3D . . . . . . . . . . . . . . . . . . . 10
8.1. Fragment-to-metadata mapping . . . . . . . . . . . . . . 11 8.1. Level2: Implicit URI Fragments . . . . . . . . . . . . . 11
8.2. media fragments and datatypes . . . . . . . . . . . . . . 13 8.2. media fragments and datatypes . . . . . . . . . . . . . . 13
9. Navigating 3D . . . . . . . . . . . . . . . . . . . . . . . . 16 9. Navigating 3D . . . . . . . . . . . . . . . . . . . . . . . . 16
10. Top-level URL processing . . . . . . . . . . . . . . . . . . 17 10. Top-level URL processing . . . . . . . . . . . . . . . . . . 17
@ -109,9 +109,9 @@ Table of Contents
van Kammen Expires 31 March 2025 [Page 2] van Kammen Expires 10 April 2025 [Page 2]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
17.2. Filter Parser . . . . . . . . . . . . . . . . . . . . . 25 17.2. Filter Parser . . . . . . . . . . . . . . . . . . . . . 25
@ -165,9 +165,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 3] van Kammen Expires 10 April 2025 [Page 3]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
5. the gap between text an 3d objects: object-names directly map to 5. the gap between text an 3d objects: object-names directly map to
@ -221,9 +221,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 4] van Kammen Expires 10 April 2025 [Page 4]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
+───────────────────────────────────────────────────────────────────────────────────────────────+ +───────────────────────────────────────────────────────────────────────────────────────────────+
@ -277,43 +277,35 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 5] van Kammen Expires 10 April 2025 [Page 5]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
4. List of URI Fragments 4. List of URI Fragments
+=======================+======================================+============+============+ +=======================+======================================+============+=============+
|fragment |type |example |info | |fragment |type |example |info |
+=======================+======================================+============+============+ +=======================+======================================+============+=============+
|#pos |vector3 |#pos=0.5,0,0|positions | |#pos |vector3 |#pos=0.5,0,0|positions |
| | | |camera (or | | | |#pos=room |camera (or XR|
| | | |XR floor) to| | | |pos=cam2 |floor) to |
| | | |xyz-coord | | | | |xyz- |
| | | |0.5,0,0, | | | | |coord/object/|
+-----------------------+--------------------------------------+------------+------------+ | | | |camera |
|#rot |vector3 |#rot=0,90,0 |rotates | +-----------------------+--------------------------------------+------------+-------------+
| | | |camera to | |#rot |vector3 |#rot=0,90,0 |rotates |
| | | |xyz-coord | | | | |camera to |
| | | |0.5,0,0 | | | | |xyz-coord |
+-----------------------+--------------------------------------+------------+------------+ | | | |0.5,0,0 |
|Media Fragments |media fragment |#t=0,2&loop |play (and | +-----------------------+--------------------------------------+------------+-------------+
|(https://www.w3.org/TR/|(#media%20fragments%20and%20datatypes)| |loop) 3D | |Media Fragments |media fragment |#t=0,2&loop |play (and |
|media-frags/) | | |animation | |(https://www.w3.org/TR/|(#media%20fragments%20and%20datatypes)| |loop) 3D |
| | | |from 0 | |media-frags/) | | |animation |
| | | |seconds till| | | | |from 0 |
| | | |2 seconds | | | | |seconds till |
+-----------------------+--------------------------------------+------------+------------+ | | | |2 seconds |
| | | |but can also| +-----------------------+--------------------------------------+------------+-------------+
| | | |crop, |
| | | |animate & |
| | | |configure |
| | | |uv- |
| | | |coordinates/|
| | | |shader |
| | | |uniforms |
+-----------------------+--------------------------------------+------------+------------+
Table 1 Table 1
@ -333,9 +325,17 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 6]
van Kammen Expires 10 April 2025 [Page 6]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
+======+========+============+===================+================+ +======+========+============+===================+================+
@ -389,9 +389,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 7] van Kammen Expires 10 April 2025 [Page 7]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
{ {
@ -445,9 +445,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 8] van Kammen Expires 10 April 2025 [Page 8]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
* collapsing the 3D scene to an wordgraph (for essential navigation * collapsing the 3D scene to an wordgraph (for essential navigation
@ -501,9 +501,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 9] van Kammen Expires 10 April 2025 [Page 9]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
| An important aspect of HFL is that URI Fragments can be triggered | An important aspect of HFL is that URI Fragments can be triggered
@ -557,9 +557,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 10] van Kammen Expires 10 April 2025 [Page 10]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
my.io/scene.fbx my.io/scene.fbx
@ -594,30 +594,31 @@ Internet-Draft XR Fragments September 2024
| embedded object. Basically an embedded link becoming an outbound | embedded object. Basically an embedded link becoming an outbound
| link by activating it. | link by activating it.
8.1. Fragment-to-metadata mapping 8.1. Level2: Implicit URI Fragments
These are automatic fragment-to-metadata mappings, which only trigger These fragments are derived from objectnames (or their extras) within
if the 3D scene metadata matches a specific identifier: a 3D scene, and trigger certain actions when evaluated by the
browser:
+================+======================================+=============+=====================+=======================+ +================+======================================+=============+=====================+=======================+
| |fragment |type |example |info | | |fragment |type |example |info |
+================+======================================+=============+=====================+=======================+ +================+======================================+=============+=====================+=======================+
|*PRESET* |#<preset> |string |#cubes |evaluates preset | |*PRESET* |#<preset> |string |#cubes |evaluates preset |
| | | | |(#foo&bar) defined in | | | | | |(#foo&bar) when a scene|
| | | | |3D Object metadata | | | | | |contains extra (#cubes:|
| | | | |(#cubes: #foo&bar e.g.)| | | | | |#foo&bar e.g.) while |
| | | | |while URL-browserbar | | | | | |URL-browserbar reflects|
| | | | |reflects #cubes. Only | | | | | |#cubes. Only works |
| | | | |works when metadata-key| | | | | |when metadata-key |
| | | | |starts with # |
van Kammen Expires 31 March 2025 [Page 11] van Kammen Expires 10 April 2025 [Page 11]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
| | | | |starts with # |
+----------------+--------------------------------------+-------------+---------------------+-----------------------+ +----------------+--------------------------------------+-------------+---------------------+-----------------------+
|*FOCUS* |#<tag_or_objectname> |string |#person |(and show) object(s) | |*FOCUS* |#<tag_or_objectname> |string |#person |(and show) object(s) |
| | | | |with tag: person or | | | | | |with tag: person or |
@ -631,9 +632,6 @@ Internet-Draft XR Fragments September 2024
| | | | |by looking up XRWG | | | | | |by looking up XRWG |
| | | | |(*=including children) | | | | | |(*=including children) |
+----------------+--------------------------------------+-------------+---------------------+-----------------------+ +----------------+--------------------------------------+-------------+---------------------+-----------------------+
|*CAMERASWITCH* |#<cameraname> |string |#cam01 |sets camera with name |
| | | | |cam01 as active camera |
+----------------+--------------------------------------+-------------+---------------------+-----------------------+
|*MATERIALUPDATE*|#<tag_or_objectname>[*]=<materialname>|string=string|#car=metallic |sets material of car to| |*MATERIALUPDATE*|#<tag_or_objectname>[*]=<materialname>|string=string|#car=metallic |sets material of car to|
| | | | |material with name | | | | | |material with name |
| | | | |metallic (*=including | | | | | |metallic (*=including |
@ -666,16 +664,16 @@ Internet-Draft XR Fragments September 2024
| | | | |uri)). NOTE: metadata-| | | | | |uri)). NOTE: metadata-|
| | | | |key should not start | | | | | |key should not start |
| | | | |with # | | | | | |with # |
van Kammen Expires 31 March 2025 [Page 12]
Internet-Draft XR Fragments September 2024
+----------------+--------------------------------------+-------------+---------------------+-----------------------+ +----------------+--------------------------------------+-------------+---------------------+-----------------------+
|*ANIMATION* |#<tag_or_objectname>=<animationname> |string=string|#people=walk |assign a different | |*ANIMATION* |#<tag_or_objectname>=<animationname> |string=string|#people=walk |assign a different |
van Kammen Expires 10 April 2025 [Page 12]
Internet-Draft XR Fragments October 2024
| | | |#people=noanim |animation to object(s) | | | | |#people=noanim |animation to object(s) |
+----------------+--------------------------------------+-------------+---------------------+-----------------------+ +----------------+--------------------------------------+-------------+---------------------+-----------------------+
@ -722,16 +720,16 @@ Internet-Draft XR Fragments September 2024
| | | | (does not | | | | | (does not |
| | | | affect | | | | | affect |
| | | | playbackstate | | | | | playbackstate |
van Kammen Expires 31 March 2025 [Page 13]
Internet-Draft XR Fragments September 2024
| | | | of media) | | | | | of media) |
+-----------+----------------------+---------------+----------------+ +-----------+----------------------+---------------+----------------+
van Kammen Expires 10 April 2025 [Page 13]
Internet-Draft XR Fragments October 2024
| vector2 | uv=u,v,uspeed,vspeed | 0,0 | set uv offset | | vector2 | uv=u,v,uspeed,vspeed | 0,0 | set uv offset |
| | | | instantly | | | | | instantly |
| | | | (default | | | | | (default |
@ -773,19 +771,6 @@ Internet-Draft XR Fragments September 2024
Table 6 Table 6
van Kammen Expires 31 March 2025 [Page 14]
Internet-Draft XR Fragments September 2024
| * = this is extending the W3C media fragments | * = this is extending the W3C media fragments
| (https://www.w3.org/TR/media-frags/#mf-advanced) with (missing) | (https://www.w3.org/TR/media-frags/#mf-advanced) with (missing)
| playback/viewport-control. Normally #t=0,2 implies setting start/ | playback/viewport-control. Normally #t=0,2 implies setting start/
@ -793,6 +778,14 @@ Internet-Draft XR Fragments September 2024
| pausing a video, speeding up/slowing down media, as well as | pausing a video, speeding up/slowing down media, as well as
| enabling/disabling looping. | enabling/disabling looping.
| |
van Kammen Expires 10 April 2025 [Page 14]
Internet-Draft XR Fragments October 2024
| The rationale for uv is that the xywh Media Fragment deals with | The rationale for uv is that the xywh Media Fragment deals with
| rectangular media, which does not translate well to 3D models | rectangular media, which does not translate well to 3D models
| (which use triangular polygons, not rectangular) positioned by uv- | (which use triangular polygons, not rectangular) positioned by uv-
@ -837,9 +830,16 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 15]
van Kammen Expires 10 April 2025 [Page 15]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
9. Navigating 3D 9. Navigating 3D
@ -893,9 +893,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 16] van Kammen Expires 10 April 2025 [Page 16]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
+────────────────────────────────────────────────────────+ +────────────────────────────────────────────────────────+
@ -949,9 +949,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 17] van Kammen Expires 10 April 2025 [Page 17]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
+========+========+===================================================+ +========+========+===================================================+
@ -1005,9 +1005,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 18] van Kammen Expires 10 April 2025 [Page 18]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
| Instead of cherrypicking a rootobject #fishbowl with src, | Instead of cherrypicking a rootobject #fishbowl with src,
@ -1061,9 +1061,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 19] van Kammen Expires 10 April 2025 [Page 19]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
* image/jpg * image/jpg
@ -1117,9 +1117,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 20] van Kammen Expires 10 April 2025 [Page 20]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
6. make sure that the ''back-button'' of the ''browser-history'' 6. make sure that the ''back-button'' of the ''browser-history''
@ -1173,9 +1173,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 21] van Kammen Expires 10 April 2025 [Page 21]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
12.3. Scaling instanced content 12.3. Scaling instanced content
@ -1229,9 +1229,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 22] van Kammen Expires 10 April 2025 [Page 22]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
15. XR Fragment: t 15. XR Fragment: t
@ -1285,9 +1285,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 23] van Kammen Expires 10 April 2025 [Page 23]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
It's simple but powerful syntax which allows filtering the scene It's simple but powerful syntax which allows filtering the scene
@ -1341,9 +1341,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 24] van Kammen Expires 10 April 2025 [Page 24]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
(https://github.com/coderofsalvation/xrfragment/blob/main/example/ (https://github.com/coderofsalvation/xrfragment/blob/main/example/
@ -1397,9 +1397,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 25] van Kammen Expires 10 April 2025 [Page 25]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
*UX* *UX*
@ -1453,9 +1453,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 26] van Kammen Expires 10 April 2025 [Page 26]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
http://y.io/z.fbx | Derived XRWG (expressed as JSON) http://y.io/z.fbx | Derived XRWG (expressed as JSON)
@ -1509,9 +1509,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 27] van Kammen Expires 10 April 2025 [Page 27]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
* wordmatch *inside* src text * wordmatch *inside* src text
@ -1565,9 +1565,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 28] van Kammen Expires 10 April 2025 [Page 28]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
* out-of-the-box (de)multiplex human text and metadata in one go * out-of-the-box (de)multiplex human text and metadata in one go
@ -1621,9 +1621,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 29] van Kammen Expires 10 April 2025 [Page 29]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
20. Importing/exporting 20. Importing/exporting
@ -1677,9 +1677,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 30] van Kammen Expires 10 April 2025 [Page 30]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
For example: For example:
@ -1733,9 +1733,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 31] van Kammen Expires 10 April 2025 [Page 31]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
24. URI Templates (RFC6570) 24. URI Templates (RFC6570)
@ -1789,9 +1789,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 32] van Kammen Expires 10 April 2025 [Page 32]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
| Example: object 'tryceratops' with aria-description: is a huge | Example: object 'tryceratops' with aria-description: is a huge
@ -1845,9 +1845,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 33] van Kammen Expires 10 April 2025 [Page 33]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
1. The enduser must be able to enable an accessibility-mode (which 1. The enduser must be able to enable an accessibility-mode (which
@ -1901,9 +1901,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 34] van Kammen Expires 10 April 2025 [Page 34]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
26.2. Overlap with fileformat-specific extensions 26.2. Overlap with fileformat-specific extensions
@ -1957,9 +1957,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 35] van Kammen Expires 10 April 2025 [Page 35]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
+===========+===================+==============================+ +===========+===================+==============================+
@ -2013,9 +2013,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 36] van Kammen Expires 10 April 2025 [Page 36]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
+────────────────────────────────────────────────────────────────────────────────────────────────────────+ +────────────────────────────────────────────────────────────────────────────────────────────────────────+
@ -2069,9 +2069,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 37] van Kammen Expires 10 April 2025 [Page 37]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
27. Security Considerations 27. Security Considerations
@ -2125,9 +2125,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 38] van Kammen Expires 10 April 2025 [Page 38]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
30. IANA Considerations 30. IANA Considerations
@ -2181,9 +2181,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 39] van Kammen Expires 10 April 2025 [Page 39]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
| XR fragment | URI Fragment with spatial hints like | | XR fragment | URI Fragment with spatial hints like |
@ -2237,9 +2237,9 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 40] van Kammen Expires 10 April 2025 [Page 40]
Internet-Draft XR Fragments September 2024 Internet-Draft XR Fragments October 2024
| ◻ | ascii representation of an 3D object/mesh | | ◻ | ascii representation of an 3D object/mesh |
@ -2293,4 +2293,4 @@ Internet-Draft XR Fragments September 2024
van Kammen Expires 31 March 2025 [Page 41] van Kammen Expires 10 April 2025 [Page 41]

View File

@ -135,8 +135,8 @@ But approaches things from a higherlevel feedbackloop/hypermedia browser-perspec
<tr> <tr>
<td><tt>#pos</tt></td> <td><tt>#pos</tt></td>
<td>vector3</td> <td>vector3</td>
<td><tt>#pos=0.5,0,0</tt></td> <td><tt>#pos=0.5,0,0</tt> <tt>#pos=room</tt> <tt>pos=cam2</tt></td>
<td>positions camera (or XR floor) to xyz-coord 0.5,0,0,</td> <td>positions camera (or XR floor) to xyz-coord/object/camera</td>
</tr> </tr>
<tr> <tr>
@ -152,13 +152,6 @@ But approaches things from a higherlevel feedbackloop/hypermedia browser-perspec
<td><tt>#t=0,2&amp;loop</tt></td> <td><tt>#t=0,2&amp;loop</tt></td>
<td>play (and loop) 3D animation from 0 seconds till 2 seconds</td> <td>play (and loop) 3D animation from 0 seconds till 2 seconds</td>
</tr> </tr>
<tr>
<td></td>
<td></td>
<td></td>
<td>but can also crop, animate &amp; configure uv-coordinates/shader uniforms</td>
</tr>
</tbody> </tbody>
</table></section> </table></section>
@ -406,8 +399,8 @@ For example, to render a portal with a preview-version of the scene, create an 3
</ul> </ul>
<blockquote><t>It also allows <strong>sourceportation</strong>, which basically means the enduser can teleport to the original XR Document of an <tt>src</tt> embedded object, and see a visible connection to the particular embedded object. Basically an embedded link becoming an outbound link by activating it.</t> <blockquote><t>It also allows <strong>sourceportation</strong>, which basically means the enduser can teleport to the original XR Document of an <tt>src</tt> embedded object, and see a visible connection to the particular embedded object. Basically an embedded link becoming an outbound link by activating it.</t>
</blockquote> </blockquote>
<section anchor="fragment-to-metadata-mapping"><name>Fragment-to-metadata mapping</name> <section anchor="level2-implicit-uri-fragments"><name>Level2: Implicit URI Fragments</name>
<t>These are automatic fragment-to-metadata mappings, which only trigger if the 3D scene metadata matches a specific identifier:</t> <t>These fragments are derived from objectnames (or their extras) within a 3D scene, and trigger certain actions when evaluated by the browser:</t>
<table> <table>
<thead> <thead>
<tr> <tr>
@ -425,7 +418,7 @@ For example, to render a portal with a preview-version of the scene, create an 3
<td><tt>#&lt;preset&gt;</tt></td> <td><tt>#&lt;preset&gt;</tt></td>
<td>string</td> <td>string</td>
<td><tt>#cubes</tt></td> <td><tt>#cubes</tt></td>
<td>evaluates preset (<tt>#foo&amp;bar</tt>) defined in 3D Object metadata (<tt>#cubes: #foo&amp;bar</tt> e.g.) while URL-browserbar reflects <tt>#cubes</tt>. Only works when metadata-key starts with <tt>#</tt></td> <td>evaluates preset (<tt>#foo&amp;bar</tt>) when a scene contains extra (<tt>#cubes: #foo&amp;bar</tt> e.g.) while URL-browserbar reflects <tt>#cubes</tt>. Only works when metadata-key starts with <tt>#</tt></td>
</tr> </tr>
<tr> <tr>
@ -444,14 +437,6 @@ For example, to render a portal with a preview-version of the scene, create an 3
<td>will reset (<tt>!</tt>), show/focus or hide (<tt>-</tt>) focus object(s) with <tt>tag: person</tt> or name <tt>person</tt> by looking up XRWG (<tt>*</tt>=including children)</td> <td>will reset (<tt>!</tt>), show/focus or hide (<tt>-</tt>) focus object(s) with <tt>tag: person</tt> or name <tt>person</tt> by looking up XRWG (<tt>*</tt>=including children)</td>
</tr> </tr>
<tr>
<td><strong>CAMERASWITCH</strong></td>
<td><tt>#&lt;cameraname&gt;</tt></td>
<td>string</td>
<td><tt>#cam01</tt></td>
<td>sets camera with name <tt>cam01</tt> as active camera</td>
</tr>
<tr> <tr>
<td><strong>MATERIALUPDATE</strong></td> <td><strong>MATERIALUPDATE</strong></td>
<td><tt>#&lt;tag_or_objectname&gt;[*]=&lt;materialname&gt;</tt></td> <td><tt>#&lt;tag_or_objectname&gt;[*]=&lt;materialname&gt;</tt></td>

File diff suppressed because one or more lines are too long