2024 week #15: SL TPVD summary

Morrigan’s Roadhouse, April 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, April 12th, 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:29-1:19]

  • Release viewer: version7.1.5.8443591509, formerly the Maintenance-W RC (bug and crash fixes), version and issued March 29th, promoted April 9th.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
    • Maintenance YZ RC ( My Outfits folder improvements; ability to remove entries from landmark history, version 7.1.6.8632452945, April 12.
    • Materials Featurettes RC viewer, version 7.1.5.8472515256, April 3.
    • Maintenance X RC (usability improvements), version 7.1.5.8443777128, April 2.
  • Project viewers:

General Viewer Notes

  • Maintenance X looks to be the next viewer in line for promotion.
  • The Graphics Featurettes viewer (PBR terrain and mirrors) is expected “soon”.
  • LUAU integration (client-side scripting API): still in the early stages, and not a lot available for testing via a test viewer or similar.

Graphics Update

[Video: 4:25-6:17]

  • A new glTF mesh importer has been made available via the content Creation Discord channel (which LL have requested I do not link to here – contact Vir Linden if you have a need to be on that channel) purely for the purposes of testing by content creators.
    • This allows for the importing and viewing of static glTF-compliant mesh models and seeing how the look in Second Life.
    • This is the first element within the “glTF Phase II” project.
  • Cosmic Linden is working on bug fixes for the PBR terrain support, and Geenz Linden is putting the finishing touches to mirrors, both in the expectation of a public-facing viewer being made available.
  • 2K textures is still subject to discussions on pricing, and may or may not surface in the Featurettes viewer’s initial release.
  • Simulator support for the upcoming Graphics featurettes is due to go the the Preflight channel in week #16. This will include 2K texture support, which will most likely be disabled pending a final decision on pricing, etc.

WebRTC Voice Update

[Video: 29:17-33:19]

  • See here for background.
  • A Project viewer is being put together, and this should be available viewer soon, and the code should be fairly stable.
  • Some testing has been carried out with WebRTC on Linux with good results.
  • Feature requests for WebRTC made via the WebRTC board on the SL Feedback Portal are being evaluated and some are being actioned, together with issues being investigated.
  • The test region webRTC1 (Aditi) now has an echo capability for testing WebRTC once the Project viewer is available (or for those on a test viewer).
  • There may well be a pile-on test at the WebRTC test regions as things progress to test the new voice capability – although this might be better suited to having a test region available on Agni.

In Brief

  • There have been requests to have meeting times across several of the User Group meetings altered to be more accessible to Europeans or for those elsewhere in the US, etc. These requests are under consideration within the various user groups where they have been raised.
    • It was also noted that it would be useful if the Agenda sections of the wiki pages for User Groups were actually maintained, so that people can at least see what is up for discussion from LL’s side ahead of meetings, to help in making informed opinions on whether or not to attend.
  • [Video: 18:48-23:22] Featurettes flags:
    • It was noted that the plan for viewer projects going forward is to utilise the idea of featurette flags (as with the Graphics Featurette viewer) and have capabilities / functions new to the viewer placed behind flags (debug settings) managed via the simulator.
    • This is a reversal of the “old” mechanism for viewer features, which was led by the view making specific UDP message requests to the simulator for specific feature capabilities / function, and the simulator then respond on a request-by-request basis.
    • The advantage of this is that it potentially allows for faster viewer development iteration: features can be added to project / RC viewers and placed behind flags potentially allowing for testing on Aditi, rather than having to wait for months (/years) for a project-related viewer to surface with everything in pace and then only get actual user testing.
    • The disadvantage is communicating what in the viewer code might be tested and what is awaiting the setting of a flag from the simulator.
    • As such, LL are aware of the need for clear communications with TPVs on projects, code, and flags.
  • A general discussion on UDP message formats.

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.

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.

2024 week #7: SL CCUG & TPVD summaries + Lua(u) scripting; Jira Archive

Timeless Seasons, January 2024 – blog post

The following notes were taken from my audio recording and chat log transcript of the Content Creation User Group (CCUG) meeting held on Thursday, February 15th, 2024, and the chat log transcript and video of the Third-Party Viewer Developer (TPVD) meeting held on Friday, February 16h, 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 CCUG meeting is for discussion of work related to content creation in Second Life, including current and upcoming LL projects, and encompasses requests or comments from the community, together with viewer development work. This meeting is held on alternate Thursdays at Hippotropolis.
  • 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 both 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: 1:40-2:38]

  • On Thursday, February 15th, the Emoji viewer updated to version 7.1.3.7878383867.
  • On Wednesday February 14th, the Maintenance X RC (usability improvements) updated to version 7.1.3.7721015131.

