added default spawn-location

This commit is contained in:
Leon van Kammen 2025-11-13 16:16:59 +01:00
parent 62dde2e538
commit 864a81d491
2 changed files with 112 additions and 6 deletions

View file

@ -146,6 +146,7 @@ XR Fragments allows us to better use implicit metadata inside 3D scene(files), b
1. [Accessibility interface](#accessibility-interface)
1. [Two-button navigation](#two-button-navigation)
1. [Overlap with fileformat-specific extensions](#overlap-with-fileformat-specific-extensions)
1. [XRF microformat](#XRF-microformat)
1. [Vendor Prefixes](#vendor-prefixes)
1. [Security Considerations](#security-considerations)
1. [FAQ](#faq)
@ -869,6 +870,111 @@ Therefore a 2-button navigation-interface is the bare minimum interface:
2. objects with href metadata can be activated via a key (enter on a keyboard)
3. the TTS reads the href-value (and/or aria-description if available)
## XRF microformat
How can applications discover 3D experiences on a network?
> Answer: **spatial microformats**
The XRF microformat is an [optional](#Progressive%20enhancement) text heuristics which applications can detect across various usecases.
#### via HTML webpage
If the browser/application requests an webpage (`https://nlnet.nl` e.g.) it should check for the [rel-me microformat](https://gmpg.org/xfn/) :
```
<link rel="alternate" as="spatial-entrypoint" href="scene.xrf.glb">
```
This way the application loads `https://nlnet.nl/scene.xrf.glb` when the user types `nlnet.nl` into the URLbar.<br>
Optionally, `type` can be specified for dynamically generated 3D files:
```
<link rel="alternate" as="spatial-entrypoint" href="https://worlds.org/scene.php#platformB" type="model/gltf+binary" />
```
The `type`-attribute is for fallback-purposes.<br>
Viewer-supported 3D file-extensions (`.glb` e.g.) will **ALWAYS** take precedence over the (non)presence of the `type` attribute.<br>
The reason is that platforms (Mastodon 'labels' e.g.) don't allow specifying type-attributes.<br>
Another reason is that XR Fragments is filetype-agnostic, so flexibility is expected on the viewer-side.
> NOTE: in case of multiple 3D files mentioned in `<link rel="me"`, only the first (supported 3D filetype) will be chosen.
Example of multiple spatial microformats:
```
<link rel="alternate" as="spatial-entrypoint" href="scene.xrf.glb"/>
<link rel="me" href="myavatar.vrm"/>
<!-- JanusXR microformat https://github.com/jbaicoianu/janusweb
<FireBoxRoom>
<Assets>
<assetobject id="experience" src="scene.xrf.glb"/>
</Assets>
<Room>
<object pos="0 0 0" collision_id="experience" id="experience" />
</Room>
</FireBoxRoom>
-->
```
#### via WebFinger
When John has an account on foo.com, how can other applications request his 3D homepage by simply entering `john@foo.com`?
> Answer: it can be requested at `https://foo.com/.well-known/webfinger?resource=acct:john@foo.com`, resulting in:
```
{
"subject": "acct:john@foo.com",
"aliases": [
"https://mastodon.example/social/john",
"https://john.foo.com",
"https://3d.john.foo.com/model/scene.glb"
],
"properties": {
"http://schema.org/name": "John Doe",
"http://schema.org/description": "Developer, 3D Enthusiast, and Social Explorer"
},
"links": [
{
"rel": "http://ostatus.org/schema/1.0/subscribe",
"template": "https://mastodon.example/social/john/{uri}"
},
{
"rel": "self",
"type": "text/html",
"href": "https://john.foo.com"
},
{
"rel": "me",
"type": "text/html",
"href": "https://john.foo.com"
},
{
"rel": "me",
"type": "model/gltf+binary",
"href": "https://3d.john.foo.com/model/avatar.vrm"
},
{
"rel": "scene",
"type": "model/gltf+binary",
"href": "https://3d.john.foo.com/model/scene.xrf.glb"
}
]
}
```
This way the application will load `https://3d.john.foo.com/model/scene.glb` when the user types `john@foo.com` into the user field.
#### via Text (URI)
Another way for an application to trigger loading a 3D scene is by detecting URI's of 3D scene-files any text:
* `foo.glb` (or any other popular 3D extension)
* `https://foo.com/scene.glb` (or any other popular protocol)
This way, the application can highlight the link whenever it detects the URI (in a text-file or text-section of a 3D model)
## Overlap with fileformat-specific extensions
Some 3D scene-fileformats have support for extensions.

File diff suppressed because one or more lines are too long