2024 week #11: SL TPVD summary: new approach to voice in SL

Burnt Toast Café and Tavern, February 2024 – blog post

The following notes were taken from my audio recording and chat log transcript of the Third-Party Viewer Developer (TPVD) meeting held on Friday, March 15th, 2024. My thanks as always to Pantera for recording the TPVD meeting and providing the video, which is embedded at the end of this article.

  • The TPV Developer meeting provides an opportunity for discussion about the development of, and features for, the Second Life viewer, and for Linden Lab viewer developers and third-party viewer (TPV) / open-source code contributors to discuss general viewer development. This meeting is held once a month  the third or fourth Friday, at 13:00 SLT at the Hippotropolis Theatre.
  • In regards to meetings:
    • Dates and times are recorded in the SL Public Calendar.
    • Commence at 13:00 SLT on their respective dates.
    • Are conducted in a mix of Voice and text chat.
    • Are open to all with an interest in either content creation or viewer development.
  • The notes herein are a summary of topics discussed and are not intended to be a full transcript of either meeting.

Official Viewers Status

[Video: 00:00-1:31]

No updates since the start of the week, leaving the available official viewer as:

  • Release viewer: version 7.1.3.7878383867, the Emoji Viewer, issued February 15, promoted March 1st, 2024 – NoChange.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
    • glTF PBR Materials Maintenance-2 RC viewer, version 7.1.4.8149792635, March 11, 2024.
    • Maintenance X RC (usability improvements), version 7.1.4.8148263040 , March 11, 2024.
    • Maintenance-W RC (bug and crash fixes), version 7.1.4.8113624779, March 6, 2024.
    • Maintenance Y RC ( My Outfits folder improvements; ability to remove entries from landmark history + Maint Z RC integration) updated to version 7.1.4.8114240508, March 6, 2024.
  • Project viewers:

General Notes

  • The “most likely” RC viewer in line for promotion to release status is the glTF / PBR Maintenance 2 viewer, with the hope it will be promoted in week #12.
  • After this, the next glTF viewer will be the Featurette viewer (which may surface as an RC viewer by the end of March 2024), which will include:
    • Geenz Linden’s work on Mirrors, including his latest updates to the capability.
    • Cosmic Linden’s work on applying glTF materials to terrain.
    • Updates which will allow the glTF / PBR swatch boxes in the Build / Edit floater display previews of the materials being selected, rather than grey boxes.
    • The first series of additional glTF extensions – Index of Refraction.
    • Initial work on 2K textures support (which does not include BoM, as this would require a significant update to the Bake Service).

WebRTC Voice

[Video: 1:49-15:03]

  • A new project intended to move Second Life away from reliance on the Vivox voice service and plug-in, and to using the WebRTC communications protocol (RTC=”real-time communication”).
  • WebRTC is something of a “defacto standard”, being built-in to most web browsers and supporting  wide range of real-time communications tools in common use (e.g. Google Meet), supporting audio, video and data communications.
  • In terms of audio / voice (the primary focus here), WebRTC has a number of standard features expected of audio communications services (such as automatic echo cancellation, better noise cancellation and automatic gain control, etc.) and offers much improved audio sampling rates for improved audio quality.
  • Work has already progress so that WebRTC supports all of the current SL Voice capabilities (e.g. region Voice, parcel Voice, peer-to-peer, ad-hoc and group capabilities, muting, etc.).
  • In addition, work has been put into securing the use of WebRTC Voice against attempts to eavesdrop, etc., and to route peer-to-peer communications via an internal server to avoid revealing user’s IP addresses to the risk of doxing, etc.
  • WebRTC will be supplied within the viewer using a library and wrapper. This will mean no requirement to run a third-party voice plugin (SLvoice.exe, as supplied by Vivox) going forward.
  • The switch to WebRTC also opens the door to adding new features and capabilities to SL Voice, some of which have been long-requested.

Current Status

  • WebRTC currently works alongside Vivox, with the Lab working to make the transition over as painless as possible, with the simulator end of support being switched to WebRTC on a limited basis to start, with the switch being thrown for all regions once there is a high enough confidence that the majority of users are on viewers with the new WebRTC code + wrapper.
    • However, once regions have been switched to use the WebRTC capabilities, viewers still running the Vivox plugin will not be able to access Voice services on them, as the WebRTC back-end does not recognise the Vivox plug-in.
    • Voice Morphing is also not part of the initial implementation.
  • There are test viewers with the necessary viewer-side WebRTC support (not yet at Project or RC status), and regions on Aditi, the Beta grid (webRTC1 and webRTC2) with the back-end support.
    • It is possible that, going forward and to allow broader testing, a region on Agni (the Main grid) could be set-up for WebRTC testing (as with the current Echo Canyon for SL Voice).
  • Wiki documentation is in progress, and includes links to the test viewers (currently Windows and Mac OS) + a public code repo and other information. Note, this is subject to further update.
  • There is a dedicated WebRTC board on the SL Feedback Portal where issues, etc., can be reported / raised for discussion.
  • It was noted that there are various complexities and problems being worked out (e.g. safeguarding peer-to-peer Voice as noted above, issues with maintaining Voice during  / after region crossings, etc.).

Mesh Download Cost Discount

[Video: 39:30-42:38]

  • As recently reported, how the download weight (“cost”) of mesh objects is calculated will be changing.
  • The net effect of this is around a 15% reduction on the download weight.
  • This should result in a reduction of the overall Land Impact for many (but not necessarily all) in-world mesh objects.
    • However, it should not be taken to mean the overall LI for an object will be reduced by 15%; while the dominant factor in calculating an object’s Land Impact, it is not the only factor, as such the amount of LI reduction will always be dependent on the impact of the other costs associated with a mesh (rendring cost, physics cost, etc.).
    • As I’ve noted in a recent project summary, Animesh objects are excluded from any Land Impact reduction, for example, as they have their own LI calculation).

In Brief

  • Some discussion on adding PBR support to Bakes on Mesh. While this is not ruled out, it was again stated that it would require a significant overhaul of the Bake Service, and has some major lead-in questions on how to best go about the work that would need to be addressed before an work could be initiated.
  • PBR Terrain:
    • At its basic, this is PBR layers, but for high-end computers, it can leverage triplanar mapping for improved repeats / quality.
    • There is also a change to how texture repeats are handled, in order to avoid issues at region boundaries.
    • A reminder that it is a viewer-side feature at presents (with a server-side control flag for enabling), piggybacking off the existing terrain tools. As such, there is no fallback from PBR terrain to texture terrain, its on or the other.
    • The PBR terrain support will initially be limited to Private regions and estates; it will not be available to Mainland.
  • A discussion on reflection probes (such as having a probe within a probe – don’t do this) and observed problems, e.g. BUG-234815 (via Github archive)
  • A – slight – issue of losing your head when using the upcoming Mirrors capability from Mouselook (see: BUG-234342 via Github archive).
Don’t do this at home, kids! Viewing oneself using the upcoming Mirrors feature when in Mouselook…
  • A discussion on emojis / unicode / Display Names.
  • A discussion on avatar complexity, policing, limitations, impact of allowing avatars to effectively be given a “free pass” in terms of proper optimisation  / LI accountability, and developing a terminology to help users (and creators?) properly understand the impact their avatars can have on general viewer performance.

Next Meeting

† The header images included in these summaries are not intended to represent anything discussed at the meetings; they are simply here to avoid a repeated image of a gathering of people every week. They are taken from my list of region visits, with a link to the post for those interested.

Have any thoughts?

This site uses Akismet to reduce spam. Learn how your comment data is processed.