The rest of the current crop of official viewers remains as:

  • Release viewer: version 7.1.2.7215179142, formerly the glTF PBR Materials Maintenance RC, issued December 15, promoted January 8, 2024 – numerous bug fixes and improvements – No Change.
  • Release channel cohorts:
    • Maintenance Y RC, version 6.6.17.6935642049, February 9 – My Outfits folder improvements; ability to remove entries from landmark history.
    • Maintenance-W RC viewer, version 7.1.3.7701974306, January 31, 2024 – bug and crash fixes.
    • glTF PBR Materials Maintenance-2 RC viewer, version 7.1.3.7467259489, issued January 12, 2024.
  • Project viewers:

General Notes

  • While there has been a push to get the Emoji viewer promoted, it is currently not clear which RC viewer will be the next to go to de facto release status.
  • GlTF Materials bug fixes will likely be split between the current Main-2 glTF viewer and the Graphics Featurettes viewer (see below).

Lua (or Luau) Client-Side Scripting (Both Meetings)

TPVD – Video: 3:05-17:30]

On February 9th, 2024, Linden Lab slipped out a Tools & Technology blog post announcing they are experimenting with Lua (Portuguese for “Moon”  – hence the logo for the language),  a lightweight, high-level, multi-paradigm programming language designed primarily for embedded use in applications, for client-side scripting capabilities.

At the TPVD meeting [4:44-5:12], it was qualified that LL is actually looking at Luau, a Lua VM implementation developed by Roblox. It is hoped that this will enable the code to be sandboxed from the rest of the operating system.

General Points

  • Among other potential uses, this is seen as a possible means of providing:
    • Better support for, and control of, scripted agents (including automated testing capabilities using such agents).
    • Providing a means of supporting custom UI extensions / plug-ins without having to resort to C++.
    • Adding custom displays to present exiting information in the viewer, etc.
    • At the TPVD meeting [9:28-10:06], Rider Linden noted the Luau code will not interact with LSL scripted HUDs, and should not be seen as a means of viewer-side scripting of LSL HUDs at this point.
  • The capability is not being seen as “replacing” anything, the focus is on extending capabilities and providing creators and general users with more tools they might want to use.
  • There is a  Github repository for the viewer – which is still experimental – which can be used on Aditi (the beta grid) by those interested in testing it.
  • The project is described as “very early stages”, and creators / coders should not “read too much into” the current state of the project.
    • What is in it is a basic proof-of concept implementation designed to see how feasible it might be to pursue providing a client-side scripting option. Commands within the code may change as the capability is being developed.
    • How the API(s) will work and how it will look is still a work in progress, and how Lua can be used / where limits might be applied, etc., is still subject to internal discussion at the Lab.
    • It has also not been decided if the Lua/Luau support will extend to the mobile viewer.

Discussion Points

  • Lua/Luau has been selected because it is a small, lightweight language which is not dependent on the user having to install anything else on their computer in order for it to work.
  • It was suggested at the TPVD meeting that the capability should include the ability to disable it, so that TPVs providing support for their users will not have to try to determine if an issue is part of the viewer code or the result of running a Luau script they are not familiar with.
  • There has already been considerable discussion on Lua (and client-side scripting) via the Second Life Feedback Portal, and concerns raised on issues of permissions, authorship and trust within an environment where script code can make the viewer do arbitrary (and hidden from view) things is undesirable.
    • These have been acknowledged as concerns which will need to be addressed as the work progresses.
    • Plus, it was noted that any use of Lua/Luau with user-generated content will be much further down the road than any initial implementation.

