225 lines
7.7 KiB
Plaintext
225 lines
7.7 KiB
Plaintext
|
||
|
||
|
||
|
||
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]
|