Alpha 2020.3.2 Demeter Release Notes

This version of Vircadia is an update to 2020.3.1. It is compatible with the 2020.3.0-Demeter protocol. This version was released on December 1st, 2020.

Interface (Codename Athena)

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


  • Graphics: Add and enable automatic maximum texture size scaling by default. (#599)

  • Application: Add Script.require developer toggle to force cachebusting on every load. (#664)

  • App: 'Create' app October 2020 improvements package. (#833)

    • Add error dialogue if an unsupported filetype is added as a model URL.

    • Angular velocity precision can now go below 0.4 in the UI.

    • Add Actions menu.

      • Annuler

      • Refaire

      • Cut

      • Copy

      • Paste

      • Duplicate

      • Delete

      • Parent Entity to Last Selected

      • Déparenter une Entité

      • Move Selected Entities to Avatar

    • Add Selection menu.

      • Select All

      • Select None

      • Inverse Selection

      • Select All Entities In Box

      • Select All Entities Touching Box

      • Teleport to Selected Entities

    • Add a parent 'Hierarchy' column to the entity list, identifying:

      • Parent

      • Child

      • Parent & Child

      • None

    • Selected entities now have different colors based on parent-child hierarchy.

  • Application: Add ability for Script.require to automatically cachebust itself when changes are made to the script on the local filesystem. (#848)

  • UI/UX: Enable ability to login to domains with an email as well as a username. (#852)

  • API: Fix Entities.enterEntity and Entities.leaveEntity event not firing in entity script after content reload. (#853)

  • App: 'Create' app November 2020 improvements package. (#858, #874)

    • The last selected entity is now highlighted.

    • The entity list column visibility and order of columns now persists when the Create app is closed and reopened.

    • The selection buttons for 'Parent' and child entities have been renamed.

    • New in-world bounding box color for a selected entity that is a parent & child at the same time:

      • If the entity is a top parent, the selection color of the bounding box is orange.

      • If the entity is parent and child, the selection color of the bounding box is magenta.

      • If the entity is only a child, then the selection color of the bounding box is cyan.

      • If not involved in any parent line, or if the selection is multiple, then the selection color of the bounding box is light grey.

    • The 'Selection' and 'Actions' menus now close when the 'Create' app or entity list is closed.

    • 'Move Selected Entities to Avatar' is now recorded in the undo history.

    • Fix entity list interpreting the last selected entity as the first selection in the selection stack.

  • Application: 'Local Entity' and self-owned 'Avatar Entity' scripts now run on their own separate script engines to improve performance and security. (#871)


  • Application: Transition listener registration from member string names to member string pointers. (#613)

  • Build: GHA now generates builds for Android and Quest platforms. (#615)

  • Build: GHA now builds and uploads installers for every merge to the master branch. (#719, #881)

  • Application: Qt 5.15 fixes: Initialize flags with default constructor. (#791)

  • Application: Add color, ms timestamps, PID, and thread ID as possible logging settings. (#804)

  • UI: Hide 'Secure Transactions' section in Settings > Security. (#842)

  • Application: Clean and revamp 'Script Plugin Infrastructure' example plugin. (#847)

  • Build: Fix GHA building. (#872)

  • Graphics: Acquiring the free VRAM value on AMD video cards for 'Auto' maximum texture memory mode now works correctly, preventing a crash. (#887)

Serveur de domaine

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


  • Server: Append 'Vircadia' to the environment variable for the metadata exporter port. (#826)

  • UI/UX: Fix wrapping of "Enable Automatic Threading" in server setup wizard. (#844)

  • UI/UX: Fix 'Create new Domain ID' dialog. (#846)

Metaverse Server & Dashboard (Codename Iamus)

Iamus Metaverse Server

Version 2.3.3

  • view • Update
  • view • Add proper handling of SIGTERM and SIGINT Shutdown server, finish requests, and then cleanly exit.
  • view • Add domain.sponsorAccountId to Places information returned by /api/v1/places/... Update documentation.
  • view • Fix problem with changing username: update AccountEntity setPermissions. Should fix vircadia/project-iamus-dashboard#21
  • view • Bump version to 2.3.3

Version 2.3.2

  • view • Fix sorting of versions in Update
  • view • Return more useful error message when finding a domain name contains non-allowed characters. Some non-functional formatting and code cleanup.
  • view • Fix line endings to Linux style
  • view • Modify Entity field value validation to return reason for any validation failure. Rather than just returning 'false', the validator returns a structure with an optional reason for the validation failure. Modify the callers of Entity field setting to return error. Closes #48 Fix AccountEntity.Availability and AccountEntity.Roles to validate values correctly.
  • view • Tone down the format validation to require one AT sign. An RFC compliant email address can be very complex so rely on later email verification handshake to really checkout that email is a good format. Closes #63
  • view • Bump version to 2.3.2

Version 2.3.1

Version 2.2.24

  • view • Update
  • view • When deleting connections or friends, remove the reverse pointers: Deleting a connection removes both connection and friend in both accounts. Deleting a friend removes friend from other account also. Closes #59
  • view • For domain token generation default web page, move generated domain token text up higher and make it white so it stands out. Clean up some CSS errors. Closes #5
  • view • Bump version to 2.2.24

Version 2.2.23

  • view • Update Modify to get the tags from git and generating a list of the last 10 version tags (tag form: major.minor.patch)
  • view • Add pagination response fields to API requests that handle pagination.
  • view • Implement redirection of /users/:username to Dashboard. Closes #58
  • view • Bump version to 2.2.23

Version 2.2.22

  • view • Update
  • view • Remove the one-time, DB fix for bad domain network addresses.
  • view • Add 'BRANCH' argument to Dockerfile for optional branch building
  • view • Modify the connection building code for /api/v1/users/connections.
  • view • Correct 'location' element name in /api/v1/users/connections. Add documentation for /api/v1/users/connections
  • view • Add pagination response fields to /api/v1/users/connections. Add response field function to other criteria filters.
  • view • Implement POST /api/v1/user/friends so a user can make a connection into a friend.
  • view • Allow an account to add any connection or friend they wish
  • view • Change /api/v1/users/connections response to have proper connection type flag. The code seemed to want "is_friend" but it really wants just "friend". Update documentation for /api/v1/users/connections
  • view • Bump version to 2.2.22

Version 2.2.21

  • view • Update
  • view • Add parameter to stats requests "history=no" which doesn't return histograms.
  • view • Debug stat "?history=no" query parameter for categories. Add documentation on history suppression to
  • view • Add Domain timer to check for non-heartbeating domains and to zero reported users. Add Config.metaverse-server.domain-seconds-until-offline = 10*60 Allow 'admin' to set Domain num_users and num_anon_users (for debugging). Closes #43
  • view • Add stats category 'metaverse'. Add Accounts.countAccouts and Domains.countDomains for collecting of number of filtered entities. Add Db.countObjects(criteria) to do database count operation Make stats.Gather operation async so it can do database operations. Add documentation for 'metaverse' stat category
  • view • Add initialization of stats category 'metaverse'.
  • view • Add stats.metaverse debugging statements. Add debugging logging to Db.countObjects.
  • view • Fix line endings to Linux style.
  • view • Fix Db.countObjects to use the passed criteria.
  • view • Return idle and inactive times as strings in Accounts and Domains
  • view • Return Date for idle and offline Account and Domain dates. Properly invoke date fetchers in monitoring code.
  • view • Remove chatty debug logging in stats.metaverse.
  • view • Add 'admin' ability to set 'connections' and 'friends' in AccountEntity. Was preventing handshakes from working.
  • view • Add more error logging in setEntityField processing
  • view • Split Permissions.ts into Permissions.ts and GetterSetter.ts to better modularize functions. Re-order module inclusion to "fix" (??) variables not getting initialized. Add code to Accounts and Domains to verify entity field structure is initialized. There is some ordering problem that causes the function to not get set in the const assignment Replace all instances of FieldDefn getters and setters with "noGetter" rather than "undefined" Add "automatic_networking" to DomainEntity
  • view • Rename Domains.network_mode to Domains.automatic_networking which is what the existing domain-server code uses. Update documentation to remove "network_mode" and replace with "automatic_networking"
  • view • Remove code that assumed domain-server network address was connection IP address. The immediate connection can be from a proxy server so it's often wrong. More design and debugging is needed for this feature. Add /api/maint/fixDomainIP to allow an admin to clean out bad domain IP addresses.
  • view • Get login account info for fixDomainIP maint operation.
  • view • Bump version to 2.2.21

Version 2.2.20

  • view • Add the missing address to the end of an Explore hifi URL
  • view • Fix line endings to Linux style.
  • view • Remove authentication requirement for fetching /explore
  • view • Change type of request being searched for in connection_request. Add some debug messages to connection_request.
  • view • Always return "Owner" in Explore entries.
  • view • Add more debugging to user/connection_request
  • view • Fix problem where set entity field would not assign a value if the field did not exist on the target entity.
  • view • Add function route-tools.Util.buildImageInfo() for consistant user image return data.
  • view • Change "GET /explore" to "GET /explore.json" as that's what the calling script wants.
  • view • Add /api/v1/users/connections which returns connections and their images/location info.
  • view • Bump version to 2.2.20

Version 2.2.19

  • view • Update
  • view • Add week history for apiRequests
  • view • Fix line endings to be consistant Linux form
  • view • Remove some chatty debug messages for errors in RESTResponse.
  • view • Remove 'accountId' from PlaceEntity to simplify place linkage management. Update API-Place documentation Add middleware.placeFromParams to map :placeId to req.vPlace. Add req.vPlace to ExpressJS.Request Centralize code to look up place with both id and name. Lookup domain when fetching place by parameter id Update /api/v1/places/* to use :placeId. Use permissions.checkEntityAccess rather than checking fields for permissions
  • view • Correct domain address variable naming from "network_addr" to "network_address". Updates names on POST input and GET responses. Update documentation.
  • view • Add /explore API point that returns Place information with location info
  • view • Add function to assume a domain server's addr if not saved. Add Config.metaverse-server.fix-domain-network-address defaulting to 'true'
  • view • Bump version to 2.2.19

Iamus Metaverse Dashboard

Updates are reflected here.

  • Fix copying of domain token on Chrome.

  • Optimize 'Domain' page layout for different screens.

  • Add basic Metaverse stats to the 'Home' page.

  • Optimize 'Profile' page layout for different screens.

  • Fix delete buttons for places that are owned by the user.

Vircadia Launcher (Codename Pantheon)

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


User Docs

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

  • Add description of VIRCADIA_LOG_OPTIONS environment variable. (#88)

  • Release notes for 2020.3.2 Demeter. (#97)

  • Document a multitude of missing environment variables for the Interface and Domain server. (#90)

  • Misc. name updates (Athena -> Vircadia) and documents HIFI_DEBUG_HMD environment variable for Interface. (#96)

API Docs

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

  • Nothing new to report!