JIRA Archive and Move to Canny / Github (CCUG)

  • Thursday, February 15th, 2024 marked the official switch-over from Jira to Canny / Github.
  • The URLs for the Second Life Jira now automatically redirects to the Canny Second Life Bug Reports page.
  • Public bug reports (and feature requests) filed via Jira are mostly archived on Github.
    • Due to the different permissions environments within Jira and Github, there are some edge cases which have yet to be archived.
  • Note that any ticket that previously had restricted access e.g. (Linden Only / Originator + Lindens) is not part of this archive.
  • Please refer to the official blog post for more, if required.

Graphics / glTF (CCUG)

  • 2K textures are being looked at. LL is aware that care needs to be taken in consideration of things like memory footprint and performance (particularly for lower-end systems), so there is going to be further analysis before anything is likely to surface within a public viewer.
  • The “Graphics Featurettes” viewer is  approaching Project Viewer status, and includes:
    • 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.
  • Mirrors: the focus has been on optimisations and performance improvements to try to raise viewer frame rates. Whilst there have been improvements, the work has yet to reach the desired FPS range. Further:
    • There are a range of bugs which need to be resolved.
    • Additional work is also required on the reflection probe selection code for Mirrors, as at times the wrong probe is selected, giving less-than-desirable results.
    • Further visual improvements need to be added to the code, particularly with mirror blending against other reflection probes in the scene.
    • The UX for mirrors still needed to be finalised via the viewer UI team.
  • glTF terrain texturing: the focus has been on bug fixing and improving usability.
  • The nightly builds version of the Featurette viewer is available on Github, but is not suitable for use as a primary viewer, and the capabilities are not supported on the Main grid. As such, this viewer should only be used by those wishing to test the capabilities.
    • When testing, note that in keeping with the “featurette” approach, the capabilities may be hidden behind debug setting flags.
  • The Rumpus Room 2048 region (and neighbours) on Aditi provides back-end support for the Featurettes viewer.

In Brief

  • The CCUG meeting had a lot of WIBNI‡ discussions around inventory and other ideas, some of which are on LL’s “sometime” list, others of which are not under current consideration. As such, these are ignored for the purposes of this summary, but will obviously be covered should they become active projects.

TPVD Meeting

  • It was requested that Emojis have an option to be completely disabled in a viewer, with it being pointed out that it could be potentially confusing for people with visual impairments, particularly in group chat rife with Emoji over-use. LL has no plans for this; some TPVs (Firestorm) are planning on providing such an option.
  • A request was made to provide some form of enforced notification that groups utilising bots to relay group chat outside of SL (e.g. to a Discord server) must disclose they are doing so.
    • The main reason for this is that disclosure of IMs without consent – and group chat is a form of IM exchange – is a violation of the SL TOS, and those joining a group chat might have no idea the conversation is being relayed elsewhere.
    • There are complications with this (what if someone other than the group owner insinuates a bot relay into the group chat? How is that regulated?). But this does not necessarily negate the idea of some form of requirement for those group owners who directly utilise such relay tools.
    • A Canny feedback submission was requested, so the issue could be put before the relevant eyes at the Lab (management and legal) for further discussion.

Next Meetings

† 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.

‡ WIBNI – “wouldn’t it be nice if…”

2024 week #3: SL CCUG and TPVD meetings summary

Blue NANA Land, December 2023 – blog post

The following notes were taken from my audio recording and chat log transcript of the Content Creators User Group (CCUG) meeting held on Thursday, January 18th, 2024, and the chat log transcript and video of the Third-Party Viewer Developer (TPVD) meeting held on Friday, January 19th, 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 CCUG meeting is for discussion of work related to content creation in Second Life, including current and upcoming LL projects, and encompasses requests or comments from the community, together with viewer development work.
  • 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 both 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.

Please note: my audio recording of the CCUG suffered a glitch in writing to disk. Whilst over an hour of audio was apparently recorded according to Audacity, only 22 minutes was actually saved to disk. As the meeting utilised voice, the loss of around half the audio means that response to questions and generally commentary from the Lab was lost. Therefore, these notes only reflect the section of the meeting which did save for playback.

