updated docs
This commit is contained in:
parent
3e2e07616f
commit
27c60afbc1
|
@ -1000,6 +1000,11 @@ How does the scale of the object (with the embedded properties) impact the scale
|
|||
<td><code>#-price&price=>10</code></td>
|
||||
<td>hide all objects with property <code>price</code>, then only show object with price above 10</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><code>#-house*</code></td>
|
||||
<td>hide <code>house</code> object and everything inside (=<code>*</code>)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>It’s simple but powerful syntax which allows filtering the scene using searchengine prompt-style feeling:</p>
|
||||
|
|
|
@ -588,8 +588,9 @@ Include, exclude, hide/shows objects using space-separated strings:
|
|||
| example | outcome |
|
||||
|----------------------------------|------------------------------------------------------------------------------------|
|
||||
| `#-sky` | show everything except object named `sky` |
|
||||
| `#-language&english` | hide everything with tag `language`, but show all tag `english` objects |
|
||||
| `#-language&english` | hide everything with tag `language`, but show all tag `english` objects |
|
||||
| `#-price&price=>10` | hide all objects with property `price`, then only show object with price above 10 |
|
||||
| `#-house*` | hide `house` object and everything inside (=`*`) |
|
||||
|
||||
It's simple but powerful syntax which allows filtering the scene using searchengine prompt-style feeling:
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
|
||||
Jens & Leon Internet Engineering Task Force L.R. van Kammen
|
||||
Internet-Draft 17 June 2024
|
||||
Internet-Draft 19 June 2024
|
||||
Intended status: Informational
|
||||
|
||||
|
||||
|
@ -46,14 +46,14 @@ 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 December 2024.
|
||||
This Internet-Draft will expire on 21 December 2024.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 1]
|
||||
van Kammen Expires 21 December 2024 [Page 1]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -109,7 +109,7 @@ Table of Contents
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 2]
|
||||
van Kammen Expires 21 December 2024 [Page 2]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -165,7 +165,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 3]
|
||||
van Kammen Expires 21 December 2024 [Page 3]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -221,7 +221,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 4]
|
||||
van Kammen Expires 21 December 2024 [Page 4]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -277,7 +277,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 5]
|
||||
van Kammen Expires 21 December 2024 [Page 5]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -333,7 +333,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 6]
|
||||
van Kammen Expires 21 December 2024 [Page 6]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -389,7 +389,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 7]
|
||||
van Kammen Expires 21 December 2024 [Page 7]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -445,7 +445,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 8]
|
||||
van Kammen Expires 21 December 2024 [Page 8]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -501,7 +501,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 9]
|
||||
van Kammen Expires 21 December 2024 [Page 9]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -557,7 +557,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 10]
|
||||
van Kammen Expires 21 December 2024 [Page 10]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -613,7 +613,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 11]
|
||||
van Kammen Expires 21 December 2024 [Page 11]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -669,7 +669,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 12]
|
||||
van Kammen Expires 21 December 2024 [Page 12]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -725,7 +725,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 13]
|
||||
van Kammen Expires 21 December 2024 [Page 13]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -781,7 +781,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 14]
|
||||
van Kammen Expires 21 December 2024 [Page 14]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -827,17 +827,17 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
Table 7
|
||||
|
||||
» example implementation
|
||||
» example implementation
|
||||
(https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/
|
||||
three/xrf/pos.js)
|
||||
» discussion (https://github.com/coderofsalvation/xrfragment/
|
||||
» discussion (https://github.com/coderofsalvation/xrfragment/
|
||||
issues/5)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 15]
|
||||
van Kammen Expires 21 December 2024 [Page 15]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -863,7 +863,7 @@ Internet-Draft XR Fragments June 2024
|
|||
position will be assumed
|
||||
|
||||
Here's an ascii representation of a 3D scene-graph which contains 3D
|
||||
objects ◻ and their metadata:
|
||||
objects ◻ and their metadata:
|
||||
|
||||
+────────────────────────────────────────────────────────+
|
||||
│ │
|
||||
|
@ -893,7 +893,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 16]
|
||||
van Kammen Expires 21 December 2024 [Page 16]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -939,8 +939,9 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
Table 8
|
||||
|
||||
Here's an ascii representation of a 3D scene-graph with 3D objects ◻
|
||||
which embeds remote & local 3D objects ◻ with/out using filters:
|
||||
Here's an ascii representation of a 3D scene-graph with 3D objects
|
||||
◻ which embeds remote & local 3D objects ◻ with/out using
|
||||
filters:
|
||||
|
||||
|
||||
|
||||
|
@ -948,8 +949,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 17]
|
||||
van Kammen Expires 21 December 2024 [Page 17]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1005,7 +1005,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 18]
|
||||
van Kammen Expires 21 December 2024 [Page 18]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1041,13 +1041,13 @@ Internet-Draft XR Fragments June 2024
|
|||
* image/jpg
|
||||
* text/plain;charset=utf-8
|
||||
|
||||
» example implementation
|
||||
» example implementation
|
||||
(https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/
|
||||
three/xrf/src.js)
|
||||
» example 3D asset
|
||||
» example 3D asset
|
||||
(https://github.com/coderofsalvation/xrfragment/blob/main/example/
|
||||
assets/src.gltf#L192)
|
||||
» discussion (https://github.com/coderofsalvation/xrfragment/
|
||||
» discussion (https://github.com/coderofsalvation/xrfragment/
|
||||
issues/4)
|
||||
|
||||
10. Navigating content href portals
|
||||
|
@ -1061,7 +1061,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 19]
|
||||
van Kammen Expires 21 December 2024 [Page 19]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1117,18 +1117,18 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 20]
|
||||
van Kammen Expires 21 December 2024 [Page 20]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
||||
» example implementation
|
||||
» example implementation
|
||||
(https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/
|
||||
three/xrf/href.js)
|
||||
» example 3D asset
|
||||
» example 3D asset
|
||||
(https://github.com/coderofsalvation/xrfragment/blob/main/example/
|
||||
assets/href.gltf#L192)
|
||||
» discussion (https://github.com/coderofsalvation/xrfragment/
|
||||
» discussion (https://github.com/coderofsalvation/xrfragment/
|
||||
issues/1)
|
||||
|
||||
10.1. Walking surfaces
|
||||
|
@ -1173,7 +1173,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 21]
|
||||
van Kammen Expires 21 December 2024 [Page 21]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1229,7 +1229,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 22]
|
||||
van Kammen Expires 21 December 2024 [Page 22]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1252,6 +1252,9 @@ Internet-Draft XR Fragments June 2024
|
|||
+--------------------+-------------------------------------------+
|
||||
| #-price&price=>10 | hide all objects with property price, |
|
||||
| | then only show object with price above 10 |
|
||||
+--------------------+-------------------------------------------+
|
||||
| #-house* | hide house object and everything inside |
|
||||
| | (=*) |
|
||||
+--------------------+-------------------------------------------+
|
||||
|
||||
Table 10
|
||||
|
@ -1282,10 +1285,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 23]
|
||||
van Kammen Expires 21 December 2024 [Page 23]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1317,11 +1317,11 @@ Internet-Draft XR Fragments June 2024
|
|||
| colorbuffer (to allow children being still visible while their
|
||||
| parents are invisible).
|
||||
|
||||
» example implementation
|
||||
» example implementation
|
||||
(https://github.com/coderofsalvation/xrfragment/blob/main/src/3rd/js/
|
||||
three/xrf/q.js) » example 3D asset
|
||||
three/xrf/q.js) » example 3D asset
|
||||
(https://github.com/coderofsalvation/xrfragment/blob/main/example/
|
||||
assets/filter.gltf#L192) » discussion
|
||||
assets/filter.gltf#L192) » discussion
|
||||
(https://github.com/coderofsalvation/xrfragment/issues/3)
|
||||
|
||||
15.2. Filter Parser
|
||||
|
@ -1341,7 +1341,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 24]
|
||||
van Kammen Expires 21 December 2024 [Page 24]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1397,7 +1397,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 25]
|
||||
van Kammen Expires 21 December 2024 [Page 25]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1453,7 +1453,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 26]
|
||||
van Kammen Expires 21 December 2024 [Page 26]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1509,7 +1509,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 27]
|
||||
van Kammen Expires 21 December 2024 [Page 27]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1565,7 +1565,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 28]
|
||||
van Kammen Expires 21 December 2024 [Page 28]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1621,7 +1621,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 29]
|
||||
van Kammen Expires 21 December 2024 [Page 29]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1677,7 +1677,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 30]
|
||||
van Kammen Expires 21 December 2024 [Page 30]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1733,7 +1733,7 @@ xrtext = {
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 31]
|
||||
van Kammen Expires 21 December 2024 [Page 31]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1789,7 +1789,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 32]
|
||||
van Kammen Expires 21 December 2024 [Page 32]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1845,7 +1845,7 @@ console.log( xrtext.encode(text,tags) ) // multiplex text & bibtex back to
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 33]
|
||||
van Kammen Expires 21 December 2024 [Page 33]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1901,7 +1901,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 34]
|
||||
van Kammen Expires 21 December 2024 [Page 34]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -1957,7 +1957,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 35]
|
||||
van Kammen Expires 21 December 2024 [Page 35]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -2013,7 +2013,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 36]
|
||||
van Kammen Expires 21 December 2024 [Page 36]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -2069,7 +2069,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 37]
|
||||
van Kammen Expires 21 December 2024 [Page 37]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -2125,7 +2125,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 38]
|
||||
van Kammen Expires 21 December 2024 [Page 38]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -2157,7 +2157,7 @@ Internet-Draft XR Fragments June 2024
|
|||
25. authors
|
||||
|
||||
* Leon van Kammen (@lvk@mastodon.online)
|
||||
* Jens Finkhäuser (@jens@social.finkhaeuser.de)
|
||||
* Jens Finkhäuser (@jens@social.finkhaeuser.de)
|
||||
|
||||
26. IANA Considerations
|
||||
|
||||
|
@ -2171,7 +2171,7 @@ Internet-Draft XR Fragments June 2024
|
|||
* Michiel Leenaars
|
||||
* Gerben van der Broeke
|
||||
* Mauve
|
||||
* Jens Finkhäuser
|
||||
* Jens Finkhäuser
|
||||
* Marc Belmont
|
||||
* Tim Gerritsen
|
||||
* Frode Hegland
|
||||
|
@ -2181,7 +2181,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 39]
|
||||
van Kammen Expires 21 December 2024 [Page 39]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -2237,7 +2237,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 40]
|
||||
van Kammen Expires 21 December 2024 [Page 40]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -2271,7 +2271,7 @@ Internet-Draft XR Fragments June 2024
|
|||
| extrospective | outward sensemaking ("I'm fairly sure John |
|
||||
| | is a person who lives in oklahoma") |
|
||||
+-----------------+---------------------------------------------+
|
||||
| ◻ | ascii representation of an 3D object/mesh |
|
||||
| ◻ | ascii representation of an 3D object/mesh |
|
||||
+-----------------+---------------------------------------------+
|
||||
| (un)obtrusive | obtrusive: wrapping human text/thought in |
|
||||
| | XML/HTML/JSON obfuscates human text into a |
|
||||
|
@ -2293,7 +2293,7 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 41]
|
||||
van Kammen Expires 21 December 2024 [Page 41]
|
||||
|
||||
Internet-Draft XR Fragments June 2024
|
||||
|
||||
|
@ -2349,4 +2349,4 @@ Internet-Draft XR Fragments June 2024
|
|||
|
||||
|
||||
|
||||
van Kammen Expires 19 December 2024 [Page 42]
|
||||
van Kammen Expires 21 December 2024 [Page 42]
|
||||
|
|
|
@ -52,18 +52,18 @@ XR Fragments exploits the fact that all 3D models already contain such metadata:
|
|||
Instead of forcing authors to combine 3D/2D objects programmatically (publishing thru a game-editor e.g.), XR Fragments <strong>integrates all</strong> which allows a universal viewing experience.<br />
|
||||
</t>
|
||||
|
||||
<artwork><![CDATA[ +───────────────────────────────────────────────────────────────────────────────────────────────+
|
||||
<artwork> +───────────────────────────────────────────────────────────────────────────────────────────────+
|
||||
│ │
|
||||
│ U R N │
|
||||
│ U R L | │
|
||||
│ | |-----------------+--------| │
|
||||
│ +--------------------------------------------------| │
|
||||
│ | │
|
||||
│ + https://foo.com/some/foo/scene.glb#someview <-- http URI (=URL and has URN) │
|
||||
│ + https://foo.com/some/foo/scene.glb#someview <-- http URI (=URL and has URN) │
|
||||
│ | │
|
||||
│ + ipfs://cfe0987ec9r9098ecr/cats.fbx#someview <-- an IPFS URI (=URL and has URN) │
|
||||
│ + ipfs://cfe0987ec9r9098ecr/cats.fbx#someview <-- an IPFS URI (=URL and has URN) │
|
||||
│ │
|
||||
│ ec09f7e9cf8e7f09c8e7f98e79c09ef89e000efece8f7ecfe9fe <-- an interpeer URI │
|
||||
│ ec09f7e9cf8e7f09c8e7f98e79c09ef89e000efece8f7ecfe9fe <-- an interpeer URI │
|
||||
│ │
|
||||
│ │
|
||||
│ |------------------------+-------------------------| │
|
||||
|
@ -72,20 +72,19 @@ Instead of forcing authors to combine 3D/2D objects programmatically (publishing
|
|||
│ │
|
||||
+───────────────────────────────────────────────────────────────────────────────────────────────+
|
||||
|
||||
]]>
|
||||
</artwork>
|
||||
<t>Fact: our typical browser URL's are just <strong>a possible implementation</strong> of URI's (for untapped humancentric potential of URI's <eref target="https://interpeer.io">see interpeer.io</eref>)</t>
|
||||
<blockquote><t>XR Fragments does not look at XR (or the web) thru the lens of HTML or URLs.<br />
|
||||
But approaches things from a higherlevel feedbackloop/hypermedia browser-perspective.</t>
|
||||
</blockquote><t>Below you can see how this translates back into good-old URLs:</t>
|
||||
|
||||
<artwork><![CDATA[ +───────────────────────────────────────────────────────────────────────────────────────────────+
|
||||
<artwork> +───────────────────────────────────────────────────────────────────────────────────────────────+
|
||||
│ │
|
||||
│ the soul of any URL: ://macro /meso ?micro #nano │
|
||||
│ │
|
||||
│ 2D URL: ://library.com /document ?search #chapter │
|
||||
│ xrf:// │
|
||||
│ 4D URL: ://park.com /4Dscene.fbx ─> ?other.glb ─> #view ───> hashbus │
|
||||
│ 4D URL: ://park.com /4Dscene.fbx ─> ?other.glb ─> #view ───> hashbus │
|
||||
│ │ #filter │ │
|
||||
│ │ #tag │ │
|
||||
│ │ (hypermediatic) #material │ │
|
||||
|
@ -93,14 +92,13 @@ But approaches things from a higherlevel feedbackloop/hypermedia browser-perspec
|
|||
│ │ ( loop ) #texture │ │
|
||||
│ │ #variable │ │
|
||||
│ │ │ │
|
||||
│ XRWG <─────────────────────<─────────────+ │
|
||||
│ XRWG <─────────────────────<─────────────+ │
|
||||
│ │ │ │
|
||||
│ └─ objects ──────────────>─────────────+ │
|
||||
│ └─ objects ──────────────>─────────────+ │
|
||||
│ │
|
||||
│ │
|
||||
+───────────────────────────────────────────────────────────────────────────────────────────────+
|
||||
|
||||
]]>
|
||||
</artwork>
|
||||
<blockquote><t>?-linked and #-linked navigation are JUST one possible way to implement XR Fragments: the essential goal is to allow a Hypermediatic FeedbackLoop (HFL) between external and internal 4D navigation.</t>
|
||||
</blockquote><t>Traditional webbrowsers can become 4D document-ready by:</t>
|
||||
|
@ -198,10 +196,9 @@ But approaches things from a higherlevel feedbackloop/hypermedia browser-perspec
|
|||
<section anchor="xr-fragment-url-grammar"><name>XR Fragment URL Grammar</name>
|
||||
<t>For typical HTTP-like browsers/applications:</t>
|
||||
|
||||
<artwork><![CDATA[reserved = gen-delims / sub-delims
|
||||
gen-delims = "#" / "&"
|
||||
sub-delims = "," / "="
|
||||
]]>
|
||||
<artwork>reserved = gen-delims / sub-delims
|
||||
gen-delims = "#" / "&"
|
||||
sub-delims = "," / "="
|
||||
</artwork>
|
||||
<blockquote><t>Example: <tt>://foo.com/my3d.gltf#pos=1,0,0&prio=-5&t=0,100</tt></t>
|
||||
</blockquote><table>
|
||||
|
@ -235,7 +232,7 @@ That way, if the link gets shared, the XR Fragments implementation at <tt>https:
|
|||
<section anchor="spatial-referencing-3d"><name>Spatial Referencing 3D</name>
|
||||
<t>XR Fragments assume the following objectname-to-URIFragment mapping:</t>
|
||||
|
||||
<artwork><![CDATA[
|
||||
<artwork>
|
||||
my.io/scene.fbx
|
||||
+─────────────────────────────+
|
||||
│ sky │ src: http://my.io/scene.fbx#sky (includes building,mainobject,floor)
|
||||
|
@ -251,7 +248,6 @@ That way, if the link gets shared, the XR Fragments implementation at <tt>https:
|
|||
│ +─────────────────────────+ │
|
||||
+─────────────────────────────+
|
||||
|
||||
]]>
|
||||
</artwork>
|
||||
<blockquote><t>Every 3D fileformat supports named 3D object, and this name allows URLs (fragments) to reference them (and their children objects).</t>
|
||||
</blockquote><t>Clever nested design of 3D scenes allow great ways for re-using content, and/or previewing scenes.<br />
|
||||
|
@ -548,12 +544,12 @@ For example, to render a portal with a preview-version of the scene, create an 3
|
|||
<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><![CDATA[ +──────────────────────────────────────────────────────────+
|
||||
<artwork> +──────────────────────────────────────────────────────────+
|
||||
│ │
|
||||
│ index.gltf#playall │
|
||||
│ │ │
|
||||
│ ├ # : #t=0&shared=play │ apply default XR Fragment on load (`t` plays global 3D animation timeline)
|
||||
│ ├ play : #t=0&loop │ variable for [URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
|
||||
│ ├ # : #t=0&shared=play │ apply default XR Fragment on load (`t` plays global 3D animation timeline)
|
||||
│ ├ 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
|
||||
|
@ -562,19 +558,18 @@ For example, to render a portal with a preview-version of the scene, create an 3
|
|||
│ │ └ 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)
|
||||
│ │ └ 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)
|
||||
│ │ │
|
||||
│ └── ◻ wall │
|
||||
│ ├ href: #color=blue │ updates uniform values (IFS shader e.g.)
|
||||
│ ├ blue: t=0&u:col=0,0,1 │ variable for [Level1 URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
|
||||
│ └ src: ://a.com/art.glsl#{color}&{shared} │ .fs/.vs/.glsl/.wgsl etc shader [Level1 URI Template (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
|
||||
│ ├ blue: t=0&u:col=0,0,1 │ variable for [Level1 URI Templates (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
|
||||
│ └ src: ://a.com/art.glsl#{color}&{shared} │ .fs/.vs/.glsl/.wgsl etc shader [Level1 URI Template (RFC6570)](https://www.rfc-editor.org/rfc/rfc6570)
|
||||
│ │
|
||||
│ │
|
||||
+──────────────────────────────────────────────────────────+
|
||||
|
||||
> NOTE: URI Template variables are immutable and respect scope: in other words, the end-user cannot modify `blue` by entering an URL like `#blue=.....` in the browser URL, and `blue` is not accessible by the plane/media-object (however `{play}` would work).
|
||||
> NOTE: URI Template variables are immutable and respect scope: in other words, the end-user cannot modify `blue` by entering an URL like `#blue=.....` in the browser URL, and `blue` is not accessible by the plane/media-object (however `{play}` would work).
|
||||
|
||||
]]>
|
||||
</artwork>
|
||||
</section>
|
||||
</section>
|
||||
|
@ -620,19 +615,18 @@ For example, to render a portal with a preview-version of the scene, create an 3
|
|||
</ol>
|
||||
<t>Here's an ascii representation of a 3D scene-graph which contains 3D objects <tt>◻</tt> and their metadata:</t>
|
||||
|
||||
<artwork><![CDATA[ +────────────────────────────────────────────────────────+
|
||||
<artwork> +────────────────────────────────────────────────────────+
|
||||
│ │
|
||||
│ index.gltf │
|
||||
│ │ │
|
||||
│ ├── ◻ buttonA │
|
||||
│ │ └ href: #pos=1,0,1&t=100,200 │
|
||||
│ │ └ href: #pos=1,0,1&t=100,200 │
|
||||
│ │ │
|
||||
│ └── ◻ buttonB │
|
||||
│ └ href: other.fbx │ <── file─agnostic (can be .gltf .obj etc)
|
||||
│ └ href: other.fbx │ <── file─agnostic (can be .gltf .obj etc)
|
||||
│ │
|
||||
+────────────────────────────────────────────────────────+
|
||||
|
||||
]]>
|
||||
</artwork>
|
||||
<t>An XR Fragment-compatible browser viewing this scene, allows the end-user to interact with the <tt>buttonA</tt> and <tt>buttonB</tt>.<br />
|
||||
|
||||
|
@ -680,7 +674,7 @@ It instances content (in objects) in the current scene/asset, and follows simila
|
|||
</tbody>
|
||||
</table><t>Here's an ascii representation of a 3D scene-graph with 3D objects <tt>◻</tt> which embeds remote & local 3D objects <tt>◻</tt> with/out using filters:</t>
|
||||
|
||||
<artwork><![CDATA[ +────────────────────────────────────────────────────────+ +─────────────────────────+
|
||||
<artwork> +────────────────────────────────────────────────────────+ +─────────────────────────+
|
||||
│ │ │ │
|
||||
│ index.gltf │ │ ocean.com/aquarium.fbx │
|
||||
│ │ │ │ ├ room │
|
||||
|
@ -697,7 +691,6 @@ It instances content (in objects) in the current scene/asset, and follows simila
|
|||
│ └ src: #canvas │
|
||||
│ │
|
||||
+────────────────────────────────────────────────────────+
|
||||
]]>
|
||||
</artwork>
|
||||
<t>An XR Fragment-compatible browser viewing this scene, lazy-loads and projects <tt>painting.png</tt> onto the (plane) object called <tt>canvas</tt> (which is copy-instanced in the bed and livingroom).<br />
|
||||
|
||||
|
@ -889,6 +882,11 @@ How does the scale of the object (with the embedded properties) impact the scale
|
|||
<td><tt>#-price&price=>10</tt></td>
|
||||
<td>hide all objects with property <tt>price</tt>, then only show object with price above 10</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><tt>#-house*</tt></td>
|
||||
<td>hide <tt>house</tt> object and everything inside (=<tt>*</tt>)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table><t>It's simple but powerful syntax which allows filtering the scene using searchengine prompt-style feeling:</t>
|
||||
|
||||
|
@ -995,7 +993,7 @@ Perhaps the following question is related: why is HTML adopted less in games out
|
|||
</ol>
|
||||
<t>Example of generating BiBTex out of the XRWG and textdata with hashtags:</t>
|
||||
|
||||
<artwork><![CDATA[ http://y.io/z.fbx | Derived XRWG (expressed as BibTex)
|
||||
<artwork> http://y.io/z.fbx | Derived XRWG (expressed as BibTex)
|
||||
----------------------------------------------------------------------------+--------------------------------------
|
||||
| @house{castle,
|
||||
+-[src: data:.....]----------------------+ +-[3D mesh]-+ | url = {https://y.io/z.fbx#castle}
|
||||
|
@ -1013,12 +1011,11 @@ Perhaps the following question is related: why is HTML adopted less in games out
|
|||
| /|\ | |
|
||||
| / \ | |
|
||||
+--------+ |
|
||||
]]>
|
||||
</artwork>
|
||||
<blockquote><t>the <tt>#john@baroque</tt>-bib associates both text <tt>John</tt> and objectname <tt>john</tt>, with tag <tt>baroque</tt></t>
|
||||
</blockquote><t>Another example of deriving a graphdata from the XRWG:</t>
|
||||
|
||||
<artwork><![CDATA[ http://y.io/z.fbx | Derived XRWG (expressed as BibTex)
|
||||
<artwork> http://y.io/z.fbx | Derived XRWG (expressed as BibTex)
|
||||
----------------------------------------------------------------------------+--------------------------------------
|
||||
|
|
||||
+-[src: data:.....]----------------------+ +-[3D mesh]-+ | @house{castle,
|
||||
|
@ -1036,7 +1033,6 @@ Perhaps the following question is related: why is HTML adopted less in games out
|
|||
| #baroque@todo@house | | /|\ | |
|
||||
| ... | | / \ | |
|
||||
+----------------------------------------+ +--------+ |
|
||||
]]>
|
||||
</artwork>
|
||||
<blockquote><t>both <tt>#john@baroque</tt>-bib and BibTex <tt>@baroque{john}</tt> result in the same XRWG, however on top of that 2 tages (<tt>house</tt> and <tt>todo</tt>) are now associated with text/objectname/tag 'baroque'.</t>
|
||||
</blockquote><t>As seen above, the XRWG can expand <eref target="https://github.com/coderofsalvation/hashtagbibs">bibs</eref> (and the whole scene) to BibTeX.<br />
|
||||
|
@ -1090,22 +1086,21 @@ Some pointers for good UX (but not necessary to be XR Fragment compatible):</t>
|
|||
<blockquote><t>The simplicity of appending metadata (and leveling the metadata-playfield between humans and machines) is also demonstrated by <eref target="https://visual-meta.info">visual-meta</eref> in greater detail.</t>
|
||||
</blockquote><t>Fictional chat:</t>
|
||||
|
||||
<artwork><![CDATA[<John> Hey what about this: https://my.com/station.gltf#pos=0,0,1&rot=90,2,0&t=500,1000
|
||||
<Sarah> I'm checking it right now
|
||||
<Sarah> I don't see everything..where's our text from yesterday?
|
||||
<John> Ah wait, that's tagged with tag 'draft' (and hidden)..hold on, try this:
|
||||
<John> https://my.com/station.gltf#.draft&pos=0,0,1&rot=90,2,0&t=500,1000
|
||||
<Sarah> how about we link the draft to the upcoming YELLO-event?
|
||||
<John> ok I'm adding #draft@YELLO
|
||||
<Sarah> Yesterday I also came up with other usefull assocations between other texts in the scene:
|
||||
<artwork><John> Hey what about this: https://my.com/station.gltf#pos=0,0,1&rot=90,2,0&t=500,1000
|
||||
<Sarah> I'm checking it right now
|
||||
<Sarah> I don't see everything..where's our text from yesterday?
|
||||
<John> Ah wait, that's tagged with tag 'draft' (and hidden)..hold on, try this:
|
||||
<John> https://my.com/station.gltf#.draft&pos=0,0,1&rot=90,2,0&t=500,1000
|
||||
<Sarah> how about we link the draft to the upcoming YELLO-event?
|
||||
<John> ok I'm adding #draft@YELLO
|
||||
<Sarah> Yesterday I also came up with other usefull assocations between other texts in the scene:
|
||||
#event#YELLO
|
||||
#2025@YELLO
|
||||
<John> thanks, added.
|
||||
<Sarah> Btw. I stumbled upon this spatial book which references station.gltf in some chapters:
|
||||
<Sarah> https://thecommunity.org/forum/foo/mytrainstory.txt
|
||||
<John> interesting, I'm importing mytrainstory.txt into station.gltf
|
||||
<John> ah yes, chapter three points to trainterminal_2A in the scene, cool
|
||||
]]>
|
||||
<John> thanks, added.
|
||||
<Sarah> Btw. I stumbled upon this spatial book which references station.gltf in some chapters:
|
||||
<Sarah> https://thecommunity.org/forum/foo/mytrainstory.txt
|
||||
<John> interesting, I'm importing mytrainstory.txt into station.gltf
|
||||
<John> ah yes, chapter three points to trainterminal_2A in the scene, cool
|
||||
</artwork>
|
||||
|
||||
<section anchor="default-data-uri-mimetype"><name>Default Data URI mimetype</name>
|
||||
|
@ -1141,7 +1136,7 @@ to connect text further with its environment ( setup links between textual/spati
|
|||
|
||||
<section anchor="url-and-data-uri"><name>URL and Data URI</name>
|
||||
|
||||
<artwork><![CDATA[ +--------------------------------------------------------------+ +------------------------+
|
||||
<artwork> +--------------------------------------------------------------+ +------------------------+
|
||||
| | | author.com/article.txt |
|
||||
| index.gltf | +------------------------+
|
||||
| │ | | |
|
||||
|
@ -1153,7 +1148,6 @@ to connect text further with its environment ( setup links between textual/spati
|
|||
| | +------------------------+
|
||||
| |
|
||||
+--------------------------------------------------------------+
|
||||
]]>
|
||||
</artwork>
|
||||
<t>The enduser will only see <tt>welcome human</tt> and <tt>Hello friends</tt> rendered verbatim (see mimetype).
|
||||
The beauty is that text in Data URI automatically promotes rich copy-paste (retaining metadata).
|
||||
|
@ -1165,14 +1159,14 @@ The XR Fragment-compatible browser can let the enduser access visual-meta(data)-
|
|||
<section anchor="xr-text-example-parser"><name>XR Text example parser</name>
|
||||
<t>To prime the XRWG with text from plain text <tt>src</tt>-values, here's an example XR Text (de)multiplexer in javascript (which supports inline bibs & bibtex):</t>
|
||||
|
||||
<artwork><![CDATA[xrtext = {
|
||||
<artwork>xrtext = {
|
||||
|
||||
expandBibs: (text) => {
|
||||
expandBibs: (text) => {
|
||||
let bibs = { regex: /(#[a-zA-Z0-9_+@\-]+(#)?)/g, tags: {}}
|
||||
text.replace( bibs.regex , (m,k,v) => {
|
||||
tok = m.substr(1).split("@")
|
||||
text.replace( bibs.regex , (m,k,v) => {
|
||||
tok = m.substr(1).split("@")
|
||||
match = tok.shift()
|
||||
if( tok.length ) tok.map( (t) => bibs.tags[t] = `@${t}{${match},\n}` )
|
||||
if( tok.length ) tok.map( (t) => bibs.tags[t] = `@${t}{${match},\n}` )
|
||||
else if( match.substr(-1) == '#' )
|
||||
bibs.tags[match] = `@{${match.replace(/#/,'')}}`
|
||||
else bibs.tags[match] = `@${match}{${match},\n}`
|
||||
|
@ -1180,16 +1174,16 @@ The XR Fragment-compatible browser can let the enduser access visual-meta(data)-
|
|||
return text.replace( bibs.regex, '') + Object.values(bibs.tags).join('\n')
|
||||
},
|
||||
|
||||
decode: (str) => {
|
||||
// bibtex: ↓@ ↓<tag|tag{phrase,|{ruler}> ↓property ↓end
|
||||
decode: (str) => {
|
||||
// bibtex: ↓@ ↓<tag|tag{phrase,|{ruler}> ↓property ↓end
|
||||
let pat = [ /@/, /^\S+[,{}]/, /},/, /}/ ]
|
||||
let tags = [], text='', i=0, prop=''
|
||||
let lines = xrtext.expandBibs(str).replace(/\r?\n/g,'\n').split(/\n/)
|
||||
for( let i = 0; i < lines.length && !String(lines[i]).match( /^@/ ); i++ )
|
||||
for( let i = 0; i < lines.length && !String(lines[i]).match( /^@/ ); i++ )
|
||||
text += lines[i]+'\n'
|
||||
|
||||
bibtex = lines.join('\n').substr( text.length )
|
||||
bibtex.split( pat[0] ).map( (t) => {
|
||||
bibtex.split( pat[0] ).map( (t) => {
|
||||
try{
|
||||
let v = {}
|
||||
if( !(t = t.trim()) ) return
|
||||
|
@ -1198,9 +1192,9 @@ The XR Fragment-compatible browser can let the enduser access visual-meta(data)-
|
|||
if( tag.match( /}$/ ) ) return tags.push({k: tag.replace(/}$/,''), v: {}})
|
||||
t = t.substr( tag.length )
|
||||
t.split( pat[2] )
|
||||
.map( kv => {
|
||||
if( !(kv = kv.trim()) || kv == "}" ) return
|
||||
v[ kv.match(/\s?(\S+)\s?=/)[1] ] = kv.substr( kv.indexOf("{")+1 )
|
||||
.map( kv => {
|
||||
if( !(kv = kv.trim()) || kv == "}" ) return
|
||||
v[ kv.match(/\s?(\S+)\s?=/)[1] ] = kv.substr( kv.indexOf("{")+1 )
|
||||
})
|
||||
tags.push( { k:tag, v } )
|
||||
}catch(e){ console.error(e) }
|
||||
|
@ -1208,8 +1202,8 @@ The XR Fragment-compatible browser can let the enduser access visual-meta(data)-
|
|||
return {text, tags}
|
||||
},
|
||||
|
||||
encode: (text,tags) => {
|
||||
let str = text+"\n"
|
||||
encode: (text,tags) => {
|
||||
let str = text+"\n"
|
||||
for( let i in tags ){
|
||||
let item = tags[i]
|
||||
if( item.ruler ){
|
||||
|
@ -1223,12 +1217,11 @@ The XR Fragment-compatible browser can let the enduser access visual-meta(data)-
|
|||
return str
|
||||
}
|
||||
}
|
||||
]]>
|
||||
</artwork>
|
||||
<t>The above functions (de)multiplexe text/metadata, expands bibs, (de)serialize bibtex and vice versa</t>
|
||||
<blockquote><t>above can be used as a startingpoint for LLVM's to translate/steelman to a more formal form/language.</t>
|
||||
</blockquote>
|
||||
<artwork><![CDATA[str = `
|
||||
<artwork>str = `
|
||||
hello world
|
||||
here are some hashtagbibs followed by bibtex:
|
||||
|
||||
|
@ -1241,15 +1234,14 @@ here are some hashtagbibs followed by bibtex:
|
|||
asdf = {23423}
|
||||
}`
|
||||
|
||||
var {tags,text} = xrtext.decode(str) // demultiplex text & bibtex
|
||||
tags.find( (t) => t.k == 'flap{' ).v.asdf = 1 // edit tag
|
||||
var {tags,text} = xrtext.decode(str) // demultiplex text & bibtex
|
||||
tags.find( (t) => t.k == 'flap{' ).v.asdf = 1 // edit tag
|
||||
tags.push({ k:'bar{', v:{abc:123} }) // add tag
|
||||
console.log( xrtext.encode(text,tags) ) // multiplex text & bibtex back together
|
||||
]]>
|
||||
console.log( xrtext.encode(text,tags) ) // multiplex text & bibtex back together
|
||||
</artwork>
|
||||
<t>This expands to the following (hidden by default) BibTex appendix:</t>
|
||||
|
||||
<artwork><![CDATA[hello world
|
||||
<artwork>hello world
|
||||
here are some hashtagbibs followed by bibtex:
|
||||
|
||||
@{some-section}
|
||||
|
@ -1264,7 +1256,6 @@ here are some hashtagbibs followed by bibtex:
|
|||
@bar{
|
||||
abc = {123}
|
||||
}
|
||||
]]>
|
||||
</artwork>
|
||||
<blockquote><t>when an XR browser updates the human text, a quick scan for nonmatching tags (<tt>@book{nonmatchingbook</tt> e.g.) should be performed and prompt the enduser for deleting them.</t>
|
||||
</blockquote></section>
|
||||
|
@ -1281,7 +1272,7 @@ here are some hashtagbibs followed by bibtex:
|
|||
<blockquote><t>due to the popularity, maturity and extensiveness of HTTP codes for client/server communication, non-HTTP protocols easily map to HTTP codes (ipfs ERR_NOT_FOUND maps to 404 e.g.)</t>
|
||||
</blockquote><t>For example:</t>
|
||||
|
||||
<artwork><![CDATA[ +────────────────────────────────────────────────────────+
|
||||
<artwork> +────────────────────────────────────────────────────────+
|
||||
│ │
|
||||
│ index.gltf │
|
||||
│ │ │
|
||||
|
@ -1293,14 +1284,13 @@ here are some hashtagbibs followed by bibtex:
|
|||
│ │ └ href@400: #clienterrortext │
|
||||
│ │ └ ◻ offlinetext │
|
||||
│ │ │
|
||||
│ └── ◻ embeddedObject <--------- the meshdata inside embeddedObject will (not)
|
||||
│ └── ◻ embeddedObject <--------- the meshdata inside embeddedObject will (not)
|
||||
│ └ src: https://foo.io/bar.gltf │ be flushed when the request (does not) succeed.
|
||||
│ └ src@404: http://foo.io/bar.gltf │ So worstcase the 3D data (of the time of publishing index.gltf)
|
||||
│ └ src@400: https://archive.org/l2kj43.gltf │ will be displayed.
|
||||
│ │
|
||||
+────────────────────────────────────────────────────────+
|
||||
|
||||
]]>
|
||||
</artwork>
|
||||
</section>
|
||||
|
||||
|
@ -1332,7 +1322,7 @@ To filter out non-related objects one could take it a step further using filters
|
|||
|
||||
The following demonstrates a simple video player:</t>
|
||||
|
||||
<artwork><![CDATA[
|
||||
<artwork>
|
||||
+─────────────────────────────────────────────+
|
||||
│ │
|
||||
│ foo.usdz │
|
||||
|
@ -1340,19 +1330,18 @@ The following demonstrates a simple video player:</t>
|
|||
│ │ │
|
||||
│ ├── ◻ stopbutton │
|
||||
│ │ ├ #: #-stopbutton │
|
||||
│ │ └ href: #player=stop&-stopbutton │ (stop and hide stop-button)
|
||||
│ │ └ href: #player=stop&-stopbutton │ (stop and hide stop-button)
|
||||
│ │ │
|
||||
│ └── ◻ plane │
|
||||
│ ├ play: #t=l:0,10 │
|
||||
│ ├ stop: #t=0,0 │
|
||||
│ ├ href: #player=play&stopbutton │ (play and show stop-button)
|
||||
│ ├ href: #player=play&stopbutton │ (play and show stop-button)
|
||||
│ └ src: cat.mp4#{player} │
|
||||
│ │
|
||||
│ │
|
||||
+─────────────────────────────────────────────+
|
||||
|
||||
|
||||
]]>
|
||||
</artwork>
|
||||
</section>
|
||||
|
||||
|
|
20
index.html
20
index.html
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue