FB Pixel
This Month in Vircadia – May 2021

Written by Kalila L

May 30, 2021

Work kicked off this month on creating the Vircadia Web Interface – a version of Interface that will run in your web browser.

There are two primary components: the Web Interface itself and the Web SDK that it uses. The separation of the Web SDK from the Web Interface will enable further clients/interfaces to be created by developers. It also means that you will be able to integrate any part (or all) of Vircadia virtual worlds into your own web application or website.

The Web Interface

The majority of the work done on the web interface this month has been focused around bootstrapping the user interface and container for the underlying virtual world engine.

In line with other Vircadia components, we’re using Vue as the main framework. The component library being used with Vue is Quasar. And finally, the virtual world engine that’s been chosen is Babylon.JS. The Jest unit testing framework has been added as well, to help ensure that the code continues to work as the project grows. ESLint is being used to help maintain uniformity and cleanliness throughout the codebase. All of this is packaged up neatly using Webpack & Babel.

Here are some of the specifics that have been implemented this month.

  • Overlay Manager – This component is designed to manage all of your various widgets and overlays.
  • Overlays – An audio overlay has been added, though it only allows adjusting your input for now. People and chat overlays layout have been added, ready for wiring up when networking has been implemented for them in the Web SDK.
  • Dialogs – A metaverse login and registration dialog has been created.
  • APIs – An audio inputs API has been created for the audio overlay. Also, a basic metaverse API has been added to facilitate logging in and registration. Some of this will be moved to the SDK in due course.
  • And various other things…

You can follow progress at its repository.

The Web SDK

The companion project to the Web Interface is the Web SDK.

The Web SDK will provide common core Vircadia functionality – in particular, Domain server networking, metaverse interaction, and scripting. Further modules will be added with time.

The Domain server networking is a major part of the SDK: WebRTC is being used as the transport and the Vircadia protocol implemented in the SDK to enable Web clients to be first class citizens alongside the native app. Changes are also being made in the Domain server code to enable WebRTC to be used alongside the current UDP for client connections.

Like the Web Interface: JavaScript, ESLint, Jest, Babel, and Webpack are being used for the SDK. Additionally, JSDoc is being used for documenting the SDK and Doxygen used on the C++ side to document SDK-related changes to the Domain server code.

Here are some of the specifics that have been implemented this month.

  • Bootstrap the SDK development environment.
  • Updated the WebRTC package used by the Domain server to a more recent version and to include WebRTC’s data channel functionality.
  • Implemented a WebSocket signaling channel between the SDK and Domain server, needed by WebRTC for setting up WebRTC connections.
  • Implemented the WebRTC peer connection and data channel between the SDK and Domain
    server.

You can follow progress at its repository.

Developer Docs

In order to increase accessibility for developers to learn about and deploy Vircadia for their use cases, we are creating developer documentation.

Based on Vue and created with VuePress, the documentation will list, summarize, and link to all components and projects within the Vircadia ecosystem.

You can see how it evolves here.

Native Interface launches on the Windows Store

To increase accessibility for the end user, the Vircadia native Interface has made its way onto the Windows Store!

This will enable effortless install and updates for users looking to attend virtual worlds on Windows computers.

Check it out here!

2021.1.2 Release

We’ve published the latest release for the Vircadia server and native Interface.

  • ReadyPlayerMe avatars now have blendshape support out of the box.
  • The underlying Qt framework has been upgraded to version 5.15.2. Of note, this resulted in the web engine being updated to a newer version of Chromium.
  • And more!

Read about the full list of changes here.

We now have a forum!

Chat servers like Discord are great for conversing, getting help, and getting updates in real time. Though, using chat for support has a downside.

When we need a question answered, we tend to Google it and get answers, both old and new. Some or all of them may be relevant to helping us. However, this is only possible when discussions with questions and answers have been indexed on the internet. This is something that we cannot easily achieve relying solely on a chat server.

Thus, we’re launching a forum that we hope will fill the role of both being a wiki (the forum has some wiki features) and a place to converse alongside our Discord chat server.

So go ahead, ask a question or share a tip.

After all, this is a group effort towards building a true open source foundation for virtual worlds. Your contribution helps greatly in this endeavour!

Thanks to this month’s contributors!

The community and active development group is larger and more diverse than you’d expect!

Alongside programming, there is much time and effort put into continually testing, reviewing, and documenting changes to Vircadia’s many core components.

Aitolda

QA

Basinsky

QA

Dale Glass

  • Development
  • Code Review

JulianGro

  • Documentation
  • QA

Alezia Kurdis

  • Development

CtrlAltDavid

  • Development
  • Code Review

HifiExperiments

Code Review

Silverfish

QA

Join the Metaverse Revolution

Vircadia is a FLOSS decentralized virtual worlds platform. It is cross platform, with support for Windows, OSX, and Linux. Development is distributed across many volunteers and committed through their various contributions, big and small.

Documentation

We need documentation writers! The platform is constantly evolving and has plenty of documentation to help new users and veteran develoeprs alike take full advantage of it. Even the small things make a huge impact.

If you are multilingual, our international users could use your help!

If you simply want to help out on small things such as typos, errors, short guides, etc... your help and participation is appreciated!

Development

We need developers! Vircadia has many components, you can contribute to any of the following:

  • Native Interface
    • C++
    • JavaScript
    • Web Apps (Vue, etc.)
    • QML
  • Server
    • C++
    • HTML + JavaScript
  • Metaverse Server
    • TypeScript
  • Web Interface
    • Interface created with Vue
    • HTML + TypeScript
    • Engine created with Babylon.JS
  • Web SDK
    • TypeScript

Engine. Platform. Metaverse.