shawwn-exokit

Javascript web browser for the post-screen world

Usage no npm install needed!

<script type="module">
  import shawwnExokit from 'https://cdn.skypack.dev/shawwn-exokit';
</script>

README

Exokit

Javascript post-screen AR/VR/WebXR engine 🦖

Slack Github releases npm package Travis CI build status Appveyor build status Twitter Follow

Quickstart

Download for current OS

Build your own

git clone https://github.com/webmixedreality/exokit.git
cd exokit
npm install
node . # or node -h for home

Run a WebGL/WebXR site

exokit https://emukit.webmr.io/ # start Emukit in Exokit

Introduction

Screenshots

Exokit is a post-screen web engine.

It loads regular HTML5 pages using standards like:

  • WebGL
  • WebXR
  • WebAudio
  • Etc.

It's designed for WebGL, WebGL2, WebXR, and immersive AR/VR. It's faster than Chrome, extensible and embeddable into other environments.

The catch? It doesn't do 2D. (But it comes with a build of Chromium, which does.)

It can open blend multiple WebXR sites at a time with "reality tabs".

Exokit is agnostic about how you write your code. It works with frameworks like THREE.js, A-Frame, Babylon.js, and web builds of Unity.

Architecture

Exokit is a Javascript Node.js module.

Lightweight C++ bindings hook into WebGL, WebXR, Magic Leap, Leap Motion, and various other device APIs.

It's also extensible and embeddable -- you can add your own things to the browser core, and const {window} = require('exokit')() to get an immersive browser in another project.

Exokit runs on Windows, macOS, Linux (x64), and Linux (ARM64).

Web API support

  • HTTP/S
  • HTML5
  • <script>
  • DOM
  • WebGL
  • WebXL
  • Canvas2D
  • WebSocket
  • Web Workers
  • <img>, <audio>, <video>
  • WebAudio
  • Keyboard/Mouse events
  • Gamepad API
  • <iframe>
  • No HTML layout
  • No HTML rendering
  • No CSS
  • No Legacy APIs

Hardware bindings

  • OpenGL
  • OpenVR (Steam VR)
  • Magic Leap
  • Leap Motion

Why Exokit?

  • You want your WebGL/WebXR to run fast.
  • You want the hot new web APIs.
  • You want to add your own integrations -- including native -- into a browser environment.
  • You want a lightweight browser as a hackable node module.
  • You want to combine the web with a 3D engine like Unity.

Why not Exokit?

  • You're looking for a "web browser".
  • You don't care about 3D or mixed reality.
  • You're looking for strict and/or legacy standards support.

Debugging

Uses ndb.

npm run debug

Then in the console, input:

let window = await require('./index').load(yourUrl);

Now you have a handle on the window object as you test your application, and you can set debugger breakpoints and such.

Keyboard

Keyboard

Community

Contributors