update documentation
This commit is contained in:
parent
f36cc0ab5f
commit
3cd4153822
|
@ -1,5 +0,0 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
mmark RFC.template.md > RFC_XR_Fragments.xml
|
||||
mmark --html RFC.template.md > RFC_XR_Fragments.html
|
||||
xml2rfc --v3 RFC_XR_Fragments.xml # RFC_XR_Fragments.txt
|
|
@ -1,47 +0,0 @@
|
|||
%%%
|
||||
Title = "XR Fragments"
|
||||
area = "Internet"
|
||||
workgroup = "Internet Engineering Task Force"
|
||||
|
||||
[seriesInfo]
|
||||
name = "XR-Fragments"
|
||||
value = "draft-XRFRAGMENTS-leonvankammen-00"
|
||||
stream = "IETF"
|
||||
status = "informational"
|
||||
|
||||
date = 2023-04-12T00:00:00Z
|
||||
|
||||
[[author]]
|
||||
initials="L.R."
|
||||
surname="van Kammen"
|
||||
fullname="L.R. van Kammen"
|
||||
|
||||
%%%
|
||||
|
||||
<!-- for annotated version see: https://raw.githubusercontent.com/ietf-tools/rfcxml-templates-and-schemas/main/draft-rfcxml-general-template-annotated-00.xml -->
|
||||
|
||||
.# Abstract
|
||||
|
||||
This is a small test document.
|
||||
|
||||
{mainmatter}
|
||||
|
||||
# Introduction
|
||||
|
||||
TODO Introduction
|
||||
|
||||
# Conventions and Definitions
|
||||
|
||||
{::boilerplate bcp14-tagged}
|
||||
|
||||
# Security Considerations
|
||||
|
||||
TODO Security
|
||||
|
||||
# IANA Considerations
|
||||
|
||||
This document has no IANA actions.
|
||||
|
||||
# Acknowledgments
|
||||
|
||||
TODO acknowledge.
|
|
@ -0,0 +1,145 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>XR Fragments</title>
|
||||
<meta name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Processor - mmark.miek.nl">
|
||||
<meta charset="utf-8">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- for annotated version see: https://raw.githubusercontent.com/ietf-tools/rfcxml-templates-and-schemas/main/draft-rfcxml-general-template-annotated-00.xml -->
|
||||
|
||||
|
||||
<style type="text/css">
|
||||
body{
|
||||
font-family: monospace;
|
||||
max-width: 900px;
|
||||
text-align: justify;
|
||||
font-size: 15px;
|
||||
padding: 0% 20%;
|
||||
line-height: 30px;
|
||||
color:#555;
|
||||
background:#F0F0F3
|
||||
}
|
||||
h1 { margin-top:40px; }
|
||||
pre{ line-height:18px; }
|
||||
|
||||
</style>
|
||||
|
||||
<br>
|
||||
<h1>XR Fragments</h1>
|
||||
<br>
|
||||
|
||||
<pre>
|
||||
stream: IETF
|
||||
area: Internet
|
||||
status: informational
|
||||
author: Leon van Kammen
|
||||
date: 2023-04-12T00:00:00Z
|
||||
workgroup: Internet Engineering Task Force
|
||||
value: draft-XRFRAGMENTS-leonvankammen-00
|
||||
</pre>
|
||||
|
||||
|
||||
|
||||
<h1 class="special" id="abstract">Abstract</h1>
|
||||
|
||||
<p>This draft offers a specification for 4D URLs & navigation, to link 3D scenes and text together with- or without a network-connection.
|
||||
The specification promotes spatial addressibility, sharing, navigation, query-ing and interactive text across for (XR) Browsers.
|
||||
XR Fragments allows us to enrich existing dataformats, by recursive use of existing technologies like <a href="https://en.wikipedia.org/wiki/URI_fragment">URI Fragments</a> & <a href="https://visual-meta.info">visual-meta</a>.</p>
|
||||
<section data-matter="main">
|
||||
<h1 id="introduction">Introduction</h1>
|
||||
|
||||
<p>How can we add more features to existing text & 3D scenes, without introducing new dataformats?
|
||||
Historically, there’s many attempts to create the ultimate markuplanguage or 3D fileformat.
|
||||
However, thru the lens of authorina,g their lowest common denominator is still: plain text.
|
||||
XR Fragments allows us to enrich existing dataformats, by recursive use of existing technologies:</p>
|
||||
|
||||
<ul>
|
||||
<li>addressibility & navigation of 3D objects: <a href="https://en.wikipedia.org/wiki/URI_fragment">URI Fragments</a> + (src/href) metadata</li>
|
||||
<li>addressibility & navigation of text objects: <a href="https://visual-meta.info">visual-meta</a></li>
|
||||
</ul>
|
||||
|
||||
<h1 id="conventions-and-definitions">Conventions and Definitions</h1>
|
||||
|
||||
<ul>
|
||||
<li>scene: a (local/remote) 3D scene or 3D file (index.gltf e.g.)</li>
|
||||
<li>3D object: an object inside a scene characterized by vertex-, face- and customproperty data.</li>
|
||||
<li>metadata: custom properties defined in 3D Scene or Object(nodes)</li>
|
||||
<li>XR fragment: URI Fragment with spatial hints (<code>#pos=0,0,0&t=1,100</code> e.g.)</li>
|
||||
<li>src: a (HTML-piggybacked) metadata-attribute of a 3D object which instances content</li>
|
||||
<li>href: a (HTML-piggybacked) metadata-attribute of a 3D object which links to content</li>
|
||||
<li>query: an URI Fragment-operator which queries object(s) from a scene (<code>#q=cube</code>)</li>
|
||||
</ul>
|
||||
|
||||
<p>{::boilerplate bcp14-tagged}</p>
|
||||
|
||||
<h1 id="navigating-3d">Navigating 3D</h1>
|
||||
|
||||
<p>Here’s an ascii representation of a 3D scene-graph which contains 3D objects (<code>◻</code>) and their metadata:</p>
|
||||
|
||||
<pre><code> index.gltf
|
||||
│
|
||||
├── ◻ buttonA
|
||||
│ └ href: #pos=1,0,1&t=100,200
|
||||
│
|
||||
└── ◻ buttonB
|
||||
└ href: other.fbx
|
||||
|
||||
</code></pre>
|
||||
|
||||
<p>An XR Fragment-compatible browser viewing this scene, allows the end-user to interact with the <code>buttonA</code> and <code>buttonB</code>.
|
||||
In case of <code>buttonA</code> the end-user will be teleported to another location and time in the <strong>current loaded scene</strong>, but <code>buttonB</code> will
|
||||
<strong>replace the current scene</strong> with a new one (<code>other.fbx</code>).</p>
|
||||
|
||||
<h1 id="navigating-text">Navigating text</h1>
|
||||
|
||||
<p>TODO</p>
|
||||
|
||||
<h1 id="embedding-3d-content">Embedding 3D content</h1>
|
||||
|
||||
<p>Here’s an ascii representation of a 3D scene-graph with 3D objects (<code>◻</code>) which embeds remote & local 3D objects (<code>◻</code>) (without) using queries:</p>
|
||||
|
||||
<pre><code> +------------------------------------------------------------+ +---------------------------+
|
||||
| | | |
|
||||
| index.gltf | | rescue.com/aquarium.gltf |
|
||||
| │ | | │ |
|
||||
| ├── ◻ canvas | | └── ◻ fishbowl |
|
||||
| │ └ src: painting.png | | ├─ ◻ bassfish |
|
||||
| │ | | └─ ◻ tuna |
|
||||
| ├── ◻ aquariumcube | | |
|
||||
| │ └ src: ://rescue.com/fish.gltf#q=bassfish%20tuna | +---------------------------+
|
||||
| │ |
|
||||
| ├── ◻ bedroom |
|
||||
| │ └ src: #q=canvas |
|
||||
| │ |
|
||||
| └── ◻ livingroom |
|
||||
| └ src: #q=canvas |
|
||||
| |
|
||||
+------------------------------------------------------------+
|
||||
</code></pre>
|
||||
|
||||
<p>An XR Fragment-compatible browser viewing this scene, lazy-loads and projects <code>painting.png</code> onto the (plane) object called <code>canvas</code> (which is copy-instanced in the bed and livingroom).
|
||||
Also, after lazy-loading <code>rescue.com/aquarium.gltf</code>, only the queried objects <code>bassfish</code> and <code>tuna</code> will be instanced inside <code>aquariumcube</code>.
|
||||
Resizing will be happen accordingly to its placeholder object (<code>aquariumcube</code>), see chapter Scaling.</p>
|
||||
|
||||
<h1 id="embedding-text">Embedding text</h1>
|
||||
|
||||
<h1 id="list-of-xr-uri-fragments">List of XR URI Fragments</h1>
|
||||
|
||||
<h1 id="security-considerations">Security Considerations</h1>
|
||||
|
||||
<p>TODO Security</p>
|
||||
|
||||
<h1 id="iana-considerations">IANA Considerations</h1>
|
||||
|
||||
<p>This document has no IANA actions.</p>
|
||||
|
||||
<h1 id="acknowledgments">Acknowledgments</h1>
|
||||
|
||||
<p>TODO acknowledge.</p>
|
||||
</section>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,153 @@
|
|||
%%%
|
||||
Title = "XR Fragments"
|
||||
area = "Internet"
|
||||
workgroup = "Internet Engineering Task Force"
|
||||
|
||||
[seriesInfo]
|
||||
name = "XR-Fragments"
|
||||
value = "draft-XRFRAGMENTS-leonvankammen-00"
|
||||
stream = "IETF"
|
||||
status = "informational"
|
||||
|
||||
date = 2023-04-12T00:00:00Z
|
||||
|
||||
[[author]]
|
||||
initials="L.R."
|
||||
surname="van Kammen"
|
||||
fullname="L.R. van Kammen"
|
||||
|
||||
%%%
|
||||
|
||||
<!-- for annotated version see: https://raw.githubusercontent.com/ietf-tools/rfcxml-templates-and-schemas/main/draft-rfcxml-general-template-annotated-00.xml -->
|
||||
|
||||
<!--{
|
||||
|
||||
<style type="text/css">
|
||||
body{
|
||||
font-family: monospace;
|
||||
max-width: 900px;
|
||||
text-align: justify;
|
||||
font-size: 15px;
|
||||
padding: 0% 20%;
|
||||
line-height: 30px;
|
||||
color:#555;
|
||||
background:#F0F0F3
|
||||
}
|
||||
h1 { margin-top:40px; }
|
||||
pre{ line-height:18px; }
|
||||
|
||||
</style>
|
||||
|
||||
<br>
|
||||
<h1>XR Fragments</h1>
|
||||
<br>
|
||||
|
||||
<pre>
|
||||
stream: IETF
|
||||
area: Internet
|
||||
status: informational
|
||||
author: Leon van Kammen
|
||||
date: 2023-04-12T00:00:00Z
|
||||
workgroup: Internet Engineering Task Force
|
||||
value: draft-XRFRAGMENTS-leonvankammen-00
|
||||
</pre>
|
||||
|
||||
|
||||
}-->
|
||||
|
||||
.# Abstract
|
||||
|
||||
This draft offers a specification for 4D URLs & navigation, to link 3D scenes and text together with- or without a network-connection.
|
||||
The specification promotes spatial addressibility, sharing, navigation, query-ing and interactive text across for (XR) Browsers.
|
||||
XR Fragments allows us to enrich existing dataformats, by recursive use of existing technologies like [URI Fragments](https://en.wikipedia.org/wiki/URI_fragment) & [visual-meta](https://visual-meta.info).
|
||||
|
||||
{mainmatter}
|
||||
|
||||
# Introduction
|
||||
|
||||
How can we add more features to existing text & 3D scenes, without introducing new dataformats?
|
||||
Historically, there's many attempts to create the ultimate markuplanguage or 3D fileformat.
|
||||
However, thru the lens of authoring their lowest common denominator is still: plain text.
|
||||
XR Fragments allows us to enrich existing dataformats, by recursive use of existing technologies:
|
||||
|
||||
* addressibility & navigation of 3D objects: [URI Fragments](https://en.wikipedia.org/wiki/URI_fragment) + (src/href) metadata
|
||||
* addressibility & navigation of text objects: [visual-meta](https://visual-meta.info)
|
||||
|
||||
# Conventions and Definitions
|
||||
|
||||
* scene: a (local/remote) 3D scene or 3D file (index.gltf e.g.)
|
||||
* 3D object: an object inside a scene characterized by vertex-, face- and customproperty data.
|
||||
* metadata: custom properties defined in 3D Scene or Object(nodes)
|
||||
* XR fragment: URI Fragment with spatial hints (`#pos=0,0,0&t=1,100` e.g.)
|
||||
* src: a (HTML-piggybacked) metadata-attribute of a 3D object which instances content
|
||||
* href: a (HTML-piggybacked) metadata-attribute of a 3D object which links to content
|
||||
* query: an URI Fragment-operator which queries object(s) from a scene (`#q=cube`)
|
||||
|
||||
{::boilerplate bcp14-tagged}
|
||||
|
||||
# Navigating 3D
|
||||
|
||||
Here's an ascii representation of a 3D scene-graph which contains 3D objects (`◻`) and their metadata:
|
||||
|
||||
```
|
||||
index.gltf
|
||||
│
|
||||
├── ◻ buttonA
|
||||
│ └ href: #pos=1,0,1&t=100,200
|
||||
│
|
||||
└── ◻ buttonB
|
||||
└ href: other.fbx
|
||||
|
||||
```
|
||||
|
||||
An XR Fragment-compatible browser viewing this scene, allows the end-user to interact with the `buttonA` and `buttonB`.
|
||||
In case of `buttonA` the end-user will be teleported to another location and time in the **current loaded scene**, but `buttonB` will
|
||||
**replace the current scene** with a new one (`other.fbx`).
|
||||
|
||||
# Navigating text
|
||||
|
||||
TODO
|
||||
|
||||
# Embedding 3D content
|
||||
|
||||
Here's an ascii representation of a 3D scene-graph with 3D objects (`◻`) which embeds remote & local 3D objects (`◻`) (without) using queries:
|
||||
|
||||
```
|
||||
+------------------------------------------------------------+ +---------------------------+
|
||||
| | | |
|
||||
| index.gltf | | rescue.com/aquarium.gltf |
|
||||
| │ | | │ |
|
||||
| ├── ◻ canvas | | └── ◻ fishbowl |
|
||||
| │ └ src: painting.png | | ├─ ◻ bassfish |
|
||||
| │ | | └─ ◻ tuna |
|
||||
| ├── ◻ aquariumcube | | |
|
||||
| │ └ src: ://rescue.com/fish.gltf#q=bassfish%20tuna | +---------------------------+
|
||||
| │ |
|
||||
| ├── ◻ bedroom |
|
||||
| │ └ src: #q=canvas |
|
||||
| │ |
|
||||
| └── ◻ livingroom |
|
||||
| └ src: #q=canvas |
|
||||
| |
|
||||
+------------------------------------------------------------+
|
||||
```
|
||||
|
||||
An XR Fragment-compatible browser viewing this scene, lazy-loads and projects `painting.png` onto the (plane) object called `canvas` (which is copy-instanced in the bed and livingroom).
|
||||
Also, after lazy-loading `rescue.com/aquarium.gltf`, only the queried objects `bassfish` and `tuna` will be instanced inside `aquariumcube`.
|
||||
Resizing will be happen accordingly to its placeholder object (`aquariumcube`), see chapter Scaling.
|
||||
|
||||
# Embedding text
|
||||
|
||||
# List of XR URI Fragments
|
||||
|
||||
# Security Considerations
|
||||
|
||||
TODO Security
|
||||
|
||||
# IANA Considerations
|
||||
|
||||
This document has no IANA actions.
|
||||
|
||||
# Acknowledgments
|
||||
|
||||
TODO acknowledge.
|
|
@ -0,0 +1,224 @@
|
|||
|
||||
|
||||
|
||||
|
||||
Internet Engineering Task Force L.R. van Kammen
|
||||
Internet-Draft 31 August 2023
|
||||
Intended status: Informational
|
||||
Expires: 3 March 2024
|
||||
|
||||
|
||||
XR Fragments
|
||||
draft-XRFRAGMENTS-leonvankammen-00
|
||||
|
||||
Abstract
|
||||
|
||||
This draft offers a specification for 4D URLs & navigation, to link
|
||||
3D scenes and text together with- or without a network-connection.
|
||||
The specification promotes spatial addressibility, sharing,
|
||||
navigation, query-ing and interactive text across for (XR) Browsers.
|
||||
XR Fragments allows us to enrich existing dataformats, by recursive
|
||||
use of existing technologies like URI Fragments
|
||||
(https://en.wikipedia.org/wiki/URI_fragment) & visual-meta
|
||||
(https://visual-meta.info).
|
||||
|
||||
Status of This Memo
|
||||
|
||||
This Internet-Draft is submitted in full conformance with the
|
||||
provisions of BCP 78 and BCP 79.
|
||||
|
||||
Internet-Drafts are working documents of the Internet Engineering
|
||||
Task Force (IETF). Note that other groups may also distribute
|
||||
working documents as Internet-Drafts. The list of current Internet-
|
||||
Drafts is at https://datatracker.ietf.org/drafts/current/.
|
||||
|
||||
Internet-Drafts are draft documents valid for a maximum of six months
|
||||
and may be updated, replaced, or obsoleted by other documents at any
|
||||
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 3 March 2024.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (c) 2023 IETF Trust and the persons identified as the
|
||||
document authors. All rights reserved.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 3 March 2024 [Page 1]
|
||||
|
||||
Internet-Draft XR Fragments August 2023
|
||||
|
||||
|
||||
This document is subject to BCP 78 and the IETF Trust's Legal
|
||||
Provisions Relating to IETF Documents (https://trustee.ietf.org/
|
||||
license-info) in effect on the date of publication of this document.
|
||||
Please review these documents carefully, as they describe your rights
|
||||
and restrictions with respect to this document. Code Components
|
||||
extracted from this document must include Revised BSD License text as
|
||||
described in Section 4.e of the Trust Legal Provisions and are
|
||||
provided without warranty as described in the Revised BSD License.
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
|
||||
2. Conventions and Definitions . . . . . . . . . . . . . . . . . 2
|
||||
3. Navigating 3D . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
4. Navigating text . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
5. Embedding 3D content . . . . . . . . . . . . . . . . . . . . 3
|
||||
6. Embedding text . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
7. List of XR URI Fragments . . . . . . . . . . . . . . . . . . 4
|
||||
8. Security Considerations . . . . . . . . . . . . . . . . . . . 4
|
||||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4
|
||||
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
|
||||
1. Introduction
|
||||
|
||||
How can we add more features to existing text & 3D scenes, without
|
||||
introducing new dataformats? Historically, there's many attempts to
|
||||
create the ultimate markuplanguage or 3D fileformat. However, thru
|
||||
the lens of authorina,g their lowest common denominator is still:
|
||||
plain text. XR Fragments allows us to enrich existing dataformats,
|
||||
by recursive use of existing technologies:
|
||||
|
||||
* addressibility & navigation of 3D objects: URI Fragments
|
||||
(https://en.wikipedia.org/wiki/URI_fragment) + (src/href) metadata
|
||||
* addressibility & navigation of text objects: visual-meta
|
||||
(https://visual-meta.info)
|
||||
|
||||
2. Conventions and Definitions
|
||||
|
||||
* scene: a (local/remote) 3D scene or 3D file (index.gltf e.g.)
|
||||
* 3D object: an object inside a scene characterized by vertex-,
|
||||
face- and customproperty data.
|
||||
* metadata: custom properties defined in 3D Scene or Object(nodes)
|
||||
* XR fragment: URI Fragment with spatial hints (#pos=0,0,0&t=1,100
|
||||
e.g.)
|
||||
* src: a (HTML-piggybacked) metadata-attribute of a 3D object which
|
||||
instances content
|
||||
* href: a (HTML-piggybacked) metadata-attribute of a 3D object which
|
||||
links to content
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 3 March 2024 [Page 2]
|
||||
|
||||
Internet-Draft XR Fragments August 2023
|
||||
|
||||
|
||||
* query: an URI Fragment-operator which queries object(s) from a
|
||||
scene (#q=cube)
|
||||
|
||||
{::boilerplate bcp14-tagged}
|
||||
|
||||
3. Navigating 3D
|
||||
|
||||
Here's an ascii representation of a 3D scene-graph which contains 3D
|
||||
objects (◻) and their metadata:
|
||||
|
||||
index.gltf
|
||||
│
|
||||
├── ◻ buttonA
|
||||
│ └ href: #pos=1,0,1&t=100,200
|
||||
│
|
||||
└── ◻ buttonB
|
||||
└ href: other.fbx
|
||||
|
||||
An XR Fragment-compatible browser viewing this scene, allows the end-
|
||||
user to interact with the buttonA and buttonB. In case of buttonA
|
||||
the end-user will be teleported to another location and time in the
|
||||
*current loaded scene*, but buttonB will *replace the current scene*
|
||||
with a new one (other.fbx).
|
||||
|
||||
4. Navigating text
|
||||
|
||||
TODO
|
||||
|
||||
5. Embedding 3D content
|
||||
|
||||
Here's an ascii representation of a 3D scene-graph with 3D objects
|
||||
(◻) which embeds remote & local 3D objects (◻) (without)
|
||||
using queries:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 3 March 2024 [Page 3]
|
||||
|
||||
Internet-Draft XR Fragments August 2023
|
||||
|
||||
|
||||
+------------------------------------------------------------+ +---------------------------+
|
||||
| | | |
|
||||
| index.gltf | | rescue.com/aquarium.gltf |
|
||||
| │ | | │ |
|
||||
| ├── ◻ canvas | | └── ◻ fishbowl |
|
||||
| │ └ src: painting.png | | ├─ ◻ bassfish |
|
||||
| │ | | └─ ◻ tuna |
|
||||
| ├── ◻ aquariumcube | | |
|
||||
| │ └ src: ://rescue.com/fish.gltf#q=bassfish%20tuna | +---------------------------+
|
||||
| │ |
|
||||
| ├── ◻ bedroom |
|
||||
| │ └ src: #q=canvas |
|
||||
| │ |
|
||||
| └── ◻ livingroom |
|
||||
| └ src: #q=canvas |
|
||||
| |
|
||||
+------------------------------------------------------------+
|
||||
|
||||
An XR Fragment-compatible browser viewing this scene, lazy-loads and
|
||||
projects painting.png onto the (plane) object called canvas (which is
|
||||
copy-instanced in the bed and livingroom). Also, after lazy-loading
|
||||
rescue.com/aquarium.gltf, only the queried objects bassfish and tuna
|
||||
will be instanced inside aquariumcube. Resizing will be happen
|
||||
accordingly to its placeholder object (aquariumcube), see chapter
|
||||
Scaling.
|
||||
|
||||
6. Embedding text
|
||||
|
||||
7. List of XR URI Fragments
|
||||
|
||||
8. Security Considerations
|
||||
|
||||
TODO Security
|
||||
|
||||
9. IANA Considerations
|
||||
|
||||
This document has no IANA actions.
|
||||
|
||||
10. Acknowledgments
|
||||
|
||||
TODO acknowledge.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
van Kammen Expires 3 March 2024 [Page 4]
|
|
@ -0,0 +1,115 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- name="GENERATOR" content="github.com/mmarkdown/mmark Mmark Markdown Processor - mmark.miek.nl" -->
|
||||
<rfc version="3" ipr="trust200902" docName="draft-XRFRAGMENTS-leonvankammen-00" submissionType="IETF" category="info" xml:lang="en" xmlns:xi="http://www.w3.org/2001/XInclude" indexInclude="true" consensus="true">
|
||||
|
||||
<front>
|
||||
<title>XR Fragments</title><seriesInfo value="draft-XRFRAGMENTS-leonvankammen-00" stream="IETF" status="informational" name="XR-Fragments"></seriesInfo>
|
||||
<author initials="L.R." surname="van Kammen" fullname="L.R. van Kammen"><organization></organization><address><postal><street></street>
|
||||
</postal></address></author><date/>
|
||||
<area>Internet</area>
|
||||
<workgroup>Internet Engineering Task Force</workgroup>
|
||||
|
||||
<abstract>
|
||||
<t>This draft offers a specification for 4D URLs & navigation, to link 3D scenes and text together with- or without a network-connection.
|
||||
The specification promotes spatial addressibility, sharing, navigation, query-ing and interactive text across for (XR) Browsers.
|
||||
XR Fragments allows us to enrich existing dataformats, by recursive use of existing technologies like <eref target="https://en.wikipedia.org/wiki/URI_fragment">URI Fragments</eref> & <eref target="https://visual-meta.info">visual-meta</eref>.</t>
|
||||
</abstract>
|
||||
|
||||
</front>
|
||||
|
||||
<middle>
|
||||
|
||||
<section anchor="introduction"><name>Introduction</name>
|
||||
<t>How can we add more features to existing text & 3D scenes, without introducing new dataformats?
|
||||
Historically, there's many attempts to create the ultimate markuplanguage or 3D fileformat.
|
||||
However, thru the lens of authorina,g their lowest common denominator is still: plain text.
|
||||
XR Fragments allows us to enrich existing dataformats, by recursive use of existing technologies:</t>
|
||||
|
||||
<ul spacing="compact">
|
||||
<li>addressibility & navigation of 3D objects: <eref target="https://en.wikipedia.org/wiki/URI_fragment">URI Fragments</eref> + (src/href) metadata</li>
|
||||
<li>addressibility & navigation of text objects: <eref target="https://visual-meta.info">visual-meta</eref></li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section anchor="conventions-and-definitions"><name>Conventions and Definitions</name>
|
||||
|
||||
<ul spacing="compact">
|
||||
<li>scene: a (local/remote) 3D scene or 3D file (index.gltf e.g.)</li>
|
||||
<li>3D object: an object inside a scene characterized by vertex-, face- and customproperty data.</li>
|
||||
<li>metadata: custom properties defined in 3D Scene or Object(nodes)</li>
|
||||
<li>XR fragment: URI Fragment with spatial hints (<tt>#pos=0,0,0&t=1,100</tt> e.g.)</li>
|
||||
<li>src: a (HTML-piggybacked) metadata-attribute of a 3D object which instances content</li>
|
||||
<li>href: a (HTML-piggybacked) metadata-attribute of a 3D object which links to content</li>
|
||||
<li>query: an URI Fragment-operator which queries object(s) from a scene (<tt>#q=cube</tt>)</li>
|
||||
</ul>
|
||||
<t>{::boilerplate bcp14-tagged}</t>
|
||||
</section>
|
||||
|
||||
<section anchor="navigating-3d"><name>Navigating 3D</name>
|
||||
<t>Here's an ascii representation of a 3D scene-graph which contains 3D objects (<tt>◻</tt>) and their metadata:</t>
|
||||
|
||||
<artwork> index.gltf
|
||||
│
|
||||
├── ◻ buttonA
|
||||
│ └ href: #pos=1,0,1&t=100,200
|
||||
│
|
||||
└── ◻ buttonB
|
||||
└ href: other.fbx
|
||||
|
||||
</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>.
|
||||
In case of <tt>buttonA</tt> the end-user will be teleported to another location and time in the <strong>current loaded scene</strong>, but <tt>buttonB</tt> will
|
||||
<strong>replace the current scene</strong> with a new one (<tt>other.fbx</tt>).</t>
|
||||
</section>
|
||||
|
||||
<section anchor="navigating-text"><name>Navigating text</name>
|
||||
<t>TODO</t>
|
||||
</section>
|
||||
|
||||
<section anchor="embedding-3d-content"><name>Embedding 3D content</name>
|
||||
<t>Here's an ascii representation of a 3D scene-graph with 3D objects (<tt>◻</tt>) which embeds remote & local 3D objects (<tt>◻</tt>) (without) using queries:</t>
|
||||
|
||||
<artwork> +------------------------------------------------------------+ +---------------------------+
|
||||
| | | |
|
||||
| index.gltf | | rescue.com/aquarium.gltf |
|
||||
| │ | | │ |
|
||||
| ├── ◻ canvas | | └── ◻ fishbowl |
|
||||
| │ └ src: painting.png | | ├─ ◻ bassfish |
|
||||
| │ | | └─ ◻ tuna |
|
||||
| ├── ◻ aquariumcube | | |
|
||||
| │ └ src: ://rescue.com/fish.gltf#q=bassfish%20tuna | +---------------------------+
|
||||
| │ |
|
||||
| ├── ◻ bedroom |
|
||||
| │ └ src: #q=canvas |
|
||||
| │ |
|
||||
| └── ◻ livingroom |
|
||||
| └ src: #q=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).
|
||||
Also, after lazy-loading <tt>rescue.com/aquarium.gltf</tt>, only the queried objects <tt>bassfish</tt> and <tt>tuna</tt> will be instanced inside <tt>aquariumcube</tt>.
|
||||
Resizing will be happen accordingly to its placeholder object (<tt>aquariumcube</tt>), see chapter Scaling.</t>
|
||||
</section>
|
||||
|
||||
<section anchor="embedding-text"><name>Embedding text</name>
|
||||
</section>
|
||||
|
||||
<section anchor="list-of-xr-uri-fragments"><name>List of XR URI Fragments</name>
|
||||
</section>
|
||||
|
||||
<section anchor="security-considerations"><name>Security Considerations</name>
|
||||
<t>TODO Security</t>
|
||||
</section>
|
||||
|
||||
<section anchor="iana-considerations"><name>IANA Considerations</name>
|
||||
<t>This document has no IANA actions.</t>
|
||||
</section>
|
||||
|
||||
<section anchor="acknowledgments"><name>Acknowledgments</name>
|
||||
<t>TODO acknowledge.</t>
|
||||
</section>
|
||||
|
||||
</middle>
|
||||
|
||||
</rfc>
|
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
mmark RFC_XR_Fragments.md > RFC_XR_Fragments.xml
|
||||
xml2rfc --v3 RFC_XR_Fragments.xml # RFC_XR_Fragments.txt
|
||||
mmark --html RFC.template.md | grep -vE '(<!--{|}-->)' > RFC_XR_Fragments.html
|
||||
#sed 's|visual-meta|<a href="https://visual-meta.org">visual-meta</a>|g' -i RFC_XR_Fragments.html
|
Loading…
Reference in New Issue