2024 week #27: SL TPVD meeting summary

Nathhimmel: Lavender Fields of Madame Loutre, June 2024 – blog post

The following notes were taken from 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, July 5th, 2024. My thanks to Pantera as always for providing it.

Meetings Purpose

  • 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: 1:25-4:45]

  • Release viewer: version 7.1.8.9375512768, formerly the Graphics Featurettes RC viewer dated June 5 and promoted June 10th.
  • Release channel cohorts:
    • WebRTC Voice RC, version 7.1.9.9688089989, July 1.
    • Atlasaurus RC (object take options; improved MOAP URL handling), version 7.1.9.9620320242, June 27.
    • Maintenance B RC (usability updates / imposter changes) 7.1.9.9555137545, June 21.
    • Maintenance C RC (reset skeleton in all viewers), version 7.1.9.9469671545, June 14.
  • Project viewers:
    • None.

General Viewer Notes (Both Meetings)

  • The switch to working from multiple viewer RC branches to a single development branch is continuing.
    • This will mean in future there are likely to be fewer RCs in the pipeline than has bee the case for roughly the last decade (and sees the visible aspect of viewer development and release process swing back towards how it appeared prior to the switch to using RC channels).
    • Parallel tracking of viewer development will continue for a while, given the fact there are currently four RC viewers in flight.
  • The above change-over will not prevent contributions being accepted.

WebRTC

[Video; 5:00-7:28]

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.
  • Key benefits:
    • WebRTC supports a wide range of real-time communications tools in common use (e.g. Google Meet), supporting audio, video and data communications, and is thus something of a “standard” approach.
    • Offers a good range of features: automatic echo cancellation, better noise cancellation and automatic gain control, much improved audio sampling rates for improved audio quality.
    • Opens the door to features and capabilities to voice services which could not be implemented whilst using Vivox.
  • In addition:
    • LL are are of some of the security concerns around WebRTC voice (e.g. risk of eavesdropping, exposure of users’ IP addresses, etc), and is actively working to block these through the use of an internal proxy service.
    • LL will be looking to Linux devs to help give feedback on how well WebRTC is working on their Linux viewers
  • Feature requests for WebRTC should be made via the WebRTC board on the SL Feedback Portal.

Status

  • Work has been on stabilising WebRTC and getting the viewer to RC status so that TPVs can look at it.
  • Overall, development work is in a “wrapping-up” phase.
  • Currently, LL is looking at August for a potential deployment across all of SL on the server-side.
    • This will follow the usual approach of roll-out to the simulator RC channels first, then to the SLS Main channel.
    • As a result, there will be some short-term issues around peer-to-peer, Group and ad-hoc voice connections between those on regions running the two different voice services (Vivox and WebRTC).
    • Depending on how the deployment goes (e.g. first to a single RC, then multiple RCs, then the SLS Main channel), it is hoped that any such issues will only be for around 2 weeks.
  • Viewers adopting the WebRTC code prior to or during this deployment period will be able to process both WebRTC and Vivox voice.

glTF Update

[Video: 7:42-13:23]

  • As a result of the Firestorm PBR release, Runitai Linden has been revisiting the issue of memory use in the PBR-enabled viewer code on lower-specification computers.
  • Geenz Linden is continuing to work on various glTF extensions, including glTF index of refraction (IOR) and transmission – with the work on the latter potentially being wrapped up.
  • Cosmic Linden has been tweaking the PBR terrain work for PBR transforms on terrain (one transform per material).
  • [Video 39:44-41:14] requests have been made for reflection probes in shapes other than cubes and spheres (e.g. cylinders, triangles, hemispheres) to account for more awkward interior space shapes (e.g. in roof areas). This is viewed as “highly unlikely” at the Lab.
    • However, the mirror capability may be extended to include sphere reflection probes at some point “if all goes well”.

PBR Terrain Painting

  • This is the next planned project for Cosmic Linden, and is in the very early stages of planning, so things are subject to potential change.
  • Currently, the thinking is:
    • The four PBR materials currently used for PBR terrain would remain available for use / painting.
    • The painting element would allow a user to define how these materials are mixed, rather than having to rely purely on the the height map.
      • E.g. if you have a paint map for a region, you’ll be able to blend the materials based on that, rather than having to use the height map, and define where areas of grass or rock or dirt, etc., appears on the ground.
    • The paint map is likely to initially be on the basis of one blended texture at region level (not parcel), although the resolution of the texture is still TBA at the time of writing.
    • The permissions for terrain painting will be based on ability to edit the height map (if you can alter the latter through the Region settings, then you’ll be able to use the terrain painting capability).
  • Terrain painting will be a significant departure in how terrain texturing has been managed, requiring a new entity to be introduced. This is also still being thought through, but it is unlikely it will be a new asset type stored on the asset servers.
  • [Video: 16:15-16:29] No decision has been made on making terrain painting open to scripted control.
    • Cosmic is open to feedback on how this might be used, if enabled (e.g. a scripted explosion leaving a detonation mark on the ground for a period of time).

In Brief

  • Reflections turn black when zooming in close is an issue which appears to be related to the use of mirror probes as well as “normal” reflection probes. If you are impacted by this, add your vote.
  • Auto-exposure under PBR (adjusting the general scene brightness when looking at one or more very bright objects in the scene), with people interpreting it as a bug, particularly with the release of Firestorm PBR.
    • It’s been suggested that a wiki page on how auto-exposure  works should be produced, to which people can be pointed to help them understand what it is and how it works. Or potentially a debug setting or similar to disable (with a warning things may not display correctly as a result).
    • Canny feedback has been requested on issues being encountered / suggestions for related features (such as the setting noted above).
    • This led to an extending general discussion on lighting and rendering – please refer to the video.
  • RLV/RLVa adoption by the Lab is still in discussion and described as something the Lab wants to do, but it does represent an extensive change to their viewer.
    • As such, it is likely that as contributions are made, they will be pulled into the official viewer incrementally (presumably with some going behind debug flags until such time as they can be properly enabled).
    • Overall, it now appears the Lab does want to support the full RLV/RLVa feature set, rather than just a sub-set thereof as had been previously indicated as a possible route.
  • Opening the PBR terrain painting to scripted control led to a conversation on scripted weather systems – such as being able to change the ground appearance to match the season; having the ground appear to be covered by snow when it snows, etc. There have been requests for this, but it is not something the Lab is currently working on.

 

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 #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…”