2024 week #23: SL CCUG and TPVD meetings summary

TheNest : Sunbird, May 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, June 6th, 2024.
  • My audio recording + the video recording by Pantera (embedded at the end of this summary) of the Third-Party Developer meeting (TPVD) held on Friday, June 7th, 2024. My thank to Pantera as always for providing it.

Meetings Purpose

  • 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 related 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 on a Friday, at 13:00 SLT at the Hippotropolis Theatre.
  • For both meetings: dates and times are recorded in the SL Public Calendar, and they re conducted in a mix of Voice and text chat.
  • The notes herein are a summary of topics discussed and are not intended to be a full transcript of the meeting.

Official Viewers Status

[Video: 0:27-3:03]

  • Release viewer: Maintenance X RC (usability improvements), version 7.1.7.8974243247, dated May 8th  promoted May 13.
  • Release channel cohorts:
    • Materials Featurettes RC viewer, version 7.1.8.9375512768, June 5.
    • Maintenance C RC (reset skeleton in all viewers), version 7.1.7.8820704257, May 6.
    • Maintenance B RC (usability updates / imposter changes), version 7.1.7.8820696922, April 29.
  • Project viewers:

General Viewer Notes (Both Meetings)

  • The latest Graphics Featurettes RC viewer is seen as the last RC update prior to this viewer being promoted, hopefully in week #24 if it passes QA. This will see the official release of Viewer-side setting of PBR materials for terrain; 2K texture upload support; glTF / PBR mirrors.
    • A request has been made to fix an alpha asset mode issue prior to release. This is seen as unlikely, unless QA reject the viewer going to release status.
  • It is anticipated the WebRTC viewer will move from project viewer status to RC viewer status with its next update.
    • The initial RC viewer will support both Vivox Voice and WebRTC, depending on how voice is handled on the back-end for any given region.
    • However, there may be issues when trying to use Voice across different regions / in groups where use of WebRTC and Vivox is mixed.
    • See here for more on the WebRTC project.
  • A planned Maintenance RC viewer (Maint A) is currently pending the resolution of a number of fixes, hence why Maint B and C are currently in the pipeline.

Graphics / glTF

General Notes on glTF / PBR (CCUG Meeting)

  • Cosmic Linden is working on custom repeats for PBR terrain, allowing for higher texel densities to help reduce the “stretching” of textures of elevation changes)  and better support 2K textures.  This work is *not* part of the PBR Terrain updates in the Graphics Featurettes viewer, but will be part of a follow-on set of glTF updates currently contain within a development viewer branch on Github.
    • This branch also includes a improvement specifically for Mac performance related to actions such as editing, moving UI elements around, etc.
  • It has been noted that the current implementation for reading & writing glTF data has some limitations in terms of SL, so there is some internal work to re-write it to better fit the SL systems / services. Part of this work means Geenz is re-writing some of the work on glTF transmission to better fit the SL asset loader.
    • This work will also assist the development work going into the glTF scene import project.

glTF Scene Import (TPVD Meeting)

[Video: 5:18-18:10]

  • Recap:
    • Development of the ability to import glTF scenes (objects, materials, animations, etc.), directly from Blender to Second Life. This includes a node hierarchy which will allow some degree of editing / modification of scene elements once imported. There will also be the ability to export scenes back to Blender for more extensive update by the creator. Both of these latter points (editing / export) will be subject to the SL permissions system.
    • Scenes are liable to use the MSFT glTF extension for Level of Detail (LOD), as this allows LODs to be set per node within a scene, providing more intuitive / consistent LOD switching management (based on screen coverage).
    • There will be constraints placed on scene imports (e.g. will not be able to have a scene which exceeds the capacity of a region; scenes will not be able to span more than one region (so as to avoid issues with physics, etc.); and so on).
  • Status:
    • Rapid prototyping of the ability to upload and preview glTF scenes is progressing. This can be tested via prototype viewer made available through the Content Creator Discord channel (apologies, but due to a request from Linden Lab I cannot provide details on how to join this channel, outside of contact Vir Linden) and on the glTF development / test regions on Aditi.
    • The functionality currently remains that of being able to preview a scene – there is no actual simulator-side representation of the scene (e.g. it is viewer-side only, so only visible in the viewer used for the preview). Obviously, this will change as the work progresses.
    • For those wishing to test the capability, note that there is an known issue with large file uploads for glTF scenes failing. This is being investigated by Pepper Linden.
    • The work is now within the general development branch of the graphics / glTF work.
    • Limits (avatar limits, land impact, number of vertices, faces, etc), will be defined in detail as the project develops, with any defined as a “must” within the glTF specification being a hard line, those defined as a “should” being considered as the baseline.
  • [Video: 20:50-21:55] Transitioning to glTF scene support (when it ready for more widespread availability) will be in a manner akin to the introduction of mesh support back in 2011/12: those running viewers that have not updated to the code supporting glTF scene rendering will not see any scenes they enter, but will instead see “something akin to a little chiclet of a sculpt”.

 

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.

2024 TPVD Meetings: May 10: WebRTC; SL21B PBR

