https://github.com/vircadia/vircadia-web
Vircadia open source metaverse web interface for virtual worlds.
https://github.com/vircadia/vircadia-web
babylonjs javascript metaverse vr vrmmo webgl webgpu webxr xr
Last synced: about 2 months ago
JSON representation
Vircadia open source metaverse web interface for virtual worlds.
- Host: GitHub
- URL: https://github.com/vircadia/vircadia-web
- Owner: vircadia
- License: other
- Created: 2021-05-07T00:44:11.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2025-01-29T09:20:53.000Z (4 months ago)
- Last Synced: 2025-03-29T15:04:12.183Z (about 2 months ago)
- Topics: babylonjs, javascript, metaverse, vr, vrmmo, webgl, webgpu, webxr, xr
- Language: TypeScript
- Homepage: https://app.vircadia.com
- Size: 252 MB
- Stars: 66
- Watchers: 11
- Forks: 54
- Open Issues: 42
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - vircadia/vircadia-web - Vircadia open source metaverse web interface for virtual worlds. (TypeScript)
README
# 

## ⚠️ Early Developer Alpha ⚠️
### The Vircadia web client is in Early Developer Alpha! There will be unimplemented features and bugs.
***Please take a moment to check the [list of issues](https://github.com/vircadia/vircadia-web/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.
## Compatibility
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## Project Setup
### Prerequisites
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.)*
### Clone the Repo
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.
```sh
git clone --recursive https://github.com/vircadia/vircadia-web.git
```If you forget to pull recursively, you can initialize the submodule later with:
```sh
git submodule update --init --recursive
```### Install the dependencies
```sh
npm i
```
or
```sh
yarn
```If you want to use a local copy of the Vircadia Web SDK, from a directory beside the web app's:
```sh
npm run install-local-web-sdk
```## Run, Compile, and Test
### Customization Options
The web client's settings such as branding, default servers, and more, can be customized directly from [environment variables](https://github.com/vircadia/vircadia-web/blob/master/quasar.conf.js#L131) which you must set at or prior to build/compile time.
See [Configuring quasar.conf.js](https://v2.quasar.dev/quasar-cli/quasar-conf-js) for a full set of customization options.
### Start the app in development mode
Development mode benefits from features like hot-code reloading, error reporting, etc.
```sh
npm run dev
```
or
```
yarn run dev
```### Lint the files
```sh
npm run lint
```And fix lint issues automatically with
```sh
npm run lint -- --fix
```### Run tests
```sh
npm run test
```### Build the app for production
```sh
npm run build
```## Desktop
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](https://tauri.app/v1/guides/getting-started/prerequisites).
To run the desktop wrapper in development mode:
```sh
npm run dev-desktop
```To build the desktop executable:
```sh
npm run build-desktop
```## To Update Contributors
```sh
npm run update-contributors
```## Local Assets
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.