Official Viewers Status

No updates through the week, leaving the current crop of official viewers as:

  • Release viewer: version 7.1.2.7215179142, formerly the glTF PBR Materials Maintenance RC, issued December 15, promoted January 8, 2024 – numerous bug fixes and improvements – NEW.
  • 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.3.7467259489, issued January 12, 2024.
    • Maintenance-W RC viewer, version 7.1.3.7453541295, January 9, 2024 – bug and crash fixes.
    • Maintenance X RC, version 7.1.1.7088410646, December 7 – usability improvements.
    • Maintenance Y RC, version 6.6.17.6935642049, issued November 21 – My Outfits folder improvements; ability to remove entries from landmark history.
    • Emoji RC viewer, version 6.6.15.581551, August 31.
  • Project viewers:

General Viewer Notes

  • The glTF Maintenance 2 viewer includes, among other things, less blue tint to improve the general environment appearance.
  • The Emojis viewer is finally on the path towards an RC update, and it is hoped that this will be the finally update for the viewer before it gets promoted to de facto release status.
  • There is concern that the viewer crash rate has been higher than usual over the last several releases, so it appears viewer-side engineering effort is to be put towards determining underlying causes and rectifying them in order to bring the rate back down.
  • Longer-term there will be further Inventory work, with additional flags being added to the viewer which will enable future additional Inventory-related functionality – but it is too early in the process to go into specifics.

Mac OS Requirements

  • The Mac OS requirements for the viewer are changing as a result of Apple ending security updates for OSX 11 and earlier.
  • Whilst Mac OS 11 will now be the minimum requirement (up from 10.3), the recommendation to Mac users running Mac OS 11 or earlier is to “explore macOS upgrade options as soon as possible” due to the resultant security concerns (via Soft Linden).

Graphics / glTF and Future Viewer Development Overall

  • Following the glTF Maintenance 2 RC, it is likely there will be a further graphics RC viewer which will combine:
    • Geenz Linden’s work on Hero reflection probes and reflections / mirrors.
    • 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.
    • Possibly, the first series of additional glTF extensions – Index of Refraction, and also potentially testing support for 2K textures.
  • The idea is to try to move development within the viewer away from huge projects (like PBR Materials), which tend to take a lot of time to develop (1 to 2 years) and suffer a lot of visible feature creep. Instead, the idea is to tackle smaller components and build them out within successive RCs which come together to enable the kind of functionality sought be large scale projects.
  • It is hoped that by focusing on “featurettes”, smaller tranches of work can be more easily validated, that workflow with development and bug fixing can become a lot more linear, and individual elements of the work can be enabled as they are ready, or hidden behind debug flags until such time as functionality they are dependent upon is also ready.
  • Should this approach work with the next iteration of glTF capabilities as listed above, the approach will likely be applied to other viewer projects.
  • BUG-234728 “[PBR] Masked alpha gradient textures change with viewing angle” has been accepted as a known PBR issue, but there is no time frame on a potential fix.

RLV / RLVa Adoption

[TPVD Video 10:16-15:40 and 25:28-28:23]

  • Per a previous TPVD meeting summary, LL is interested in the potential to adopt RLV/a functionality into the official viewer.
  • Adoption has been a popular request from many users, as RLV is seen to have a lot of beneficial uses well beyond its original scope (as is the case the RLV-driven “Wardrobe” systems which allow outfits to be visually previewed and worn in just a couple of clicks), many of which either cannot be easily achieved in viewers without RLV support, or would require Experience-based scripting, which is not seen as ideal.
  • One problem is that RLV/RLVa is for many scripters, an “all or nothing” API, as it can touch on so many areas of the viewer, so that to be of value, the entire protocol would need to be implemented – which would be a major overhaul of the viewer.
  • As such, it was noted that RLV/RLVa implementation within the official viewer could be an ideal candidate for the “featurette” approach to viewer development noted above: discrete elements of the code implemented to a point where they can be validated, but placed behind flags so that they are disabled until such time as the overall implementation has reached a point where they can be jointly enabled.
  • The option to turn it off completely – as is currently the case in the majority of viewers running the RLV/a protocol – would be retained for those not wishing to use it.

