2021.1.3 Eos Release Notes

This version of Vircadia is an update to 2021.1.2. It is compatible with the 2020.1.0 Eos protocol. This version was released on September 22nd, 2021.

Native Interface & Domain Server (Codename Athena)


  • [linux] Add crash handler support for Linux. #365

  • [windows] Update WebRTC package for Windows. #1258

  • Rename "HifiSockAddr" to "SockAddr". #1283

  • Improve Qt handling in CMake. #936

  • [docs][housekeeping] Add "gren" configuration for easy changelog generation. #1226

  • [docs] Add minimal documentation for classes declared in script-engine. #1223

  • [docs][renderer] Material System Improvements Part 2: Reference textures/materials by entity ID. #1102

  • Put generated resources and docs into the build directory. #943

  • Don't use LeapMotion by default. #1268

  • Replace uses of "endl" on Qt classes with "Qt::endl". #1270

  • [scripting api change] Drop remaining references to "QScriptEngineDebugger". #1206

  • Archive CMake logs on Github Actions for debugging. #1274

  • Disable cloning of Git submodules with GitHub Actions. #1276

  • Create app: Add "Reset Rotation" button. #1316

  • Update "Explore" app to load Metaverse places in parallel. #1315

  • Make the HUD bubble/shield button optional. #1314

  • Log the location of the primary resources file. #1309

  • Add "Talk" link to "Help" menu. #1288

  • Update OpenVR to 1.16.8. #1322

  • Reduce stale-bot's aggressiveness. #1285

  • Make Zone Selector for "renderWithZones" in "Create" app HMD Compliant. #1252

Bug Fixes

  • [linux] Get "make-deb-server" working again with Qt changes to Vircadia builder. #1356

  • [macos] Fix for nvtt on MacOS. #1275

  • [windows] Copy resources to Interface's primary directory. #1311

  • Fix an avatar crash. #1326

  • [docs] Correct metadata for the APIDocs. #1236

  • [windows] Fix "Ninja does not support toolset specification" on Windows. #1289

  • [linux] Fix draco compilation on gcc11. #1207

  • [domain-server] Add "disable domain port auto discovery" option for assignment clients. #1251

  • Replace deprecated QAbstractsocket::error with QAbstractSocket::errorOccurred. #1303

  • Fix nvtt on x86 platforms. #1255

  • Fix QString::SplitBehavior deprecation, replace QString::SkipEmptyParts with Qt::SkipEmptyParts. #1302

  • Fix QDir::operator= is deprecated. #1301

  • [docs] Update user docs links "docs.vircadia.dev" -> "docs.vircadia.com". #1249

  • Add ability for 'handleLookupString' to have spaces. #1244


  • [docs] Fix typo in WebSocket~onMessageCallback API documention. #1254

  • [docs][windows] Add basic MSIX instructions to INSTALLER.md. #1245

  • [docs][macos] Update MacOS packaging instructions. #1227

  • [docs] Update Doxygen group tags to use /// format. #1266

  • [docs] Quiet Doxygen output. #1277

  • [docs] Update supporter info for README.md. #1293

  • [docs] Misc fixes to AddressManager JSDoc. #1278

In Development

These are changes merged under an active development branch but are not included in this release.

  • [packet version change][web sdk] Enable Assignment client WebRTC connections. #1313

  • [web sdk] Fix some WebRTC Doxygen typos. #1299

  • [web sdk] Implement WebRTC Data Channel. #1238

  • [web sdk] First exchange of Vircadia protocol packets with the Vircadia Web SDK. #1259

  • [web sdk] Enable Anonymous Web SDK connection to the Domain server. #1300

  • [web sdk] Update "webapp" branch with master. #1329

  • [web sdk] Update "webapp" branch with master. #1296

  • [web sdk] Add WebRTC Signaling Channel. #1219

Web Interface (Codename Aether)


  • Re-initialize vircadia-web w/ Quasar CLI w/ TypeScript support. #15

  • Bootstrap Babylon.js as the renderer. #4

  • Setup entity & debug modules; update Quasar to stable with Vue 3. #12

  • Refactor code; update dependencies; update UI & modules. #10

  • Update the Audio component's layout. #9

  • Add Vuex and some Metaverse functionality. #7

  • Add test utils to dev environment; Add 'People' component and update various UI functionality & components. #6

  • Bootstrap UI Framework with Quasar CLI. #3

  • Bootstrap repository with Vue 3. #1

  • WIP: Creating Core UI Modules. #5

Bug Fixes

  • Change case of include so App.vue compiles on Linux. #19

