:dark_sunglasses: Native VR and AR engine for JavaScript 🦖
Find more examples here and on YouTube.
This project enables developers to build XR experiences using the same code that runs on the web. Exokit engine is written on top of Node and emulates a web browser, providing native hooks for WebGL, WebXR, WebAudio, and other APIs used in immersive experiences.
:eyeglasses: Exokit currently targets the following platforms:
* not supported yet
:electric_plug: Since Exokit supports anything that runs on the web, it powers experiences built with:
:thumbsup: Why Exokit?
:thumbsdown: Why not Exokit?
:book: Manifesto
exokit https://aframe.io/a-painter/ # start A-Painter in Exokit
mldb connect 192.168.0.10:1131 # mldb needs to be connected; see MLDB documentation
mldb install -u exokit.mpk # downloaded or built package
mldb launch com.webmr.exokit -v "ARGS=node . file:///package/examples/hello_ml.html" # or URL to load
mldb log exokit:*
Exokit is a Javascript Node.js module.
C++ bindings hook into WebGL, WebXR, Magic Leap, Leap Motion, and various other device APIs.
const {window} = require('exokit')()
to get an immersive browser in another project.
Exokit runs on Windows, macOS, Linux (x64), Linux (ARM64), and Magic Leap (ARM64).
<script>
<img>
, <audio>
, <video>
<iframe>
See full building instructions in BUILDING.md.
git clone https://github.com/exokitxr/exokit.git
cd exokit
npm install
node . <url> # or node . -h for home
Uses ndb.
npm run debug
Then in the console, input:
let window = await require('./src/').load(yourUrl);
Now you have a handle on the window object as you test your application, and
you can set debugger
breakpoints, inspect memory, profile CPU, etc.
--xr webvr
Makes exokit WebVR mode regardless of the webpage. If exokit is always opening in pancake mode you can use this to try to fix that.Get involved! Check out the Contributing Guide for how to get started.
This program is free software and is distributed under an MIT License.