+
Skip to content

XR-Tag/xr-tag

Repository files navigation

XR-Tag

A declarative framework for creating virtual reality games.

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>XR-Tag Demo</title>
    <style>html,body{overflow:hidden;width:100%;height:100%;margin:0;padding:0;}</style>
    <script type="module" src="https://esm.sh/xr-tag@0.1.0/register"></script>
  </head>
  <body>
    <xr-scene id="scene">
      <xr-camera id="camera" type="free" position="0, 5, -10"></xr-camera>
      <xr-light id="light" type="hemispheric" direction="0, 1, 0" intensity="0.7"></xr-light>
      <xr-sphere id="sphere" position="0.0, 1.0, 0.0" radius="1"></xr-sphere>
    </xr-scene>
  </body>
</html>

Features

Declarative🦢 • XR-Tag makes it easy for anyone to create their own games. Thanks to HTML, you can focus on what you want, not how to do it.

Data-driven🎯 • Data is the heart of every video game, and XR-Tag was designed with this in mind. Simply describe where you want your data to flow from and to, and we'll take care of the rest.

High Performance🚀 • The highest priority of XR-Tag is to provide immersive experiences. Even the tiniest bit of latensy can ruin your entire game. By using Babylon.js, XR-Tag does everything it can to coax the maximum amount of performance out of your system.

Cross-platform🌎 • XR-Tag works in every browser and headset. Even if AR or VR is unavailable, XR-Tag games will still play fine in 3D.

Modern Standards🧑‍💻 • Features like ESM and Web Components are powerful and highly optimized tools that are essential for developer ergonomics. The web always wins in the end, so XR-Tag tries to work with it rather than against it.

Written in TypeScript🚸 • Type-safety is non-negotiable for developing a large-scale project. XR-Tag was designed to scale, and a large part of that is making sure TypeScript is enabled for creating and customizing new elements.

Accessible♿ • One of the biggest under-explored opportunities of VR is the chance to allow people with disabilities to play, and XR-Tag intends to correct this.

Running Smilophobe

To run the Smilophobe demo, first clone the repository and build the project:

npm install
npm run build

After that, run Smilophobe from the demos/ folder:

cd demos
cd smilophobe
npm install
npm run dev

After that, open http://localhost:5173/ in a web browser. Please note that WebXR requires HTTPS unless localhost is being used.

Funding

XR-Tag needs your help to survive. Please consider donating or funding XR-Tag to continue development.

TODO

  • Should package name include a namespace (https://esm.sh/@xr-tag/xr-tag@0.1.0/register, https://esm.sh/@xr-tag/core@0.1.0/register)?
  • Rename object3D member to mesh because the former only comes from Three's Object3D class?

License

Copyright © XR-Tag authors.

Available under the MIT license.

About

Declarative WebXR framework using Babylon.js and Web Components.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载