Alone, May 2024 – blog post

The following notes were taken from the video recording of the Third-Party Viewer Developer (TPVD) meeting held on Friday, May 10th, 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 on a 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: 01:24-2:28]

  • The Maintenance X RC (usability improvements) updated to version 7.1.7.8974243247, May 8.
  • The WebRTC Voice work was released as a project viewer, version 7.1.4.8947030231, May 8.
  • The Puppetry project viewer has been withdrawn.

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

  • Release viewer: 7.1.6.8745209917, formerly the Maintenance Y/Z RC ( My Outfits folder improvements; ability to remove entries from landmark history), dated April 19 and promoted April 23 – No Change
  • Release channel cohorts:
    • Maintenance C RC (reset skeleton in all viewers), version 7.1.7.8820704257, May 6.
    • Materials Featurettes RC viewer, version 7.1.7.8883017948, May 2.
    • Maintenance B RC (usability updates / imposter changes), version 7.1.7.8820696922, April 29.

General Viewer Notes

  • Maintenance X looks to be the next viewer in line for promotion – most likely in week #20.
  • Following the promotion of Maintenance X, the focus will be on getting the Materials  Featurettes viewer promoted, as the simulator-side support for this is already available across the Main grid ( although see below).

Viewer Code White Space

[Video: 24:58-29:00]

  • White spacing in viewer code has long been an issue in that it can be a mix of both tabs and spaces.
  • A move to standardise on either tabs or spaces has been mooted but never formalised because of the concerns that any bulk change would produce conflicts in things like code merges.
  • Signal Linden has been investigating this, and found that providing an appropriate command line option is given, such conflicts between white space using tabs and white space using spaces can be avoided.
  • As a result, the current Maintenance X viewer does standardise white space.
  • To avoid potential conflicts when merging to this code base after Maintenance X goes to de facto release status, Signal has produced documentation on how to make such a merge.
  • Those involved in viewer development (TPVs and self-compilers) are encouraged to read this documentation prior to merging with Maintenance X.

Graphics / Materials Featurette Update

[Video: 2:36-6:12]

  • The is the viewer with the new PBR terrain code, support for 2K texture uploads, and PBR mirrors.
  • The Graphics team believes all issues considered to be showstoppers for this viewer have now been fixed, and the viewer is going through what is hoped will be a final QA pass.
    • However, there is one remaining issue which can crash the viewer, but this might be down to running the viewer on unsupported hardware as much as requiring a fix.
  • Remaining issues / updates will be handled through the main glTF development branch of the viewer.
    • As the server team has switched to the Git Flow  Git branching strategy, and there are conversations about moving to this for the viewer as well.
    • As such, the glTF development branch is a step towards the use of Git Flow.
    • If the approach works for the glTF work, it will likely be adopted for all viewer development work.
  • There was a brief debate as to whether the Featurettes viewer will be available for promotion sooner rather than later, with Dan Linden indicating that there is still “quite a bit of testing” still to be done.

glTF Scene Import

[Video: 40:40-48:15]

  • More generally covered in my CCUG meeting summaries.
  • This is a glTF project to allow glTF scenes (objects, materials, animations, etc) can be imported to SL as assets and brought in-world as a series of nodes rooted in a prim, with the nodes updated with both tools in the viewer and / or using LSL, and ensuring they stay in synch with all viewers looking at them.
  • Overall, the idea is a “one touch” import to get a scene from Blender to SL, where it should appear exactly as it is in Blender, modify it as required in SL via the build tools  / LSL or – subject to permissions – export it back to Blender for update.
  • Currently at the prototyping stage, with test viewers and test regions on Aditi able to preview a scene (that is, see it within the viewer without the scene being physically imported into SL) for reference purposes, .
  • Work is “almost” at a point where a scene can actually be uploaded to SL and stored as an inventory asset and then downloaded and rendered by the viewer – although more back-end work (such as with the CDN pipes) needs to be carried out.
  • There are multiple questions still to be addressed concerning the overall data model (LOD generation, LI, linking etc., scene export (for updating) and working with the SL permission system, physics / collision shapes, etc.), so definitive answers to question on these topics cannot be properly addressed at present.
  • A video demonstrating how this works can be seen at 44:43.
  • This moved into a general discussion on the glTF work – please refer to the video below and my CCUG updates, as linked to above.

WebRTC Voice Update

Summary

  • 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”).
  • Roxie Linden is leading this work.
  • 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.
  • 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.
    • Care is being taking to address potential security issues (e.g. preventing eavesdropping, exposing users’ IP address (by using an internal proxy server), etc.).
  • The switch to WebRTC also opens the door to adding new features and capabilities to SL Voice, some of which have been long-requested.
  • 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.
  • LL will be looking to Linux devs to help give feedback on how well WebRTC is working on their Linux viewers.

[Video: 6:29-17:35]