In Brief

CCUG Meeting

  • Canny Feedback glTF Materials w/Bake Layers-as-Base Colour Turn White When Editing BOM Layer caused some surprise within the Lab, as applying glTF materials in the manner hadn’t been seen as expected behaviour, as is the fact that the layers display as expected outside of the appearance editor.
    • It was noted that most PBR-related Bakes on Mesh requests have been to allow the Bake Service to composite multiple PBR materials applied to different layers (e.g. being able to apply one materials set to skin, another to (say) shirt layer and another to (say) pants layer).
    • This is something LL would like to tackle, but it is seen as a significant overhaul of the Bake Service, and so is not currently on the roadmap for implementation.
  • There is a known issue with screen space reflections (SSR) on Linden Water which can make the latter appear to “glitch”. Brad Linden is still investigating this, but the solution might be tweaking to / replacement of the SSR algorithm so it “plays nicely” with Linden Water.
  • Object unpacking: a discussion on the potential to be able to unpack the contents of objects directly from Inventory, rather than having to rez them in-world first or for creators to supply them in a scripted HUD for unpacking.
    • A feature request for the reverse – Right-Click to Box In Inventory – has been accepted (which does not indicate it will be implemented in the immediate future).
    • In terms of unpacking / previewing contents of on item directly from Inventory, this is seen as a harder issue as once items are contained within another, they are effectively in the “inventory” of the containing item, rather than the account inventory, and the container’s inventory is only loaded by the simulator when it (or a copy thereof) is rezzed (or attached as a HUD) in-world.
    • Given the above, a new Inventory behaviour would be required which would simulate the object being rezzed in-world / attached as a HUD in order to trigger the simulator to load its contents. This was noted as something worth consideration even if only as a mental exercise at the moment, in order to determine how it might be handled.
    • This is the point at which my audio recording of the meeting truncated during saving, and so ends the summary notes for the CCUG meeting.

TPVD Meeting

  • [Video: 16:02-17:40] Avatar de-clouding: There have been multiple anecdotal reports of avatars taking longer to de-cloud when logging-in. The anecdotal responses at the meeting varied between no real difference and comments that AWS may have had issues over the holiday period resulting in packet loss (and thus longer load times), but this appears to have since been resolved.
  • [Video 19:20-25:09] a discussion on TPV development, licensing, open-sourcing code, what is and is not permissible, new viewers, etc. Please refer to the video for more.
  • General notes:
    • Planar alignment being broken in the Build / Edit floater is a known issue and due to be addressed.
    • There are no plans for LL to offer various “fallbacks” for PBR to “classic” (Blinn-Phong) materials to account for users currently not running PBR enabled versions of viewers, as PBR will be a part of all viewers as they update and move forward.
    • There are no plans to make SL available through platforms such as Steam (as once was the case), due to issues around content restrictions, monetisation methods, etc.
    • A discussion on Twitch not allowing SL streaming and whether LL should try to engage with them to support it. Given that there are other avenues for streaming, and Twitch is free to stand whatever barrier to use of its platform it likes, this would seem unlikely.

Next Meetings

† 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.

2023 week #48: SL TPVD meeting summary + PBR Update

Moochie All Hallows, October 2023 – blog post

The following notes were taken from my chat log transcript and audio recording of the December 1st, 2023 Third Party Viewer Developer (TPVD) meeting, together with the video recording of the meeting made by Pantera – my thanks to her as always for making it and allowing me to embed it in these summaries.

Meeting Overview

  • 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.
  • As a rule, these meetings are:
    • Generally held once a month  the third or fourth Friday, at 13:00 SLT at the Hippotropolis Theatre. See the SL Public Calendar for specific meeting dates.
    • Open to all with an interest in viewer development.
    • Conducted in a mix of text and voice.
  • The notes herein are drawn from a mix of my own chat log and audio recording of the meeting, and are not intended to be a full transcript.

