diff --git a/doc/RFC_XR_Fragments.md b/doc/RFC_XR_Fragments.md index 4b8f6e3..ea84b34 100644 --- a/doc/RFC_XR_Fragments.md +++ b/doc/RFC_XR_Fragments.md @@ -116,6 +116,7 @@ It solves: 1. Interlinking text & spatial objects by collapsing space into a Word Graph (XRWG) to show [visible links](#visible-links) 1. unlocking spatial potential of the (originally 2D) hashtag (which jumps to a chapter) for navigating XR documents 1. refraining from introducing scripting-engines for mundane tasks (and preventing its inevitable security-headaches) +1. the gap between text an 3d objects: object-names directly map to hashtags (=fragments), which allows 3D to text transcription. > NOTE: The chapters in this document are ordered from highlevel to lowlevel (technical) as much as possible @@ -1038,10 +1039,12 @@ The following demonstrates a simple video player: ``` -# Author/Sharing metadata +# Additional scene metadata -XR Fragments does not contain static metadata attributes for this, but encourages browsers to scan nodes for the following custom properties: +XR Fragments does not aim to redefine the metadata-space by introducing its own cataloging-metadata fields. +Instead, it encourages browsers to scan nodes for the following custom properties: +* [SPDX](https://spdx.dev/) license information * [ARIA](https://www.w3.org/WAI/standards-guidelines/aria/) attributes (`aria-*: .....`) * [Open Graph](https://ogp.me) attributes (`og:*: .....`) * [Dublin-Core](https://www.dublincore.org/specifications/dublin-core/application-profile-guidelines/) attributes(`dc:*: .....`) @@ -1054,15 +1057,16 @@ Individual nodes can be enriched with such metadata, but most importantly the sc | metadata key | example value | |--------------------------------------------------------|-------------------------------------------------| -| `dc:creator` | `John Doe` | | `aria-description`, `og:description`, `dc:description` | `An immersive experience about Triceratops` (*) | +| `SPDX` | `CC0-1.0` | +| `dc:creator` | `John Doe` | | `dc:title`, `og:title` | 'Triceratops` (*) | | `og:site_name` | `https://xrfragment.org` | | `dc.publisher` | `NLNET` | | `dc.date` | `2024-01-01` | | `dc.identifier` | `XRFRAGMENT-001` | | `journal` (bibTeX) | `{Future Of Text Vol 3},` | -| Person (JSON-LD) | `{"@type":"Person",................}` | +| `Person` (JSON-LD) | `{"@type":"Person",................}` | > \* = these are interchangable (only one needs to be defined) diff --git a/example/aframe/sandbox/index.html b/example/aframe/sandbox/index.html index beb9e9a..6b024ea 100644 --- a/example/aframe/sandbox/index.html +++ b/example/aframe/sandbox/index.html @@ -47,6 +47,7 @@
This uses only open standards:
📦 surf 3D models using URLs
+ 🎞 interactive W3C Media Fragments and URI Templates
🧑‍🤝‍🧑 instant meetings inside hyperlinked 3D models
🚫 zero proprietary tech/game engines or platforms
🙈 unhosted, privacy-friendly, avatar-agnostic scenes
diff --git a/example/aframe/sandbox/other.glb b/example/aframe/sandbox/other.glb new file mode 120000 index 0000000..f068d54 --- /dev/null +++ b/example/aframe/sandbox/other.glb @@ -0,0 +1 @@ +../../assets/other.glb \ No newline at end of file diff --git a/example/assets/audio/nobodyhere.wav b/example/assets/audio/nobodyhere.wav new file mode 100644 index 0000000..86d2a52 Binary files /dev/null and b/example/assets/audio/nobodyhere.wav differ diff --git a/example/assets/index.glb b/example/assets/index.glb index b0f76a7..a15565b 100644 Binary files a/example/assets/index.glb and b/example/assets/index.glb differ diff --git a/example/assets/other.glb b/example/assets/other.glb new file mode 100644 index 0000000..3ab6707 Binary files /dev/null and b/example/assets/other.glb differ diff --git a/make b/make index f83bc90..aa5aea1 100755 --- a/make +++ b/make @@ -56,7 +56,8 @@ build(){ test -d src/3rd/js/aframe/build/aframe || git clone https://github.com/aframevr/aframe src/3rd/js/aframe/build/aframe --depth=1 curdir=$(pwd) cd src/3rd/js/aframe/build && cp three.module.js aframe/src/lib/. # override to add extra loaders like fbx/collada e.g. - cd aframe && npm run dist + #cd aframe && npm install && npm install troika-three-text && npm run dist + cd aframe && npm install && npm run dist cd "$curdir" cp src/3rd/js/aframe/build/aframe/dist/aframe-master.min.js dist/aframe.min.js test -f dist/aframe-blink-controls.min.js || { @@ -124,7 +125,7 @@ build(){ return $ok } - test -z $1 && { parser && js; } + test -z $1 && { parser && aframe && js; } test -z $1 || "$@" } diff --git a/src/3rd/js/aframe/build/three.module.js b/src/3rd/js/aframe/build/three.module.js index b82b158..d5683db 100644 --- a/src/3rd/js/aframe/build/three.module.js +++ b/src/3rd/js/aframe/build/three.module.js @@ -10,6 +10,7 @@ import { ColladaLoader } from 'super-three/examples/jsm/loaders/ColladaLoader'; import { MTLLoader } from 'super-three/examples/jsm/loaders/MTLLoader'; import * as BufferGeometryUtils from 'super-three/examples/jsm/utils/BufferGeometryUtils'; import { LightProbeGenerator } from 'super-three/examples/jsm/lights/LightProbeGenerator'; +//import {Text} from 'troika-three-text' var THREE = window.THREE = SUPER_THREE; @@ -26,5 +27,6 @@ THREE.ColladaLoader = ColladaLoader; THREE.OBB = OBB; THREE.BufferGeometryUtils = BufferGeometryUtils; THREE.LightProbeGenerator = LightProbeGenerator; +//THREE.Text = Text export default THREE; diff --git a/src/3rd/js/aframe/xrf-console.js b/src/3rd/js/aframe/xrf-console.js index d7aaa9b..78e133a 100644 --- a/src/3rd/js/aframe/xrf-console.js +++ b/src/3rd/js/aframe/xrf-console.js @@ -1,6 +1,8 @@ AFRAME.registerComponent('vconsole', { init: function () { //AFRAME.XRF.navigator.to("https://coderofsalvation.github.io/xrsh-media/assets/background.glb") + return + document.head.innerHTML += `