Status

  • As noted above, a WebRTC project viewer is now available via the Alternate Viewers page.
  • Viewer work is currently focused on bug fixing, and the hope is the viewer will move from project status to RC status “pretty shortly”.
  • The overall hope is that as WebRTC is a library + wrapper, changes will be fairly localised within the viewer, speeding the implementation process.
  • The schedule for WebRTC is described as “pretty aggressive” and TPV developers are encouraged to look at the code repository.
  • Work is in progress / has been completed on getting a simulator Snack RC channel set-up with the required back-end support for WebRTC voice – but this will be spatial voice only, not peer-to-peer / Group or ad-hoc Voice communications for the time being.
    • Region names for this channel were not given at the meeting.
    • In line with the aggressive viewer development cycle, the team is looking to have WebRTC support available across at least one full RC channel by the end of June (simulator update schedules permitting) and potentially have the back-end support live across the Main grid by the end of July 2024.
    • Those wishing to test peer-to-peer, Group and ad-hoc Voice via WebRTC can do so via the Aditi (Beta grid) webRTC1 test region.
  • There will be further updates to the WebRTC library during the development cycle, as the Lab updates to the latest releases from the WebRTC open-source development website.
  • As the work progresses, there will be a blog post to provide and overall update on the work, including the proposes schedule for deployment and explanations of any caveats / potential roughness during the transition (see below as well).

WebRTC and Vivox Voice Support

  • The initial versions of the viewer (project and RC) will support both WebRTC and Vivox for Voice.
  • As peer-to-peer / Group or ad-hoc Voice support for WebRTC is added to the back-end, things might “get a little weird” as the viewer swaps between WebRTC and Vivox, but Roxie Linden is trying to ensure things are correctly negotiated (e.g. if there is a Group chat going on with everyone using WebRTC, and someone joins from a region still using the Vivox back-end, the viewer will negotiate everyone to using Vivox.
    • This means that for purely testing WebRTC for Group, peer-to-peer and ad-hoc Voice (as support for these are added to the simulator code), it is important for all testers to be on regions with WebRTC support only.
  • Voice will not travel across region boundaries between regions using WebRTC and Vivox (and vice-versa)
    • This should not be an immediate issue, but might become noticeable during the transitional period when WebRTC support is being deployed across the main simulator RC channels and before it is grid-wide.
    • Voice will obviously work across regions using the same voice service (e.g. between regions which are both running WebRTC).
  • Given the aggressive schedule for the work, it is hoped that support for both WebRTC and Vivox within the viewer will be for a limited duration.

SL21B – glTF and Blinn-Phong

[Video: 18:19-24:38]

  • To ease the workload for creators building for SL21B (opening on Friday, June 21st, 2024), Linden Lab has stipulated they do not have to include Blinn-Phong (aka “SL legacy materials”) fallbacks in their build if they opt to use glTF PBR materials.
  • This means viewers, in keeping with the expected behaviour, should only display the glTF materials, and should not under any circumstance attempt to display any fallback (as doing so will result in content rendering as grey or white objects).
  • This is likely to impact any viewers that do not support PBR materials (and content will not look “right”).
  • However, the above should not be taken to mean that LL are looking to “get rid of” Blinn-Phong (e.g. objects have been created using Blinn-Phong only, they will continue to display using Blinn-Phong reflections, etc.).
  • Runitai Linden also noted:
Sometime between now and then, we’ll likely start making the LSL scripts that modify Blinn-Phong parameters modify their PBR equivalents, or do nothing when a PBR material is applied. So llSetColor, for example, would set the base colour, not the diffuse colour. That should make life a lot simpler for scripters going forward, as scripters have been giving us feedback that trying to do something simple like that with existing scripts is impossible as they have to do a check to see if a glTF material is applied, and if there is then use llSetPrimParams and if there isn’t, use llSetColor.
  • It was unclear if this will require a conversion to linear colour (as glTF uses SRGB), given the LSL for GLTF_BASE_COLOR requests linear colour – or whether there is a conversion from linear colour to SRGB when using GLTF_BASE_COLOR. This is to be looked into.

In Brief

  • [Video: 30:10-37:47] 2K textures:
    • There have been concerns raised over “abuse” of 2K textures (e.g. people being “forced” to use them because “everyone else is”).
    • Runitai Linden is of the opinion that with functional texture streaming, use of 2K textures is not as big a problem as is being presented in some cases, because the full 2K texture is not necessarily downloaded rendered by the viewer until the viewer zooms right in on the object face using it; otherwise the texture should be displayed at the pixel resolution (e.g. if the face is only taking up 64×64 pixels, then the 64×64 version of the texture is selected and used.
  • Bakes on Mesh support for 2K textures: this is currently not a project under consideration, but the Lab acknowledged that this might need to be re-thought in terms of what is required and scheduling priority.
    • It was noted that updating the Bake Service would not be sufficient for 2K texture use, as the service also composites wearable textures, so the allowed texture resolution for all wearable layers will have to be updated in order for BoM to effectively support 2K textures.
    • That said, updating BoM to support 2K textures is seen by the Lab as a matter of “when” and not “if”. In this, it was further noted that support for the work being shown through the Feedback Portal from users will help LL determine / re-evaluate the priority of the work compared to other projects.

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