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
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 & visual-meta.
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:
#pos=0,0,0&t=1,100
e.g.)#q=cube
){::boilerplate bcp14-tagged}
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
).
TODO
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.
TODO Security
This document has no IANA actions.
TODO acknowledge.