Viewer Updates

  • The glTF / PBR Materials viewer, version 7.0.1.6894459864, was promoted to de facto release status on November 28.
  • The Maintenance V(ersatility) RC viewer updated to version 7.1.1.7039128750 on December 1.

The rest of the current crop of official viewers remains as:

  • Release channel cohorts:
    • Maintenance X RC, version 6.6.17.6935636398, issued November 21 – usability improvements.
    • Maintenance Y, version 6.6.17.6935642049, issued November 21 – My Outfits folder improvements; ability to remove entries from landmark history.
    • Maintenance-W RC viewer, version 6.6.17.6935629493, November 21.
    • Emoji RC viewer, version 6.6.15.581551, August 31.
  • Project viewers:

General Viewer Notes:

  • The promotion of the PBR Materials view marks the second promotion of a viewer built using the Github Actions build page.
  • It is uncertain whether or not there will be a further viewer promotion in 2023. If there is, the most likely candidate would by the Emojis viewer, although at the time of writing, this had had to go through the Github build process (which it naturally will when merged with the release viewer code-base).

PBR Materials Update

[Video: 1:23-8:55]

  • PBR Materials was shipped with a number of known bugs and issues, none of the former of which were considered to be significant enough to block the release, whilst some of the latter required further investigation for repros, etc., and the Lab decided to release whilst investigating.
  • This means a maintenance update is already in progress which will continue additional fixes, and this will also be used to catch issues and bugs reported post-release.
    • One of the post-release bugs uncovered is that – for reasons unknown – disabling transparent water impacts animation playback; see: BUG-234759.
    • Another issue revealed by PBR is that the viewer draws Linden Water twice. (not the entire scene, an issue previously remedied, just Linden Water), and this is being corrected.
  • The request is for bug and issues to keep being reported, simply because PBR Materials now has far more eyes on it, and so things that may have been missed due to the limited number of eyes on things in testing / the multiplicity of ways people use SL, means that some edge-cases, etc., may have been missed.
  • A question was asked if LL had considered off the exposure adjustments (adjusted within a set range through the Sky settings) to prevent the viewer from rendering some scenes excessively bright.
    • The response to this was that the exposure is tied to tone-mapping and a controlled HDR range, as such LL would rather users adjust to designing environments in accordance with the new (glTF-defined) tone mapping, then introducing more granular options into the viewer (such as which tone mapper to use).
    • [Video: 14:58-15:55] However, it was also noted that if TPVs wish to provide their own tone mapping options, this would not be seen as violating the so-called “shared user experience”, as they are regarded as post-processing effects (then don’t actually physically manipulate how objects appear in-world) and they are subjective in how they are seen by individual users.
  • [Video 25:25-33:27] A broader mention of additional glTF work – scene import, hierarchies, etc., some of which is mentioned in my simple  introduction to PBR Materials.
    • Part of this future work will be to look at how automatic LODs for mesh objects are produced, and whether to continue to support them through the uploader (which is limited in its abilities) or to direct content creators to other solutions for generating LODs prior to upload (e.g. via Simplygon and Blender).
    • This conversation also encompasses various limitations common to SL which glTF might alter / improve upon as it is further adopted (such as meshes currently being limited to eight faces due to the platform’s data entry model regarding meshes as prims), plus the potential impacts of changes. Please refer to the video for specifics on this discussion.

Performance Issue

[Video: 3:01-6:10]

  • One issue that is proving hard to consistence repro is that of frequent slow-downs with NVIDIA GL drivers which can result in significant FPS loss in the viewer – see: BUG-234706 for more details.
  • At the time of writing, both LL’s QA and others are trying to consistently repro the problem, however, so of the thinking is is related to a mix of CPU core and GL optimisations running on the host system.
  • The concern here is that where it has been repro’d, it has been with systems using 8-core CPUs and NIVIDIA GPUs (although what the correlation between the two might be in terms of a cause for the problem, is unclear), which could impact a fair percentage of SL users if it proves to be a widespread issue (particularly if it is unresolved when Firestorm makes a PBR release).
  • Those who feel they are experiencing a performance loss over time logged-in which reflects the notes presented in the bug report, and who can dig down into their system data for possible causes, are asked to add relevant comments to the Jira.

