2021.1.0 Eos Release Notes

This version of Vircadia is a new release. It is not compatible with the 2020.3.0 Demeter protocol. This version was released on February 21st, 2021.

Interface (Codename Athena)

The numbers at the end of each item are the PR numbers in the Vircadia repo.


  • UI/UX: The VR controls for regular and fullbody users has been overhauled. (#928)

    1. Fix being unable to sit in the real world in VR without the avatar and viewpoint being popped up to a standing position. With the new option "Allow my avatar to stand", we can choose to have the avatar stand only when the user is standing. The default behavior is the same as before (always allowed to stand; allowed to lean only when user is standing), except that now, when foot trackers are used, the avatar is never made to stand artificially.

    2. Fix very wrong walk/fly directions when using foot tracking or when using the mode that allows the avatar to sit when the user sits (previously "Avatar lean behavior: disabled").

    3. Fix VR walk speeds being too slow at small avatar scale and too fast at large avatar scale. The avatar scale was being factored-in twice in the velocity calculation.

    4. The "Avatar lean behavior" setting was unclear and had muddled logic. It's now split into two settings that work more usefully: "Allow my avatar to stand" and "Allow my avatar to lean".

    5. The previous experimental mode that allowed the avatar to sit on the floor ("Avatar leaning behavior: disabled") is improved by now having the avatar follow the user's orientation ("Allow my avatar to lean: Always, no recenter").

    6. Fix unreliable hand-relative walk/fly directions, due to avatar-frame vectors being wrongly transformed by the head rotation. UpdateMotors was transforming avatar-space directions by the head rotation (even if hand-relative walking was chosen). It could give the appearance of working, but only when the avatar rotation followed the head rotation.

    7. Fix for the recentering not behaving as requested by the user after getting up from click-to-sit (always popping up to standing position).

    8. Fix for incorrect vertical position of the avatar and viewpoint after changing recenter mode while not standing in the real world.

    9. The logic controlling the direction of MyAvatar's action motor was hard to follow and maintain, as it was split between two functions. Now it's clearer and all done in calculateScaledDirection.

    10. Leaning and lean recentering now work as intended at any avatar scale.

  • App: 'Create' app now has a "Rotate As The Next Clicked Surface" function for entities. (#932)

  • API: Add useOriginalPivot property to model entities allowing entities to use their original pivot. (#951, #1029)

  • Graphics: Improve rendering of transparent entities. (#953)

  • API: Add billboardMode property for all entity types allowing entities to face the user as specified in the following modes: none, yaw, full. (#961, #1041)

  • App: The 'Appreciate' app has been added as a default app to Interface. (#974)

  • API: Add userAgent property to web entities allowing the web entity to use the specified user agent when browsing. (#998, #1017)

  • App: Allow any user to teleport to any user within a domain using the 'People' app. (#991)

  • API: Add releaseName property to the About API. (#996)

  • API: Add alignment property to text entities allowing text to be aligned to 'left', 'center', and 'right'. (#1020)

  • App: 'Create' app February 2021 improvements package. (#1030)

    • The Entity List menubar has been reorganized.

      • Introducing a new menu “Transform”. The menu items have been re-dispatched. CSS has been retouched to display clearly which menu is open.

    • New optional full path & file name URL column in the Entity List.

      • A new optional column “URL” has been added (hidden by default) to the Entity List. It displays the full URL including the path. The column is sortable. It is also searchable when visible.


  • Application: Add functionality to skip repeated log entries. (#937)

  • Docs: List required dependency for Visual Studio on Windows builds. (#967)

  • Application: Fix multiple crashes when using VR with a QML disabled build. (#971)

  • Build: Vircadia now accepts the RELEASE_NAME env variable. (#975)

  • Build: Updated Windows VCPKG to include an alternative JOM download URL instead of just Qt's. (#983)

  • Build: Revise Windows build docs to improve formatting and list Node.JS as a dependency. (#987)

  • Misc: 'Alpha' references have been removed for Interface indicating that Vircadia is now a full release. (#996)

  • Misc: A reference to the former High Fidelity VR project has been added to the 'About' dialog alongside some formatting and build info updates. (#996)

Serveur de domaine

The numbers at the end of each item are the PR numbers in the Vircadia repo.


  • Server/UI/UX: Wizard improvements. (#1009)

    • Add a list of acceptable characters to 'Create Domain ID' dialog.

    • The wizard now sets the server to use 'Full' automatic networking when connected to a metaverse.

    • If creating a domain ID, the wizard now has the server set its name to match the label used to create an ID.

Metaverse Server & Dashboard (Codename Iamus)

Iamus Metaverse Server

Version 2.3.11

  • view • Add logic to Tokens.createToken() for better expiration time computation: 0 says default, N says number of hours, and -1 says 'infinite'.
  • view • Make entity field 'getter' to be async.
  • view • Update callers of entity field 'getters' to be async
  • view • Make entity field 'setters' async. Update utility functions so 'setters' are all async
  • view • Update callers of entity field 'setters' to be async
  • view • Make Places.createPlace() async. Update callers to Places.createPlace() to await.
  • view • Fix bug is calculating expiration hours when creating a new token. If hours were specified, the clamped value was not used.
  • view • Add PlaceEntity fields for current place state information.
  • view • Correct spelling from 'attendence' to 'attendance'.
  • view • Add comments at the top if the class to show what parameters the criteria filter parses. Add beginnings of 'status' parameter to PlaceFilerInfo criteria filter Update /api/explore.json to use PlaceFilterInfo
  • view • Move Place attendance calculation to Places.ts Add current information to returned Place info structure Default Place attendance zero timeout to be 60 minutes.
  • view • Distinguish between a "path" ("/pos/rot") and an "address" (netaddr/pos/rot) Rename PlaceEntity.address to be PlaceEntity.path Define get/set for PlaceEntity fields for "path" and "address" with the latter returning a "domain-network-address/pos/rot" Restrict PlaceEntity.path validation to "/f,f,f/f,f,f,f" Update DB to rename existing database fields address->path Include both "path" and "address" in returned Place JSON information Add new Places functions: Places.getCurrentInfoAPIKey() Places.getAddressString() Optionally include APIKey in returned Place JSON for domain owner Add 'Attendance" and current place info to /explore.json response Update API.md description of the place operations
  • view • Add optional domain parameter to get attendance functions to eliminate refetch of domain.
  • view • Update Explore response to include the Place information. Add documentation for /explore.json request.
  • view • Add POST /api/v1/places/current Add Places.validateFieldValue() for checking incoming values. Update docs on place APIs
  • view • Fix problem where Domain user count was not being zeroed on inactivity.
  • view • Add some missing 'await's. Most are just waiting for DB to store.
  • view • Correct test logic for /api/v1/places/current so APIKey works. Remove cut-and-paste error code from same.
  • view • Update ChangeLog.md
  • view • Bump version to 2.3.11

Version 2.3.10

  • view • Update ChangeLog.md
  • view • Have every request return "Not logged in" if an access token is not included in the request. This makes the user interface more understandable. Modify several requests to report different errors if not logged in or if parameters are not specified. Makes error more specific. Closes #70
  • view • Make sure all calls to checkAccessToEntity() are await'ed. Should fix some wrong access checking.
  • view • Change field permissions to use Perm definitions rather than explicit strings.
  • view • Update npm modules.
  • view • Properly copy /static directory into /dist output directory. Closes #74
  • view • Add preliminary documentation for new Place design.
  • view • Bump version to 2.3.10

Version 2.3.9

  • view • Update ChangeLog.md
  • view • Update histogram begin time calculation for both EventHistogram and ValueHistogram. Beginning and end dates were not calculated correctly.
  • view • Add tracking of connected sockets so can force shutdown. ExpressJS http.server will not close if there are open sockets so close open sockets when shutting down.
  • view • Bump version to 2.3.9

Version 2.3.8

  • view • Update ChangeLog.md
  • view • Update DockerFile to pull from the official location: 'vircadia/Iamus'.
  • view • Fix line endings to be UNIX format.
  • view • Remove 'friends' and 'connections' from buildAccountProfile() response.
  • view • Separate error messages for /api/v1/domain/:domainId separate 'not logged in' from 'domain not found' Add comments on request processors for set variables. Change no auth info error to "Not logged in"
  • view • Clean up 'imports' in Db.ts so all @Tools are together
  • view • Add comments to request processors making clear set request variables.
  • view • Add "backup" section to config.ts for the BackupDb.sh script.
  • view • Fix wrong calculation of monitoring histogram 'timeBase' 'timeBase' should now be the start time of the first bucket.
  • view • Bump version to 2.3.8

Iamus Metaverse Dashboard

Updates are reflected here. The Dashboard has been upgraded from version 1.2.2 to version 1.2.5.

  • Fix token refresh routing & logout bug.

  • Fix general navigation issues.

  • Fix profile information loading.

  • Add API 'Request' stats component to the home page.

  • Fix a page loading style bug.

  • The menu's navigation now highlights based on what page you are on.

  • Add theme options for 'Light', 'Dark', and 'Auto' (browser-specified).

Vircadia Launcher (Codename Pantheon)

Vircadia's launcher updates can be found here. The launcher is on version 1.0.1.

  • Enable tray functionality on launcher.

  • Set 'News' tab as default.

  • Add 'Metaverse' tab.

  • Add 'Hide On Launch' option to minimize the launcher to tray when Interface is started successfully.

  • Various backend & stability fixes.


User Docs

The numbers at the end of each item are the PR numbers in the Vircadia-Docs-Sphinx repo.

  • Add French language support. (#107)

  • Update Weblate info. (#108)

  • Fix most docs build warnings. (#111)

  • Disable smartquotes altering French translations. (#113)

  • Rename 'BUILD_GENERAL' page name to 'BUILD'. (#115)

  • Fix 'Edit on GitHub' links. (#117)

  • Release notes for 2021.1.0 Eos. (#118)

API Docs

The API docs are generated from the software source repo. The latest live deployment source can be viewed here.

  • About API:

    • releaseName property added. (#996)

  • Entities API:

    • useOriginalPivot property added to model entities. (#951)

    • billboardMode property added to all entities. (#961)

    • userAgent property added to web entities. (#988)

    • alignment property added to text entities. (#1020)

  • PlatformInfo API:

    • Fix typo in getPlatformTierNames UNKNWON -> UNKNOWN. (#982)