• This repository has been archived on 22/Jul/2024
  • Stars
    star
    459
  • Rank 95,377 (Top 2 %)
  • Language
    JavaScript
  • License
    Mozilla Public Li...
  • Created over 5 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

INACTIVE - WebXR emulator extension

WebXR emulator extension

WebXR emulator extension is a browser extension which helps your WebXR content creation. It enables you to responsively run WebXR applications on your desktop browser without the need of any XR devices.

Blog post / YouTube / Slides (in Japanese)

Screenshot

Features

Status

Browsers

This extension is built on top of WebExtensions API. It works on Firefox, Chrome, and other browsers supporting the API.

How to use

  1. Go to the addon stores to install (Firefox, Chrome)

  2. Go to WebXR application page (for example WebXR examples). You will notice that the application detects that you have a XR device (emulated) and it will let you enter the immersive (VR、AR) mode.

  3. Open "WebXR" tab in the browser developer tool (Firefox, Chrome) to controll the emulated devices. You can move the headset and controllers, and trigger the controller buttons. You will see their transforms reflected in the WebXR application.

WebXR tab

How to control the emulated devices

By clicking a device in the devtool panel, you can select gizmo mode of the device. By dragging a gizmo, you can rotate or translate the device.

Configuration

You can configure some settings from the top in the WebXR tab.

Device

You can switch emulated device. The difference between devices is just degrees of freedom and the number of controllers for now.

Device Description
None No device
Google Cardboard 3dof headset and no controller
HTC Vive 6dof headset and two 6dof controllers
Oculus Go 3dof headset and 3dof controller
Oculus Quest 6dof headset and two 6dof controllers
Samsung Gear VR 3dof headset and 3dof controller

Stereo Effect

You can enable/disable Stereo Effect which renders two views.

AR mode

WebXR emulator extension also supports AR. You can test WebXR AR application on an emulated device in a virtual room, on your desktop browser.

Screenshot AR

How to use

  1. Download and manually install the newest extension from dev branch

  2. Select "Samsung Galaxy S8+ (AR)" device from the device list on the top of WebXR devtool panel

  3. Go to WebXR application page, for example Three.js WebXR AR examples

  4. You will notice that the application detects that you have a XR device (emulated) and it will let you enter the immersive (AR) mode

  5. AR application starts on the emulated device in a virtual room

How to control

You can control the camera (view) and tablet in the application window.

user action camera/tablet control
Left mouse button drag Camera rotation
Right mouse button drag Camera pan
Middle mouse button drag or wheel Move camera forward/backward
Mouse click on the tablet Change the tablet gizmo mode
Gizmo on the tablet Tablet rotation/translation
Right mouse button click on the tablet screen touch input

How to control in the devtool panel

You can still control the camera and tablet in the devtool panel similar to VR.

Devtool panel AR virtual room
Camera View
Right controller Finger (not shown in the application window)
Left controller Tablet

For development

How to install the newest version

If you want to develop or debug this extension or if you want to use the under development (not released yet) version, download this repositoy and install the extension into your browser as developer mode. (Firefox, Chrome)

How to build polyfill/webxr-polyfill.js

polyfill/webxr-polyfill.js is created with npm.

$ git clone https://github.com/MozillaReality/WebXR-emulator-extension.git
$ cd WebXR-emulator-extension
$ npm install
$ npm run build

Note

  • Even if native WebXR API is available the extension overrides it with WebXR polyfill

WebXR examples

Kudos

Thanks to WebVR-Extension project, it was a true inspiration for us when building this one.

License

Mozilla Public License Version 2.0

More Repositories

1

FirefoxReality

INACTIVE - A fast and secure browser for standalone virtual-reality and augmented-reality headsets.
Java
769
star
2

unity-webxr-export

INACTIVE - Assets for creating WebXR-enabled Unity3D projects.
JavaScript
622
star
3

servo-unity

INACTIVE - Servo for Unity - experimental
C
317
star
4

hello-webxr

INACTIVE - Hello WebXR
JavaScript
288
star
5

vr-web-examples

Example VR enabled web pages.
JavaScript
205
star
6

hubs-blender-exporter

The Hubs Blender Add-on enables artists to export their creations to the immersive web with Mozilla Hubs
Python
165
star
7

webvr-spec

*** MOVED TO https://github.com/w3c/webvr ***
HTML
158
star
8

sechelt

INACTIVE - A virtual reality fly through of a 3D landscape, built with Three.js and Cinema 4D.
JavaScript
151
star
9

immersive-custom-elements

INACTIVE - Immersive Custom Elements
JavaScript
134
star
10

hubs-avatar-pipelines

Mozilla Hubs avatars and related assets for avatar customization.
95
star
11

panorama-viewer

A Three.js panorama viewer
JavaScript
93
star
12

webxr-ios-js

INACTIVE - A JS implementation of WebXR used *only* in Mozilla's WebXR Viewer
JavaScript
71
star
13

webvr-demos

Archived WebVR demos from Mozilla WebVR, circa GDC 2016.
JavaScript
63
star
14

blender-gltf-multiexport-addon

INACTIVE - Blender add-on to export multiple glTFs at once
Python
56
star
15

hubs-discord-bot

A Discord bot that helps you use Mozilla Hubs together with people in Discord.
JavaScript
47
star
16

hiro

JavaScript
42
star
17

jumpy-balls

INACTIVE - Example game with ecsy, three.js and ammo.js physics
JavaScript
34
star
18

gamepad-plus

INACTIVE - a superb library that extends the Gamepad API with super powers
JavaScript
34
star
19

webxr-geospatial

INACTIVE - A library that combines the Web geolocation API with WebXR to support geospatial AR
JavaScript
34
star
20