In Brief

“Disappearing Objects” Issues

[Video:  9:06-11:45]

Some of these may pre-exist PBR or be related to the PBR release:

  • Objects not rendering at log-in due to the inventory frame load locking main processing with the result that messages to the viewer about some in-world objects are simply dropped, and they are never rendered other than via a re-log (or TP out / back?). LL has a fix for this in progress, but as it causes some additional issues, not ETA on when it might be deployed.
  • There is an issue with mesh objects in particular not rendering (see BUG-234700 “[GLTF] Mesh objects randomly not rezzing properly at login”), but it is currently unclear if this is related to the above issue or the result of something else.
  • BUG-234616 “[PBR] Lights outside of camera frustrum are not rendered until within camera frustrum” – has been accepted by LL, but is still an open issue under investigation.

General Notes

  • [Video: 13:18-13:54] The “Fall Colours” simulator update (currently on the BlueSteel and Preflight RC channels) has a bug related to collision sounds (see: BUG-234757 “Repetitive Collision Sound?” and this forum thread) which is under investigation. It was also noted that Fall Colours is liable to be the last simulator update for 2023.
  • [Video 17:24-25:15] The question was asked if LL would accept either the entire RLVa API (Restrained Life Viewer alternative, as maintained by Kitty Barnett and used by several third-party viewer and analogous to RLV) or a subset thereof.
    • RLV/a have been shown to have a wide range of uses outside of their original intent, some of which have, to a degree been matched / had some level of equivalence via things like Experience Keys in the viewer, while others still remain useful for multiple applications – such as the use of either to manage wardrobe / outfit systems, for example).
    • The short response to this via Runitai and Vir Linden was “probably”, as LL are aware that the widespread use of RLV/a features does create something of a schism between TPVs and the official viewer. As such, a pull request of code / the opportunity to discuss has been offered.
    • This led to a wider conversation on how RLV/a works and just what form of open-source platform SL should be in terms of extensibility / code contributions – please refer to the video for more.
  • [Video 33:41-34:20] Linden Lab Office Closure for Holidays: Linden Lab will be closed other than for emergency coverage from end of business on December 22nd through until start of business on January 2nd, 2024.
    • This means that a No Change window for simulator and official viewer releases will be in place from Monday, December 18th, 2023.
  • [Video: 36:16-41:21] HTTP/2 multiplexing:
    • There is a project in development for upping the simulator and viewer to HTTP/2 (although the viewer will require a Curl update in order to handle it).
    • Requests have been made to extend this work to encompass the Asset Store, which internally at the Lab is seen as a nice to have / good to have, but no actual work in that direction in currently in-hand.
  • [Video: 48:00-End] General discussion on better support for the viewer on Linux, segueing into a discussion of possibly adopting voice options other than Vivox, and what needs to be improved within voice in general.

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.

2023 week #43: SL TPVD meeting summary

Goatswood, August 2023, blog post

The following notes were taken from my chat log transcript and audio recording of the Third Party Viewer Developer (TPVD) meeting held on Friday, October 27th, 2023. Afraid no video for this month, Pantera has a lot going on.

Meeting Overview

  • 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.
  • As a rule, these meetings are:
    • Generally held once a month  the third or fourth Friday, at 13:00 SLT at the Hippotropolis Theatre. See the SL Public Calendar for specific meeting dates.
    • Open to all with an interest in viewer development.
    • Conducted in a mix of text and voice.
  • The notes herein are drawn from a mix of my own chat log and audio recording of the meeting, and are not intended to be a full transcript.

Viewer Updates

The Github Actions (GHA) RC viewer, version 6.6.16.6566955269 was promoted to de facto release status on October 25th. This marks the first release viewer built using the Github Actions (indicated by the extended version number). This viewer also includes a significant update to the Chrome Embedded Framework (CEF) for media handling.

The rest of the current crop of official viewers remains as:

  • Release channel cohorts:
  • Project viewers:

General Viewer Notes:

  • Upcoming official viewer can be viewed on the Github Actions build page, so what is coming down the line can be seen; however artefacts within the list are not publicly linked to downloadable items such as installers. This may change in the future.
  • The Emoji RC viewer is defined as being “in test”, with the other RC viewers in a maintenance cycle to gain parity with the new release viewer.

