xrhf/index.html

454 lines
20 KiB
HTML
Raw Normal View History

2026-02-05 17:47:13 +01:00
<!doctype html>
<html lang="en" _data-theme="light">
<head>
<meta charset="utf-8">
<title>XR Hypermedia Federation 🥽</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="color-scheme" content="light dark">
<meta name="description" content="XR Hypermedia Federation 🥽" />
<meta name="publisher" content="XR Hypermedia Federation" />
<meta name="author" content="Leon van Kammen - XR Hypermedia Federation"/>
<link rel="stylesheet" href="asset/css/pico.min.css"/>
<link rel="stylesheet" type="text/css" href="asset/css/style.css" />
</head>
<body>
<header class="container">
<div id="logo"></div>
<div id="hint"></div>
<hgroup style="margin-top:12px">
<h1 style="opacity:0;position:absolute;">XR Hypermedia Federation</h1>
2026-02-05 17:47:13 +01:00
</hgroup>
<div class="clear"></div>
2026-02-05 17:47:13 +01:00
</header>
<!-- ./ Header -->
<!-- Main -->
<main class="container">
<h2>Digital commons for XR hypermedia 🥽</h2>
2026-02-05 17:47:13 +01:00
<div class="telescopic">
We connect, and <b>help fund</b> open XR ecosystems 🥦<br>
2026-02-06 12:22:31 +01:00
We support <b>public local-first</b> AR/VR/MR
2026-02-05 17:47:13 +01:00
<u tabindex="0">highways
<span>, seamlessly connected XR experiences: public <b>XR hypermedia</b>.
</span>
</u>
without
<u tabindex="0">obstacles 🈚
<span>like appstores, rent-seeking, blockchain-minting etc</span>
</u>
<br>
<div id="xrecosystem"></div>
We encourage <b>XR translator-development</b> for viewing existing
2026-02-05 17:47:13 +01:00
<u tabindex="0">ecosystems
<span>like the 2D web, or file-collections</span>
</u> <b>spatially</b> using open
2026-02-05 17:47:13 +01:00
<u tabindex="0">protocols 🔌
<span>: <a href="https://en.wikipedia.org/wiki/RSS" target="_blank">RSS</a>, HTML, <a href="https://janusxr.org/docs/build/introtojml/index.html" target="_blank">JML</a>, Fediverse's <a href="https://activitypub.rocks/" target="_blank">ActivityPub</a> and <a href="https://xrfragment.org">URI's using XR Fragments</a> e.g.</span>
</u>
<br>
<div class="banner">
<div id="banner"></div>
</div>
Our
<u tabindex="0">mission
<span>
<blockquote>
<cite>
to promote the exchange of <b>electronic spatial experiences</b> and all that is related or beneficial to that purpose
</cite>
</blockquote>
</span>
</u>
100% piggybacks <a href="https://nlnet.nl/foundation" target="_blank">NLnet</a> and
<u tabindex="0">European
<span>values: European Digital Rights and Principles to promote feelgood XR experiences for everybody.<br>
<div id="euvalues"></div>
</span>
</u>
, American <a href="https://www.state.gov/wp-content/uploads/2022/04/Declaration-for-the-Future-for-the-Internet.pdf" target="_blank">DFI</a>-values, narrowed down to <b>OpenSource</b> XR experiences via <b>link traversal</b>.<br>
2026-02-05 17:47:13 +01:00
</div>
<br>
<blockquote>
<div id="lvk"></div>
<cite>
"XR hypermedia enables cost-efficient spatial education for societies, and speeds up innovation by hyperlinking XR experiences."<br>
2026-02-05 17:47:13 +01:00
</cite>
2026-02-05 17:47:13 +01:00
<br><b>Leon van Kammen</b> / Founder, Strategy Director / <a href="https://mastodon.online/@lvk" target="_blank">@lvk@mastodon.online</a>
</blockquote>
<center>
<button onclick="alert('Hi there!\nPlease send a mail to\n\nleonvankammen+xrhf @ isvery.ninja\n\nthanks!')" style="padding:30px;margin:20px">Contact us</button>
2026-02-05 17:47:13 +01:00
<br/>
<br/>
</center>
<div class="spectrum">
<div></div>
<div></div>
</div>
2026-02-05 17:47:13 +01:00
<div id="cards">
<h3 id="projects">XR Digital Commons:&nbsp;&nbsp;</h3>
<input type="radio" id="reset" name="color"/>
<label for="reset"><kbd>#all</kbd></label>
2026-02-05 17:47:13 +01:00
<input type="radio" id="protocol" name="color" />
<label for="protocol"><kbd>#protocol</kbd></label>
<input type="radio" id="openlearning" name="color"/>
<label for="openlearning"><kbd>#openlearning</kbd></label>
<input type="radio" id="browser" name="color"/>
<label for="browser"><kbd>#xrbrowser</kbd></label>
2026-02-05 17:47:13 +01:00
<input type="radio" id="xrdiscovery" name="color"/>
<label for="xrdiscovery"><kbd>#xrdiscovery</kbd></label>
<input type="radio" id="xrtranslator" name="color"/>
<label for="xrtranslator"><kbd>#xrtranslator</kbd></label>
<input type="radio" id="worldpreservation" name="color"/>
<label for="worldpreservation"><kbd>#worldpreservation</kbd></label>
2026-02-05 17:47:13 +01:00
<br/>
<br/>
<div class="tile xrdiscovery">
<div id="xrforge" class="thumb"></div>
<a class="description" href="https://xrforge.isvery.ninja" target="_blank">
<b>XR Forge</b> is a selfhostable platform for JanusWeb/File-based XR Experiences.
#cost-efficient #collaboration #Universities #E-learning
</a>
</div>
<div class="tile worldpreservation">
<div id="nexus" class="thumb"></div>
<a class="description" href="https://github.com/TheNexusCity/TheNexus" target="_blank">
The Nexus is an open source, community-driven, CC0 city for open virtual worlds.<br>
#3Dmodels #CreativeCommons
</a>
</div>
<div class="tile worldpreservation">
<div id="lobby" class="thumb"></div>
<a class="description" href="https://github.com/madjin/webxr-lobby" target="_blank">
Opensource Lobby models as 'startingpage' for virtual worlds.<br>
A lobby is an entry-space with doors to other spaces.<br>
</a>
</div>
2026-02-05 17:47:13 +01:00
<div class="tile protocol">
<div id="xrfragment" class="thumb"></div>
<a class="description" href="https://xrfragment.org" target="_blank">
XR (URI) Fragments is a browser-protocol for
spatial anchors in URLs (to 3D files).<br>
In <b>gamer language</b>: spawnpoints via URLs.
</a>
</div>
<div class="tile xrbrowser">
2026-02-05 17:47:13 +01:00
<div id="januswebbrowser" class="thumb"></div>
<a class="description" href="https://coderofsalvation.github.io/janus-guide/" target="_blank">
<b>JanusWeb</b> browses the XR web inside the web.<br>
Its JML syntax allows regular webpages to project a 3D version.<br>
It also supports 3D files via XR URLs/Fragments.
2026-02-05 17:47:13 +01:00
</a>
</div>
<div class="tile openlearning">
<div id="biggu_s_gate" class="thumb"></div>
<a class="description" href="https://git.benetou.fr/utopiah/biggu_s_gate" target="_blank">
<b>Biggu's Gate</b> is self-hostable web-software to remix simple pedagogical XR games. Learners themselves can then, together with parents and teachers.
</a>
</div>
<div class="tile xrtranslator">
2026-02-05 17:47:13 +01:00
<div id="translators" class="thumb"></div>
<div id="janusweb" class="thumb hue-1" style="background-position: 50% 77px"></div>
<a class="description" href="https://coderofsalvation.github.io/janus-guide/#/wiki/translators" target="_blank">
JanusWeb's <b>XR translators</b> spatialize the web, embedding webstandards like (RSS/HTML) and popular fediverse platforms (peertube/mastodon e.g.).<br>
</a>
</div>
<div class="tile worldpreservation">
<div id="archive_org" class="thumb"></div>
<div id="janusweb" class="thumb hue-2" style="background-position: 50% 77px"></div>
<a class="description" href="https://github.com/jbaicoianu/janusweb">
The XRForge project is currently implementating ways to prevent link / virtualworld <b>rot</b> by integrating backups to <b>archive.org</b>.
2026-02-05 17:47:13 +01:00
</a>
</div>
<div class="tile xrdiscovery">
<div id="searxr" class="thumb"></div>
<a class="description" href="https://searxr.me" target="_blank">
<b>SearXR</b> is a SearX-based meta-searchengine for <b>WebXR</b> experiences.
</a>
</div>
<div class="tile xrtranslator">
<div id="xrshthumb" class="thumb"></div>
2026-02-05 17:47:13 +01:00
<a class="description" href="https://xrsh.isvery.ninja" target="_blank">
<b>XRSH</b> is a Linux Shell for <b>WebXR</b>, which makes the Linux ecosystem of cli-tools available in <b>WebXR</b>.
</a>
</div>
2026-02-06 12:22:31 +01:00
<div class="tile xrbrowser">
2026-02-06 12:22:31 +01:00
<div id="aframeverse" class="thumb"></div>
<a class="description" href="https://github.com/coderofsalvation/aframe-verse" target="_blank">
AFRAME-verse was a XR Hypermedia network-experiment which traverses crossdomain AFRAME XR experiences seamlessly. The learnings became the fundament for the XR (URI) Fragments.<br>
2026-02-06 12:22:31 +01:00
</div>
</a>
</div>
<div class="tile xrbrowser">
<div id="elfa" class="thumb"></div>
<a class="description" href="https://fosstodon.org/@elfa" target="_blank">
<b>ELFA</b> is a suite of <b>E</b>verything <b>L</b>ocal<b>F</b>irst<b> A</b>pplications, an integrated Suite of Apps, integrated with VR/XR.<br>
</a>
</div>
2026-02-05 17:47:13 +01:00
<div class="clear"></div>
</div>
<br>
<div class="spectrum">
<div></div>
<div></div>
</div>
2026-02-05 17:47:13 +01:00
<!-- The Timeline -->
<center>
<h3>Timeline</h3>
</center>
<ul class="timeline" id="timeline">
<!-- Item 1 -->
<li id="janusxr">
<div class="direction-r">
<div class="flag-wrapper">
<span class="flag">JanusXR / JML syntax</span>
2026-02-05 17:47:13 +01:00
<span class="time-wrapper"><span class="time">2013</span></span>
</div>
<div class="desc">URL-linked virtual worlds (JanusVR) by James McCrae (incl. URL portalsystem). Rebrands in 2020 to (opensource) <b>JanusXR</b> with focus on <a href="https://github.com/jbaicoianu/janusweb" target="_blank">janusweb</a>. First <b>convincing</b> VR-headset-compatible <b>user-operated</b> spatial web, used by more than thousands of users.
2026-02-05 17:47:13 +01:00
<br><br>
2026-02-05 17:47:13 +01:00
<div id="janus1"></div>
</div>
</div>
</li>
<li id="searxr">
<div class="direction-l">
<div class="flag-wrapper">
<span class="flag">SearXR Funded</span>
<span class="time-wrapper"><span class="time">2020</span></span>
</div>
<div class="desc">
NLnet #NGI #EU funds <a href="https://searxr.me" target="_blank">SearXR</a> an opensource selfhostable meta-searchengine for <b>public</b> URL-based virtual worlds.<br>
<div id="searxr" style="width:250px; height:250px;display:inline-block;border-radius:7px"></div>
</div>
</div>
</li>
2026-02-05 17:47:13 +01:00
<!-- Item 3 -->
<li>
<div class="direction-r">
2026-02-05 17:47:13 +01:00
<div class="flag-wrapper">
<span class="flag">Facebook rebrand</span>
<span class="time-wrapper"><span class="time">2021</span></span>
</div>
<div class="desc">8 years after <b>JanusXR</b>, Facebook attempts similar 'metaverse', but proprietary and centralized</b> (rebrands to 'Meta')</div>
2026-02-05 17:47:13 +01:00
</div>
</li>
<li>
<div class="direction-l">
2026-02-05 17:47:13 +01:00
<div class="flag-wrapper">
<span class="flag">XR Fragments Funded</span>
<span class="time-wrapper"><span class="time">2021</span></span>
</div>
<div class="desc">NLnet #NGI #EU funds <a href="https://xrfragment.org" target="_blank">XR URI Fragments</a> by Leon van Kammen. Standardisation of spatial anchors in <b>URI's</b>. It got adopted by startups like Alkebulan, and was coincedentally (already) implemented by <a href="https://github.com/jbaicoianu/janusweb" target="_blank">janusweb</a> (independent simultanious innovation 💡).
2026-02-05 17:47:13 +01:00
<br>
<div id="xrflogo" style="display:inline-block;"></div>
</div>
</div>
</li>
<li>
<div class="direction-r">
<div class="flag-wrapper">
<span class="flag">XRSH funded</span>
<span class="time-wrapper"><span class="time">2021</span></span>
</div>
<div class="desc">First ever in-WebXR Terminal running an actual Linux ISO. This researchproject basically brings the opensource linux ecosystem to otherwise closed proprietary headsets. Aerospace engineers have reported to be using it.</div>
<br>
<div id="xrsh" style="display:inline-block;"></div>
</div>
</div>
</li>
<li>
<div class="direction-l">
<div class="flag-wrapper">
<span class="flag">HAN University collab</span>
<span class="time-wrapper"><span class="time">2024</span></span>
</div>
<div class="desc">
<a href="https://han.nl">HAN University</a> uses <a href="https://xrfragment.org" target="_blank">XR (URL) Fragments</a> while researching VR accessibility. One of the results of this collaboration is the addition of <a href="https://xrfragment.org/doc/RFC_XR_Fragments.html#two-button-navigation" target="_blank">2-button navigation</a> to the XR Fragments spec.
<br>
<div id="hanlogo" style="display:inline-block;"></div>
</div>
</div>
</li>
<li>
<div class="direction-r">
<div class="flag-wrapper">
<span class="flag">XRForge funding</span>
<span class="time-wrapper"><span class="time">2025</span></span>
</div>
<div class="desc">
<a href="https://xrforge.isvery.nl">XRForge</a> streamlines the design, collaboration, deployment, hosting, and integration of portable XR experiences - and thus further simplify embedding, cross-platform support and hosting, as well as add vendor specific support.
<br>
<div id="xrforge" style="display:inline-block;width:250px;height:200px;border-radius:7px"></div>
</div>
</div>
</li>
<li>
<div class="direction-l">
<div class="flag-wrapper">
<span class="flag">ELFA funding</span>
<span class="time-wrapper"><span class="time">2025</span></span>
</div>
<div class="desc">
ELFA, a suite of local-first applications with VR/XR integration, got funded by EU's <a href="https://commission.europa.eu/funding-tenders/find-funding/eu-funding-programmes/horizon-europe_en" target="_blank">Horizon Europe</a>.
<br>
</div>
</div>
</li>
2026-02-05 17:47:13 +01:00
</ul>
<div class="spectrum">
<div></div>
<div></div>
</div>
<center>
<h3>Supporter of Open XR Hypermedia stacks</h3>
<div style="max-width:945px;">
<a href="https://coderofsalvation.github.io/janus-guide/" target="_blank">
<img src="asset/img/janusxr-xrf.png"/>
</a>
<br>
<blockquote style="max-width:945px;">
<div id="jin"></div>
<cite>
"(Even after 12 years) I still think Janus had the most right ideas"
</cite>
<br><b>Jin</b> / FOSS VR/AR digital artist and advocate
</blockquote>
<br>
</div>
</center>
<div class="spectrum">
<div></div>
<div></div>
</div>
<h3 id="faq">Funding FAQ</h3>
2026-02-05 17:47:13 +01:00
<b>Q: Are we talking VC-money?</b><br>
<b>A:</b> Think microgrants / no-cure-no-pay funding of digital commons, think <a href="https://en.wikipedia.org/wiki/Cosmopolitan_localism" target="_blank">cosmolocalism</a>.
<hr/>
2026-02-06 12:22:31 +01:00
<b>Q: Is it easy to get (my game) funded (made with Unity/Unreal)?</b><br>
<b>A:</b> Indirectly funding/promoting proprietary engines with public money is tough (public money public code).<br>
<hr/>
<b>Q: Which Open XR engines are preferred?</b><br>
2026-02-06 12:22:31 +01:00
<b>A:</b> Preferred are Fully Opensource XR <b>Browser</b>engines like:
<ul>
<li><a href="https://github.com/jbaicoianu/janusweb" target="_blank">JanusWeb (WebXR) ♥️</a></li>
2026-02-06 12:22:31 +01:00
</ul>
Or roll your own XR hypermedia browser (via <a href="https:/xrfragment.org" target="_blank">XR Fragments</a> e.g.):
<ul>
<li><a href="https://godot.org" target="_blank">Godot (OpenXR/WebXR)</a></li>
<li><a href="https://lovr.org" target="_blank">loVR (OpenXR)</a></li>
<li><a href="https://threejs.org" target="_blank">THREE.js (WebXR)</a></li>
<li><a href="https://babylonjs.com" target="_blank">Babylon.js (WebXR)</a></li>
<li><a href="https://monado.dev/" target="_blank">Monado (OpenXR)</a></li>
</ul>
♥️ = janusweb has the highest local-first XR hypermedia-support, see <a href="https://coderofsalvation.github.io/janus-guide/#/wiki/translators" target="_blank">translators</a>, <a href="https://coderofsalvation.github.io/janus-guide/#/wiki/polyglot-files" target="_blank">polyglot</a> and <a href="https://coderofsalvation.github.io/janus-guide/#/wiki/addressibility" target="_blank">addressibility</a> and runs on desktop/phone/headset all-at-once.
<blockquote>
Contact us in case you've got questions
</blockquote>
<hr/>
<b>Q: Regarding hyperlinking, is linking to a webpage enough?</b><br>
<b>A:</b> Most games or WebXR-sites are shallow-linked disjointed XR experiences via appstores (not hypermedia), basically:
<blockquote>
<cite>
2026-02-06 12:22:31 +01:00
"We don't want customers to leave our premise"
</cite>
</blockquote>
2026-02-06 12:22:31 +01:00
A much more interesting is <b>seamless XR hypermedia</b> surfing: by interlinking 3D files <b>immersively</b> via <a href="https://xrfragment.org" target="_blank">(XR Fragment) URLs</a> or <a href="https://coderofsalvation.github.io/janus-guide/" target="_blank">JanusWeb</a>.<br>See the difference below:<br><br>
<img src="asset/img/xrhypermedia.jpg" style="width:100%;border-radius:7px;max-width:900px;filter: invert(1) hue-rotate(155deg)"/>
<blockquote>
<b>Rule of thumb</b>: if the XR content can be selfhosted <b>by users</b> separately from <b>the XR viewer</b>, you're on the right track.
</blockquote>
<hr/>
<b>Q: How important is security?</b><br>
<b>A:</b> It depends, The value of a digital common lies in its liquidity. If you wrap public-domain content in restrictive security layers (like heavy DRM or complex access controls), you destroy the "common" aspect. Since the content is meant to be seen and shared, there is no "secret" to protect. Attempts to ensure it isn't maliciously altered are saluted.
<hr/>
<b>Q: Crypto?</b><br>
<b>A:</b> Not really, regarding <b>payments</b> the issues currently are: price volatility and regulatory/AML compliance hurdles. Privacy mechanisms like <a href="https://www.taler.net/en/index.html" target="_blank">TALER</a> can be discussed though. <br>
<b>Minting virtual parcels via crypto-transactions</b>: unfortunately this does not qualify as 'local-first', and (un)intentionally enables rentseeking and first-mover-advantage.
2026-02-05 17:47:13 +01:00
<br>
<center>
<button onclick="alert('Hi there!\nPlease send a mail to\n\nleonvankammen+xrhf @ isvery.ninja\n\nthanks!')" style="padding:30px;margin:20px">Contact us</button>
<br/>
<br/>
</center>
2026-02-05 17:47:13 +01:00
<div class="footer">
<small>Jump to:</small>
<a href="#projects"><kbd>#projects</kbd></a>
<a href="#timeline"><kbd>#timeline</kbd></a>
<a href="#faq"><kbd>#getfunding</kbd></a>
<a href="#faq"><kbd>#faq</kbd></a>
2026-02-05 17:47:13 +01:00
</div>
</main>
<script>
// telescopic text:
// a JS cheat whicht allows persisting unfolds
// uncomment this if you really want this
([...document.querySelectorAll('u')]).map( (u) => {
u.addEventListener('click', e => e.target.className = 'show' )
});
</script>
</body>
</html>