puzzle-rain

INACTIVE - A musical WebVR journey for the HTC Vive. Brought to you by Mozilla VR.
JavaScript
33
star
21

mred

INACTIVE - Mixed Reality Editor
JavaScript
27
star
22

xr-store

INACTIVE - A progressive XR demo. Powered by A-Frame.
JavaScript
23
star
23

FirefoxRealityPC

INACTIVE - Firefox Reality for PC-connected VR platforms
C#
22
star
24

hubs-docs

JavaScript
21
star
25

blender-gltf-behavior-graph

Tool for editing GLTF Behavior graphs in Blender (extremely experimental, opinionated for usage in Mozilla Hubs)
Python
20
star
26

webvr-addon

Mozilla WebVR Plus browser extension for Firefox
JavaScript
19
star
27

foxr-run

INACTIVE - Run Foxr, Run!
JavaScript
19
star
28

webgfx-tests

INACTIVE - Performance tests for canvas and webgl
JavaScript
19
star
29

MOZ_text

INACTIVE - MOZ_text glTF Extension
JavaScript
18
star
30

three-batch-manager

TypeScript
17
star
31

hubs-plugin-api

INACTIVE - Experimental Hubs plugin API discussion and evaluation
JavaScript
16
star
32

hubs-architecture-kit

JavaScript
14
star
33

vrb

INACTIVE - Support render library for FirefoxReality
C++
13
star
34

gltf-navmesh-generator

Small library and command line utility for generating precomputed navmesh data for aframe-extra's nav-mesh
JavaScript
12
star
35

botomatic

INACTIVE - Hubs Bot lambda
JavaScript
10
star
36

photomnemonic

Simple AWS Lambda service for grabbing web screenshots
JavaScript
10
star
37

lib-hubs

Common Hubs and Spoke libraries.
JavaScript
9
star
38

OpenWnn

INACTIVE - OpenWnn fork
C
9
star
39

vr-mozilla-org

INACTIVE - Source for Mozilla Mixed Reality static site
CSS
9
star
40

gltf-bundle

INACTIVE
JavaScript
9
star
41

hubs-glb-tools

Tools for working with glb files for Mozilla Hubs [WIP]
TypeScript
8
star
42

gltf-unlit-generator

INACTIVE
Rust
6
star
43

mr-social-assets

INACTIVE - Open Source Assets from the Social Mixed Reality Team
Mathematica
6
star
44

blender-behavior-graph-examples

A collection of Blender files demonstrating behavior graphs
6
star
45

webvr-libs

WebVR libraries
JavaScript
6
star
46

nearspark

AWS lambda service for creating image thumbnails
JavaScript
5
star
47

Hubs-Backup-Tool

A tool for baking up your Hubs instance account data
TypeScript
5
star
48

avatar-texture-tool

A resource for creating avatar textures for Hubs avatars
JavaScript
5
star
49

ecsy-webpack-boilerplate

INACTIVE - A simple boilerplate project for getting up and running with ECSY and Webpack.
JavaScript
5
star
50

fxr-cli

INACTIVE - A command-line tool for installing and automating the Firefox Reality virtual-reality browser.
JavaScript
4
star
51

gltf-content-hash

INACTIVE
JavaScript
4
star
52

hubs-duck-addon

TypeScript
4
star
53

symbolgenerator

INACTIVE - The symbol generator for Firefox Reality native code
Python
4
star
54

hubs-configtool

Tool for reading and writing Hubs configuration values.
JavaScript
3
star
55

spoke-react-components

https://mixedreality.mozilla.org/spoke-react-components
JavaScript
3
star
56

pathfinder_cpp

INACTIVE - c++11 implementation of PathFinder
C
3
star
57

hubs-template-addon

A template project for creating Hubs add-ons
TypeScript
3
star
58

hubs-sound-pack

JavaScript
3
star
59

hubs-ts-types

Typescript definitions for Hubs
TypeScript
3
star
60

hubs-portals-addon

A hubs add-on that adds support for portals.
TypeScript
3
star
61

oculus

JavaScript
2
star
62

webxr-todo

INACTIVE - List of ideas to improve the WebXR ecosystem
2
star
63

lobby

INACTIVE - WebVR Lobby
JavaScript
2
star
64

webxr-agent

Helper for handling presentation, navigation, and telemetry for WebXR experiences.
JavaScript
2
star
65

FirefoxReality-gvr-android-sdk

INACTIVE - GVR headers and library dependancies for Daydream build of Firefox Reality
C++
1
star
66

hubs-iframe-test

INACTIVE - GitHub Pages hosted page for testing Hubs in iframes
HTML
1
star
67

fbx-gltf-pipeline

INACTIVE
JavaScript
1
star
68

ita

A service for doing Hubs configuration management.
JavaScript
1
star
69

hubs-behavior-graphs-addon

A behavior graphs addon for Hbs
TypeScript
1
star
70

create-hubs-app

INACTIVE
JavaScript
1
star
71

badge-maker

INACTIVE
JavaScript
1
star
72

gltf-component-data

INACTIVE - Small library and command line utility for adding component data to a glTF file.
JavaScript
1
star
73

ecsy-three-webpack

INACTIVE - Boilerplate project for ecsy-three and Webpack
JavaScript
1
star
74

gltf-collision-exporter

INACTIVE
1
star
75

horizon

(2015) Horizon was an experimental VR browser built on web standards using CSS-VR.
JavaScript
1
star
76

area-demo-service-task

INACTIVE - Integration of OpenSceneGraph-based rendering with WebXR in a demonstration service task for AR Enterprise Alliance
JavaScript
1
star