PBR Materials Update

  • The back-end support for PBR Materials is liable to be deployed to both the BlueSteel and LeTigre RC channels (so approx 3,000 regions) in week #44 (commencing Monday, October 30th), pending the code clearing QA.
  • Core work remains in “maintenance mode” with bug fixing and a focus on driving the project forward towards release.
    • It is believed the only significant blockers remaining are those of performance issues on the Mac version of the viewer – and LL are happy to take suggestions from TPV developers on how to get the Mac variant of OpenGL perform better.
  • One additional issue which had been reported was that of non-PBR enabled viewers appearing to suffer high pack losses on PBR regions (BUG-234550). However:
    • Investigations appear to have shown this as being a “sensor ghost” – the viewer reporting messages it receives but which are not in its message template (a would be the case with a non-PBR viewer receiving PBR specific messages) as a packet loss, which is not really accurate.
    • To deal with the specific issue with non-PBR viewers on PBR regions, and as an interim measure until the PBR viewer is the de facto release viewer, the updated message template for the PBR viewer is to be incorporated into the current RC viewers, together with a suppressor to prevent non-PBR viewer generating false packet loss updates. The code will then be available to all official “pre-PBR” viewers as they are updated with the RC code.
    • TPVs wishing also wishing to eliminate the false reporting of packet loss in their non-PBR viewer releases are encouraged to also pull the PBR viewer message template commit from Github and incorporate it in any upcoming pre-PBR updates they may have in the works.
  • Overall, and allowing for any list-minute issues + clearing the Mac viewer issues, the plan is to pretty much release PBR Materials on the basis of what is currently incorporated in the simulator code and the current RC viewer.
    • This means there will be a range of known issues within the release; however, it is believed that none of them will break any existing content on the Main grid, nor will any fixes for them which are introduced following the initial release.
  • One of the outcomes of the glTF  / PBR project has been a closing of the “divide” between the simulator and viewer engineering teams, with people working on both sides as the PBR project has progressed. This will continue through further iterations of glTF support (e.g. through elements such as the Interest List, which is both viewer-side and simulator-side, and which is not currently geared towards optimal handling scene-wide updates, as will be required as additional aspects of the glTF specification are incorporated into SL).

In Brief

  • There was a general discussion on the internals of viewer development (general message handling, viewer asset throttling, location of “official” masters of things like the message template, the status of the Lab’s Libcurl implementation in light of recent libcurl security issues (in short: “stuck” on an earlier version, so not directly affected), HTTP2 vs. HTTP3 updates,  etc.).
  • A general commentary on Windows 32-bit usage (not no longer officially supported) – with Firestorm stats reporting around 1.9% of their user base still appear to be running 32-bit windows – but the majority of this figure might be down to an Intel bug reporting 64-bit users running 32-bit.
  • A general discussion on the viewer + time-zones, providing a means to add the day of the week to the viewer log-in screen, rather than those in time zones other than California have to check the local day via the viewer clock tool-tip once logged-in.
    • In this, the fact that the time reported in the viewer is “PDT” (and/or PST? I’ve never actually noticed if the viewer reflects changes between PDT and PST notation) rather than “SLT” – which is the acronym everyone in SL understands – can also be a source of confusion. As can the fact that elsewhere within Second Life properties UTC (GMT) can be used.
    • during the discussion it was indicated that LL will likely try to be more consistent in referencing SLT rather than physical-world time zones.
  • Reference was made to a forum discussion on event message polling (particularly viewer side region start-up) which can have an impact (/unintended consequence) in terms of things like message execution. Monty Linden is involved in these discussions and in investigations, and improvements will be appearing in upcoming simulator releases.
  • The above led to a general conversation on reliable SL documentation sources (the broad answer in case of technical documentation being “the code”), and the historic reasons for public-facing documentation becoming fragmented (e.g. the old issue of SL wiki pages being repeatedly vandalised & so locked from editing by users who might otherwise be well-placed to update them), etc.

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.