update docs
This commit is contained in:
parent
5131b4f99b
commit
c7070c1d2a
|
@ -152,7 +152,7 @@ Instead of forcing authors to combine 3D/2D objects programmatically (publishing
|
|||
│ 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 │
|
||||
│ │ #filter │ │
|
||||
│ │ #tag │ │
|
||||
|
@ -171,16 +171,25 @@ Instead of forcing authors to combine 3D/2D objects programmatically (publishing
|
|||
</code></pre>
|
||||
|
||||
<blockquote>
|
||||
<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>
|
||||
<p>?-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.</p>
|
||||
</blockquote>
|
||||
|
||||
<p>Traditional webbrowsers can become 4D document-ready by:</p>
|
||||
<h1 id="hypermediatic-feedbackloop-for-xr-browsers">Hypermediatic FeedbackLoop for XR browsers</h1>
|
||||
|
||||
<p><code>href</code> metadata traditionally implies <strong>click</strong> AND <strong>navigate</strong>, however XR Fragments adds <strong>click</strong> (<code>xrf://#....</code>) or <strong>navigate</strong> (<code>xrf://#pos=...</code>)<br>
|
||||
as well (which allows many extra interactions which otherwise need a scripting language). This is known as <strong>hashbus</strong>-only events (see image above).</p>
|
||||
|
||||
<blockquote>
|
||||
<p>Being able to use the same URI Fragment DSL for navigation (<code>href: #foo</code>) as well as interactions (<code>href: xrf://#bar</code>) greatly simplifies implementation, increases HFL, and reduces need for scripting languages.</p>
|
||||
</blockquote>
|
||||
|
||||
<p>This opens up the following benefits for traditional & future webbrowsers:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="https://github.com/coderofsalvation/hypermediatic">hypermediatic</a> loading 3D assets (gltf/fbx e.g.) natively (with or without using HTML).</li>
|
||||
<li>allowing assets to publish hashtags to themselves (the scene) using the hashbus (like hashtags controlling the scrollbar).</li>
|
||||
<li><a href="https://github.com/coderofsalvation/hypermediatic">hypermediatic</a> loading/clicking 3D assets (gltf/fbx e.g.) natively (with or without using HTML).</li>
|
||||
<li>allowing 3D assets/nodes to publish XR Fragments to themselves/eachother using the <code>xrf://</code> hashbus</li>
|
||||
<li>collapsing the 3D scene to an wordgraph (for essential navigation purposes) controllable thru a hash(tag)bus</li>
|
||||
<li>completely bypasses the security-trap of loading external scripts (by loading 3D model-files, not HTML-javascriptable resources)</li>
|
||||
<li>completely bypassing the security-trap of loading external scripts (by loading 3D model-files, not HTML-javascriptable resources)</li>
|
||||
</ul>
|
||||
|
||||
<p>XR Fragments itself are <a href="https://github.com/coderofsalvation/hypermediatic">hypermediatic</a> and HTML-agnostic, though pseudo-XR Fragment browsers <strong>can</strong> be implemented on top of HTML/Javascript.</p>
|
||||
|
@ -242,9 +251,25 @@ Instead of forcing authors to combine 3D/2D objects programmatically (publishing
|
|||
<td>filters certain (in)visible objects</td>
|
||||
<td>n/a</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>href metadata</td>
|
||||
<td>href=“xrf://#-foo&bar”</td>
|
||||
<td>href=“javascript:hideFooAndShowBar()`</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>(this does not update topLevel URI)</td>
|
||||
<td>(this is non-standard, non-hypermediatic)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<blockquote>
|
||||
<p>An important aspect of HFL is that URI Fragments can be triggered without updating the top-level URI (default href-behaviour) thru their own ‘bus’ (<code>xrf://#.....</code>). This decoupling between navigation and interaction prevents non-standard things like (<code>href</code>:<code>javascript:dosomething()</code>).</p>
|
||||
</blockquote>
|
||||
|
||||
<h1 id="conventions-and-definitions">Conventions and Definitions</h1>
|
||||
|
||||
<p>See appendix below in case certain terms are not clear.</p>
|
||||
|
@ -319,7 +344,7 @@ That way, if the link gets shared, the XR Fragments implementation at <code>http
|
|||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><a href="https://www.w3.org/TR/media-frags/">W3C Media Fragments</a></td>
|
||||
<td><a href="https://www.w3.org/TR/media-frags/">Media Fragments</a></td>
|
||||
<td><a href="#media%20fragments%20and%20datatypes">media fragment</a></td>
|
||||
<td><code>#t=0,2&loop</code></td>
|
||||
<td>play (and loop) 3D animation from 0 seconds till 2 seconds</td>
|
||||
|
@ -582,7 +607,7 @@ That way, if the link gets shared, the XR Fragments implementation at <code>http
|
|||
|
||||
<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://video.org/organogram.mp4#t=0&loop&uv=0.1,0.1,0.3,0.3</code> (animated tween 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>
|
||||
|
||||
|
|
|
@ -161,7 +161,7 @@ Below you can see how this translates back into good-old URLs:
|
|||
│ 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 │
|
||||
│ │ #filter │ │
|
||||
│ │ #tag │ │
|
||||
|
@ -179,27 +179,39 @@ Below you can see how this translates back into good-old URLs:
|
|||
|
||||
```
|
||||
|
||||
> ?-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.
|
||||
> ?-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.
|
||||
|
||||
Traditional webbrowsers can become 4D document-ready by:
|
||||
# Hypermediatic FeedbackLoop for XR browsers
|
||||
|
||||
* [hypermediatic](https://github.com/coderofsalvation/hypermediatic) loading 3D assets (gltf/fbx e.g.) natively (with or without using HTML).
|
||||
* allowing assets to publish hashtags to themselves (the scene) using the hashbus (like hashtags controlling the scrollbar).
|
||||
`href` metadata traditionally implies **click** AND **navigate**, however XR Fragments adds **click** (`xrf://#....`) or **navigate** (`xrf://#pos=...`)
|
||||
as well (which allows many extra interactions which otherwise need a scripting language). This is known as **hashbus**-only events (see image above).
|
||||
|
||||
> Being able to use the same URI Fragment DSL for navigation (`href: #foo`) as well as interactions (`href: xrf://#bar`) greatly simplifies implementation, increases HFL, and reduces need for scripting languages.
|
||||
|
||||
This opens up the following benefits for traditional & future webbrowsers:
|
||||
|
||||
* [hypermediatic](https://github.com/coderofsalvation/hypermediatic) loading/clicking 3D assets (gltf/fbx e.g.) natively (with or without using HTML).
|
||||
* allowing 3D assets/nodes to publish XR Fragments to themselves/eachother using the `xrf://` hashbus
|
||||
* collapsing the 3D scene to an wordgraph (for essential navigation purposes) controllable thru a hash(tag)bus
|
||||
* completely bypasses the security-trap of loading external scripts (by loading 3D model-files, not HTML-javascriptable resources)
|
||||
* completely bypassing the security-trap of loading external scripts (by loading 3D model-files, not HTML-javascriptable resources)
|
||||
|
||||
|
||||
XR Fragments itself are [hypermediatic](https://github.com/coderofsalvation/hypermediatic) and HTML-agnostic, though pseudo-XR Fragment browsers **can** be implemented on top of HTML/Javascript.
|
||||
|
||||
| principle | XR 4D URL | HTML 2D URL |
|
||||
|----------------------|-------------------------------------------------|---------------------------------------|
|
||||
| the XRWG | wordgraph (collapses 3D scene to tags) | Ctrl-F (find) |
|
||||
| the hashbus | hashtags alter camera/scene/object-projections | hashtags alter document positions |
|
||||
| src metadata | renders content and offers sourceportation | renders content |
|
||||
| href metadata | teleports to other XR document | jumps to other HTML document |
|
||||
| href metadata | triggers predefined view | Media fragments |
|
||||
| href metadata | triggers camera/scene/object/projections | n/a |
|
||||
| href metadata | draws visible connection(s) for XRWG 'tag' | n/a |
|
||||
| href metadata | filters certain (in)visible objects | n/a |
|
||||
| principle | XR 4D URL | HTML 2D URL |
|
||||
|-----------------------------|-------------------------------------------------|---------------------------------------|
|
||||
| the XRWG | wordgraph (collapses 3D scene to tags) | Ctrl-F (find) |
|
||||
| the hashbus | hashtags alter camera/scene/object-projections | hashtags alter document positions |
|
||||
| src metadata | renders content and offers sourceportation | renders content |
|
||||
| href metadata | teleports to other XR document | jumps to other HTML document |
|
||||
| href metadata | triggers predefined view | Media fragments |
|
||||
| href metadata | triggers camera/scene/object/projections | n/a |
|
||||
| href metadata | draws visible connection(s) for XRWG 'tag' | n/a |
|
||||
| href metadata | filters certain (in)visible objects | n/a |
|
||||
| href metadata | href="xrf://#-foo&bar" | href="javascript:hideFooAndShowBar()` |
|
||||
| | (this does not update topLevel URI) | (this is non-standard, non-hypermediatic) |
|
||||
|
||||
> An important aspect of HFL is that URI Fragments can be triggered without updating the top-level URI (default href-behaviour) thru their own 'bus' (`xrf://#.....`). This decoupling between navigation and interaction prevents non-standard things like (`href`:`javascript:dosomething()`).
|
||||
|
||||
# Conventions and Definitions
|
||||
|
||||
|
@ -234,7 +246,7 @@ That way, if the link gets shared, the XR Fragments implementation at `https://m
|
|||
|-------------------|------------|--------------------|----------------------------------------------------------------------|
|
||||
| `#pos` | vector3 | `#pos=0.5,0,0` | positions camera (or XR floor) to xyz-coord 0.5,0,0, |
|
||||
| `#rot` | vector3 | `#rot=0,90,0` | rotates camera to xyz-coord 0.5,0,0 |
|
||||
| [W3C 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 metadata for 3D nodes
|
||||
|
@ -291,7 +303,7 @@ These are automatic fragment-to-metadata mappings, which only trigger if the 3D
|
|||
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://video.org/organogram.mp4#t=0&loop&uv=0.1,0.1,0.3,0.3` (animated tween 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)
|
||||
|
||||
```
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -80,7 +80,7 @@ But approaches things from a higherlevel feedbackloop/hypermedia browser-perspec
|
|||
│ 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 │
|
||||
│ │ #filter │ │
|
||||
│ │ #tag │ │
|
||||
|
@ -97,14 +97,20 @@ But approaches things from a higherlevel feedbackloop/hypermedia browser-perspec
|
|||
+───────────────────────────────────────────────────────────────────────────────────────────────+
|
||||
|
||||
</artwork>
|
||||
<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>
|
||||
<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></section>
|
||||
|
||||
<section anchor="hypermediatic-feedbackloop-for-xr-browsers"><name>Hypermediatic FeedbackLoop for XR browsers</name>
|
||||
<t><tt>href</tt> metadata traditionally implies <strong>click</strong> AND <strong>navigate</strong>, however XR Fragments adds <strong>click</strong> (<tt>xrf://#....</tt>) or <strong>navigate</strong> (<tt>xrf://#pos=...</tt>)<br />
|
||||
as well (which allows many extra interactions which otherwise need a scripting language). This is known as <strong>hashbus</strong>-only events (see image above).</t>
|
||||
<blockquote><t>Being able to use the same URI Fragment DSL for navigation (<tt>href: #foo</tt>) as well as interactions (<tt>href: xrf://#bar</tt>) greatly simplifies implementation, increases HFL, and reduces need for scripting languages.</t>
|
||||
</blockquote><t>This opens up the following benefits for traditional & future webbrowsers:</t>
|
||||
|
||||
<ul spacing="compact">
|
||||
<li><eref target="https://github.com/coderofsalvation/hypermediatic">hypermediatic</eref> loading 3D assets (gltf/fbx e.g.) natively (with or without using HTML).</li>
|
||||
<li>allowing assets to publish hashtags to themselves (the scene) using the hashbus (like hashtags controlling the scrollbar).</li>
|
||||
<li><eref target="https://github.com/coderofsalvation/hypermediatic">hypermediatic</eref> loading/clicking 3D assets (gltf/fbx e.g.) natively (with or without using HTML).</li>
|
||||
<li>allowing 3D assets/nodes to publish XR Fragments to themselves/eachother using the <tt>xrf://</tt> hashbus</li>
|
||||
<li>collapsing the 3D scene to an wordgraph (for essential navigation purposes) controllable thru a hash(tag)bus</li>
|
||||
<li>completely bypasses the security-trap of loading external scripts (by loading 3D model-files, not HTML-javascriptable resources)</li>
|
||||
<li>completely bypassing the security-trap of loading external scripts (by loading 3D model-files, not HTML-javascriptable resources)</li>
|
||||
</ul>
|
||||
<t>XR Fragments itself are <eref target="https://github.com/coderofsalvation/hypermediatic">hypermediatic</eref> and HTML-agnostic, though pseudo-XR Fragment browsers <strong>can</strong> be implemented on top of HTML/Javascript.</t>
|
||||
<table>
|
||||
|
@ -164,8 +170,21 @@ But approaches things from a higherlevel feedbackloop/hypermedia browser-perspec
|
|||
<td>filters certain (in)visible objects</td>
|
||||
<td>n/a</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>href metadata</td>
|
||||
<td>href="xrf://#-foo&bar"</td>
|
||||
<td>href="javascript:hideFooAndShowBar()`</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>(this does not update topLevel URI)</td>
|
||||
<td>(this is non-standard, non-hypermediatic)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></section>
|
||||
</table><blockquote><t>An important aspect of HFL is that URI Fragments can be triggered without updating the top-level URI (default href-behaviour) thru their own 'bus' (<tt>xrf://#.....</tt>). This decoupling between navigation and interaction prevents non-standard things like (<tt>href</tt>:<tt>javascript:dosomething()</tt>).</t>
|
||||
</blockquote></section>
|
||||
|
||||
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>
|
||||
<t>See appendix below in case certain terms are not clear.</t>
|
||||
|
@ -233,7 +252,7 @@ That way, if the link gets shared, the XR Fragments implementation at <tt>https:
|
|||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><eref target="https://www.w3.org/TR/media-frags/">W3C Media Fragments</eref></td>
|
||||
<td><eref target="https://www.w3.org/TR/media-frags/">Media Fragments</eref></td>
|
||||
<td><eref target="#media%20fragments%20and%20datatypes">media fragment</eref></td>
|
||||
<td><tt>#t=0,2&loop</tt></td>
|
||||
<td>play (and loop) 3D animation from 0 seconds till 2 seconds</td>
|
||||
|
@ -479,7 +498,7 @@ That way, if the link gets shared, the XR Fragments implementation at <tt>https:
|
|||
|
||||
<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://video.org/organogram.mp4#t=0&loop&uv=0.1,0.1,0.3,0.3</tt> (animated tween 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>
|
||||
|
||||
|
|
13
index.html
13
index.html
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue