Skip to content
Duck-themed multi-user virtual spaces in WebVR. Built with A-Frame.
JavaScript CSS HTML Other
Branch: master
Clone or download
Latest commit 839f7b6 Oct 16, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci Store artifacts from build in Circle CI Sep 5, 2018
.github/ISSUE_TEMPLATE Update bug issue template to use 'needs triage' label Aug 6, 2019
.vscode virtual-gamepad-controls component for mobile 2d locomotion (#9) Nov 8, 2017
admin Dont bother with a new tag Oct 14, 2019
doc player-rig -> avatar-rig Aug 5, 2019
habitat Fix missing build version Oct 15, 2019
scripts Fix bar Oct 9, 2019
src Merge pull request #1815 from mozilla/bug/more-dom-initialization-issues Oct 16, 2019
test/unit/utils Add tests for getSanitizedComponentMapping. Feb 19, 2019
.babelrc Fix home page and hubs page for legacy browsers. Add webassembly feat… Jun 1, 2019
.env.defaults Separate admin and hubs packages Oct 1, 2019
.eslintignore update linters May 10, 2018
.eslintrc.js firefox safari perf fix. plus miscellaneous Apr 7, 2018
.gitignore WIP Oct 2, 2019
.htmlhintrc Upgrade some minor dependencies to shut up npm audit Feb 22, 2019
.prettierignore prettier Mar 30, 2018
.prettierrc.json Use babel for eslint parsing and prettier Mar 27, 2018
.stylelintrc Scale canvas 200% wide so no eye buffers on desktop Nov 4, 2018 Add Mozilla Code of Conduct file Mar 30, 2019 Update Aug 9, 2019
Jenkinsfile Copy change Oct 9, 2019
LICENSE Initial Commit Sep 26, 2017 click button on images to change screen image Jul 25, 2019 Surface promotion, remixing and attribution May 14, 2019 Put third person mode behind qsTruthy Aug 1, 2019 Surface promotion, remixing and attribution May 14, 2019 Fix Spoke download link and update repository links. May 10, 2019
package-lock.json Bump networked-aframe Oct 11, 2019
package.json Separate admin and hubs packages Oct 1, 2019
webpack.config.js Kill dead code Oct 2, 2019

Build Status

The client-side code for, a multi-user experience in WebVR. Built with A-Frame.

Getting Started

To run the client, run:

git clone
cd hubs
npm ci
npm start

Then visit https://localhost:8080 (note: HTTPS is required)

Note: When running the Hubs client locally, you will still connect to the development versions of our Janus WebRTC and reticulum servers.

Building Static Files

To bundle javascript and generate the html templates, run:

npm run build

Sharing Your Changes

When running a local copy of Hubs as-is, you'll use Mozilla's "dev" Reticulm and Janus servers for storing your room information and relaying messages between users in the room.

This also means you can upload a modified copy of Hubs to a hosting provider as-is, and use it without having to set up your own servers. Simply run:

npm run build

and then upload the files in the dist folder to your hosting provider.

If you are running your own servers, you can modify the environment variable RETICULUM_SERVER when building to point Hubs to your own infrastructure.

See .env.defaults for the full set of environment variables that can modify Hubs' behavior at build time.

hubs.local Host Entry

When running the full stack for Hubs (which includes Reticulum) locally it is necessary to add a hosts entry pointing hubs.local to your local server's IP. This will allow the CSP checks to pass that are served up by Reticulum so you can test the whole app. Note that you must also laod hubs.local over https.

Query Params

  • allow_multi - Allow multiple instances off the app in the same browser session
  • avatar_scale - Scale your self!
  • quality - Either "low" or "high". Force assets to a certain quality level
  • mobile - Force mobile mode
  • no_stats - Disable performance stats
  • vr_entry_type - Either "2d", "vr", or "daydream". Used internally to force a VR entry type. Add "_now" to the end of the value to skip the audio check.
  • disable_telemetry - If true disables Sentry telemetry.
  • log_filter - A debug style filter for setting the logging level.
  • debug - If true performs verbose logging of Janus and NAF traffic.
  • vrstats - If true shows stats in VR.
  • debug_log - If true, enables an on-screen debug log and console. Useful for debugging on mobile devices.
  • userinput_debug - If true, enables an on-screen userinput debug status panel. Press "L" on your keyboard to show the panel.
  • thirdPerson - Enables experimental third person mode.

Additional Resources

You can’t perform that action at this time.