Please take a moment to check the list of issues and file an issue if one does not exist already. If you are able, please try to implement a feature or fix a bug yourself! The metaverse appreciates your assistance. 🙏
Vircadia Web (codename Aether) is an open source metaverse web client for accessing virtual worlds.
This interface is tested and validated for the following browser platforms:
- Mobile, Tablet, Desktop
- Chromium (Chrome, Brave, Edge etc.)
- Webkit (Safari)
- Gecko (Firefox)
- Native
- Windows 10+
- MacOS Monterey
- Linux (Ubuntu 20+)
- XR on Android (COMING SOON!)
- Quest 2/Quest Pro
- Pico 4
- Vive Focus 3
Vircadia Web has been tested to work with:
- Node versions
16
-20
- NPM versions
8.19
-10.1
(Use of Node versions other than stated is untested and may not work correctly.)
First, clone the repository to your machine with Git. Then, open a terminal in that directory.
Vircadia Web relies on the Vircadia Assets submodule, so you must pull recursively.
git clone --recursive https://github.com/vircadia/vircadia-web.git
If you forget to pull recursively, you can initialize the submodule later with:
git submodule update --init --recursive
npm i
or
yarn
If you want to use a local copy of the Vircadia Web SDK, from a directory beside the web app's:
npm run install-local-web-sdk
The web client's settings such as branding, default servers, and more, can be customized directly from environment variables which you must set at or prior to build/compile time.
See Configuring quasar.conf.js for a full set of customization options.
Development mode benefits from features like hot-code reloading, error reporting, etc.
npm run dev
or
yarn run dev
npm run lint
And fix lint issues automatically with
npm run lint -- --fix
npm run test
npm run build
The web client can also be compiled to a standalone desktop app. When doing so, the VRCA_DESKTOP_MODE
environment variable must be set to either dev
or build
.
After installing the base Node dependencies with npm i
, you will also need to install Tauri's Rust dependencies.
To run the desktop wrapper in development mode:
npm run dev-desktop
To build the desktop executable:
npm run build-desktop
npm run update-contributors
To enable faster loading, you may put local models into the public/local-assets
folder, then reference them in your entity tree like so /local-assets/yourModel.glb
. The asset should now be available to you in-world.