All Projects → exokitxr → Exokit

exokitxr / Exokit

Licence: mit
Native VR/AR/XR engine for JavaScript 🦖

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Exokit

Three.js
JavaScript 3D Library.
Stars: ✭ 78,237 (+9570.83%)
Mutual labels:  webgl, virtual-reality, canvas, webxr
Unity Webxr Export
Develop and export WebXR experiences using Unity WebGL
Stars: ✭ 130 (-83.93%)
Mutual labels:  webgl, virtual-reality, webvr, webxr
Engine
Fast and lightweight JavaScript game engine built on WebGL and glTF
Stars: ✭ 6,890 (+751.67%)
Mutual labels:  webgl, virtual-reality, webvr, webxr
Moonrider
🌕🏄🏿 Surf the musical road among the stars. Side project built by two people in a few months to demonstrate WebXR.
Stars: ✭ 292 (-63.91%)
Mutual labels:  webgl, browser, webvr, webxr
Networked Aframe
A web framework for building multi-user virtual reality experiences.
Stars: ✭ 803 (-0.74%)
Mutual labels:  webrtc, virtual-reality, webvr, webxr
Worlds2
Building Virtual Reality Worlds using Three.js
Stars: ✭ 34 (-95.8%)
Mutual labels:  webgl, virtual-reality, webvr
Nunustudio
Web powered cross-platform 3D, WebXR game engine.
Stars: ✭ 1,302 (+60.94%)
Mutual labels:  webgl, webvr, webxr
Patches
Patches is a visual programming editor for building WebVR and WebGL experiences.
Stars: ✭ 164 (-79.73%)
Mutual labels:  webgl, virtual-reality, webvr
Webar Article
WebAR-Article is a responsive and information rich website that is progressively enhanced with Augmented Reality content exposed through experimental web technologies.
Stars: ✭ 225 (-72.19%)
Mutual labels:  webgl, webvr, webxr
Babylon.js
Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.
Stars: ✭ 15,479 (+1813.35%)
Mutual labels:  webgl, webvr, webxr
webvrrocks
Your guide to Virtual Reality in the browser.
Stars: ✭ 116 (-85.66%)
Mutual labels:  webvr, virtual-reality, webxr
Webxr Polyfill
Use the WebXR Device API today, providing fallbacks to native WebVR 1.1 and Cardboard
Stars: ✭ 251 (-68.97%)
Mutual labels:  virtual-reality, webvr, webxr
Remixvr
RemixVR is a tool for collaboratively building customisable VR experiences.
Stars: ✭ 129 (-84.05%)
Mutual labels:  virtual-reality, webvr, webxr
Ideaspace
😎 Create interactive 3D and VR web experiences for desktop, mobile & VR devices
Stars: ✭ 344 (-57.48%)
Mutual labels:  virtual-reality, webvr, webxr
Taro
A lightweight 3D game engine for the web.
Stars: ✭ 345 (-57.35%)
Mutual labels:  webgl, canvas, webxr
MixedRealityResources
Mixed Reality related resources
Stars: ✭ 190 (-76.51%)
Mutual labels:  webvr, virtual-reality, webxr
Troika
A JavaScript framework for interactive 3D and 2D visualizations
Stars: ✭ 342 (-57.73%)
Mutual labels:  webgl, canvas, webxr
Aframe Inspector
🔍 Visual inspector tool for A-Frame. Hit *<ctrl> + <alt> + i* on any A-Frame scene.
Stars: ✭ 469 (-42.03%)
Mutual labels:  virtual-reality, webvr
Detect Gpu
Classifies GPUs based on their 3D rendering benchmark score allowing the developer to provide sensible default settings for graphically intensive applications.
Stars: ✭ 460 (-43.14%)
Mutual labels:  webgl, browser
Spritejs
A cross platform high-performance graphics system.
Stars: ✭ 4,712 (+482.45%)
Mutual labels:  webgl, canvas

Exokit

Exokit

🕶 Native VR and AR engine for JavaScript 🦖

SiteDocsDiscordTwitterEmail List

Examples

Hands Reality Tab Live Reload Magic Leap Tutorial Reality Tab

Reality Projection with HTC Vive and Magic Leap Emukit Various Exokit Apps

Find more examples here and on YouTube.

Overview

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.

👓 Exokit currently targets the following platforms:

  • OpenVR Desktop VR (Steam compatible)
  • Oculus Desktop (Oculus Rift/Rift S)
  • Oculus Mobile (Oculus Quest/Go, GearVR)
  • Magic Leap
  • iOS ARKit *
  • Android ARCore *
  • Google VR (Daydream / Cardboard / Mirage Solo) *
  • any XR device, start a pull request with a native binding if it isn't listed here! *

* not supported yet

🔌 Since Exokit supports anything that runs on the web, it powers experiences built with:

  • Three.js
  • Unity
  • Pixi.js
  • Babylon.js
  • A-Frame
  • Custom WebGL frameworks
  • WebAssembly, TypeScript, and any language that transpiles to JavaScript

👍 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 traditional "web browser".
  • You don't care about 3D or mixed reality.
  • You're looking for strict and/or legacy standards support.

📖 Manifesto

  • The future is immersive. The web is the best application platform. Javascript is the best ecosystem.
  • Content should be hardware agnostic. Tomorrow will have different hardware. VR and AR should be compatible.
  • It's not possible to do both 2D and 3D well. We don't do 2D. We can use an external 2D browser.
  • Use your favorite game engine. Exokit is not a game engine.
  • Legacy browser design choices don't make sense in XR.
  • Exokit empowers and connect apps, even (especially) if they aren't designed to cooperate.
  • Apps should run in "reality tabs", layers of reality that blend together.

Quickstart

Desktop

Download for current OS

Run a WebXR site (desktop)

exokit https://aframe.io/a-painter/ # start A-Painter in Exokit

Magic Leap

Download for Magic Leap

Run (Magic Leap device)

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:*

Architecture

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).

Web API support

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

Hardware bindings

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

Local Development

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

Debugging

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.

Flags

  • --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.

Stay in Touch

Contributing

Get involved! Check out the Contributing Guide for how to get started.

License

This program is free software and is distributed under an MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].