Web SDK (Codename Ananke)


  • [packet version change] Setup support for Assignment client WebRTC connections. #25

  • Move Domain-specific namespaces to be objects in a Domain context. #24

  • Setup support for Anonymous Web SDK connections to the Domain server. #23

  • Switch the SDK to TypeScript. #20

  • Package the Web SDK as a module. #19

  • [docs] Reorganize the SDK files & update documentation. #13

  • Make connection closes more robust. #10

  • First exchange of Vircadia protocol packets with the Domain server. #9

  • Setup Webpack with Babel and ESLint. #1

  • Setup JSDoc for generating SDK user docs from code comments. #3

  • [docs] Document WebRTC signaling and data channels. #7

  • Setup WebRTC Data Channel support. #6

  • Add WebRTC Signaling Channel support. #5

  • Further modifications to SDK Tooling. #4

  • Setup SDK stub generation. #2


  • Some various housekeeping updates. #26

  • Fix whitespace. #18

  • Rename HifiSockAddr to SockAddr. #15

Metaverse Server & Dashboard (Codename Iamus)

Iamus Metaverse Server

Version 2.4.7

  • view • Update ChangeLog.md.
  • view • Bump path-parse from 1.0.6 to 1.0.7. (#97)
  • view • Fixes problem of anon users being counted twice. Problem was that Iamus interpreted the domain-server "num_users" and "anon_users" as two separate sets when, actually, the domain-server heartbeats "num_users" as the total number of users and "anon_users" is the number, of that total, that are anonymous. Fixes #98.
  • view • Bump version to 2.4.7.

Version 2.4.6

  • view • update ChangeLog.md for 2.4.5.
  • view • Places: fix 'path' so it just returns the domain local address while 'address' returns the join of the domain's network address and the 'path'. Disables setting PlaceEntity.address.
  • view • Add checks to make sure Place, Domain, and User names are not set to zero length strings.
  • view • Places: minor tweeking to how last activity time is computed for a Place. Now only updated by periodic Place activity check process.
  • view • Add comments about changing usernames and what must be done in all the name lists.
  • view • Repair setting of domain to active=false when domain stops heartbeating. Closes #95 Add config parameter 'domain-seconds-check-if-online' for domain active polling interval. Add some descriptive comments to some configuration parameters.
  • view • Add alternate date format fields for all returned JSON status. Adds "_s" version of string date formats with time represented as a UNIX epoch time integer. Fixes #93.
  • view • Bump version to 2.4.6.

Version 2.4.5

  • view • Update ChangeLog.md.
  • view • Return "no account" error for /api/maint/places requests if account is not specified.
  • view • Non-functional fix of indention in Util.ts (2 to 4).
  • view • Add list of managers to Places and enable manager list and permissions: Add Permission.MANAGER; Add PlaceEntity.managers; Update Place field definitions so allow setting by managers; Validate manager name settings.
  • view • Places: fix logic for computing PlaceEntity.lastActivity that wasn't computing correctly if the host domain didn't have an heartbeats.
  • view • Places: add configuration for interval for checking Place lastActivity timeout. Tune times for inactivity and current info update activity.
  • view • Bump verion to 2.4.5.

Version 2.4.4

  • view • Update ChangeLog.md.
  • view • Add limit to number of characters in names for Domains, Users, and Places. Add config parameter metaverse-server.max-name-lenght defaulted to 32. Closes #91.
  • view • Non-functional tweek to make an error message more informative.
  • view • Non-functional fixing of source indentation in route-tools/Permissions.ts.
  • view • Rework Places request data setup and permissions. Don't lookup Place's domain when doing initial request parameter setup. Fix permission lookup to use DOMAINACCESS Closes #92.
  • view • Bump version to 2.4.4.

Version 2.4.3

  • view • Update ChangeLog.md.
  • view • Places: add initPlaces(). Add periodic computation of Place attendance and activity and add these to fields on Places for easy computation of attendance and staleness. This adds a once a minute scan of places to check activity.
  • view • Centralize date when places are not active in Places.dateWhenNotActive().
  • view • Places: make functional queries for places: status=online,active.
  • view • Add admin maint functions /api/maint/places/inactive and /api/maint/places/unhooked with both GET and DELETE functions.
  • view • Bump version to 2.4.3.

Version 2.4.2

  • view • Update ChangeLog.md.
  • view • Update NPM package versions. Gets rid of a possible security problem in one of the libraries.
  • view • Fix access permission bug where request would not complete if the a non-logged in user checked ADMIN access to an entity.
  • view • In returned Places info, return the domain's last heartbeat time for current_last_update_time if there was not a current time set.
  • view • Add comments in api/v1/places about not needing to be logged in to fetch place info.
  • view • Fix DELETE of places when using "DELETE /api/v1/user/places/:placeId". Also fix fetching info of single place using "GET /api/v1/user/places/:placeId". Closes issue #88.
  • view • Bump version to 2.4.2.

Version 2.4.1

  • view • Update ChangeLog.md.
  • view • Remove comment and README references to ActivityPub since that is not an explicit goal. Some federation system will be used but one has not been chosen.
  • view • Bump version to 2.4.1.

Version 2.3.17

  • view • Update ChangeLog.md.
  • view • Add domain capacity to domain info returned for Places. Closes #84.
  • view • Add documentation on what's returned when an account is created. Includes information on whether account is awaiting verification.
  • view • Initial version of Github Action to build Iamus Docker image on push to 'master' branch.
  • view • workflows/docker-publish.yml: Correct version fetch of built Docker image.
  • view • workflows/docker-publish.yml: Docker image tag names must be lower case.
  • view • workflows/docker-publish.yml: remove interactive parameters from version docker invocation. Add explanation comments.
  • view • workflows/docker-publish.yml: remove comments and add some explanation comments.
  • view • Add scripts for running, updating, restarting, and stopping Docker image. Add docker/README.md to explain the use of the Docker image scripts. Update docs/RunningDockerImage.md with new repository location and updated notes on running.
  • view • Bump version to 2.3.17.

Version 2.3.16

  • view • Bump version to 2.3.15.
  • view • Update ChangeLog.md.
  • view • Add initial version of docs/ResrouceLimitNotes.md.
  • view • Small formatting tweaks to docs/ResourceLimitNotes.md.
  • view • Make temp domain name creation optional. Defaults to disabled.
  • view • Update tabbing to 4 spaces in token.ts. No functional change.
  • view • Add Config.metaverse-server.enable-account-email-verificiation Add AccountEntity.accountEmailVerified boolean field Add logic to not create account auth token if account email not verified. Assume verified if 'accountEmailVerified' field not present for backward compatability.
  • view • Gigantic reformatting changing tabs from 2 to 4. No functional changes.
  • view • Initial version of verify account email on account creation. Add configuration parameters for optionally enabling account email validation step. Default 'false'. Configuration parameters for Nodemailer SMTP out-bound permissions. Add 'validated' property to account. Limit creation of access tokens to validated accounts. Add 'verifyEmail' Request type. Add /api/v1/account/verify/email to accept GET request for validation. Add /static/verificationEmail.html as template for sent email. Replacement parameters in template for metaverse name.
  • view • Add very minimal Account email verification redirection targets.
  • view • Add redirection configuration and URLs for account email verification success and failure.
  • view • Make config.ts have consistant 4 space indents. No function changes.
  • view • Make default account email verification period to be one day.
  • view • Add "enabled" to information returned with account. Return enabled information when account created (so requestor can know if awaiting enablement). Centralize logic to test for account enabled in Accounts.isEnabled() Documentation . Add additional information returned by create account request.
  • view • Fix problem where admin account name has no default in configuration file.
  • view • Update documentation with new file "AdministrationNotes.md" which has explanation of account email verification and initial admin account creation.
  • view • Add comment in config.ts for VERIFICATION_URL replacement.
  • view • Adding some comments.
  • view • Bump version to 2.3.16.

Iamus Metaverse Dashboard

  • No new updates to report!


User Docs

Full Changelog


  • Update documentation repository instructions. #173

  • Update Avatar Standards documentation. #171

  • Update instructions for animation. #170

  • Add contributor note to README.md. #168

  • Update Linux Server docs and remove Developer Docs (moved to .dev TLD). #166

  • Bump Sphinx version to keep compatability with upstream myst-parser. #163

  • Remove references for "Marketplace" and "High Fidelity". #162

  • Fix typo for permission settings. #161

  • Assign User Permissions: replaced reference to GoTo with Explore. #160

  • Set Up a Place Name: fixed dead links and removed references to paying. #159

  • Fix links for the Flow app. #158

  • Fix URLs "docs.vircadia.dev" -> "docs.vircadia.com". #157

  • Update download links for 2021.1.2 Eos release. #155

  • Add release notes for 2021.1.2 Eos. #154

Bug Fixes:

  • Fix search on Sphinx 3.4.x. #164

  • Fix SSH for automated documentation deployment. #153

Developer Docs

Now live at https://docs.vircadia.dev/ and managed in this repository.