2023 week #39: SL TPVD meeting summary

Cloud Island, July 2023 – blog post

The following notes were taken from my chat log transcript of the Third Party Viewer Developer (TPVD) meeting held on Friday, September 29th, 2023, together with the video recording of the meeting made by Pantera Północy, which is embedded towards the end of this summary. My thanks as always to Pantera for making these recordings.

Meeting Overview

  • The TPV Developer meeting provides an opportunity for discussion about the development of, and features for, the Second Life viewer, and for Linden Lab viewer developers and third-party viewer (TPV) / open-source code contributors to discuss general viewer development.
  • As a rule, these meetings are:
    • Generally held once a month  the third or fourth Friday, at 13:00 SLT at the Hippotropolis Theatre. See the SL Public Calendar for specific meeting dates.
    • Open to all with an interest in viewer development.
    • Conducted in a mix of text and voice.
  • The notes herein are drawn from a mix of my own chat log and audio recording of the meeting, and are not intended to be a full transcript.

Viewer Updates

[Video: 0:00-3:17]

The Inventory Extensions RC viewer updated to  version 6.6.15.581961, on September 28th.

The remaining official viewer currently in progress stay unchanged as:

  • Release viewer, version 6.6.14.581101, promoted August 23.
  • Release channel cohorts:
  • Project viewers:

General Viewer Notes:

  • Given the speed at which the Inventory Extensions RC viewer has been iterated of late and bugs addressed whilst also reducing the crash rate, it now looks as if this will be the next viewer to get promoted to de facto release status.

PBR Materials Update

The following was offered in lieu of a CCUG meeting during the week.

Protocol Update

[Video: 1:05-3:16]

  • The communications protocol changes referenced in my recent CCUG meeting summaries (and of particular relevance to the viewer) are with LL’s QA, and also live on a series of regions on Aditi (Rumpus Room 31 through 34. An RC viewer update with the code supporting these changes is pending release until the simulator code has passed QA testing, hopefully in week #40.
  • This change should overcome the bandwidth overload between the viewer and the simulator with respect to scripted PBR updates. It is described as being terser than the current version, using much the same throttling and interest list culling as used in terse updates, and de-couples PBR updates from full object updates.
  • As it is a protocol change:
    • The deployment of the simulator code is liable to be cautious – initially to the Preflight PBR regions on Agni, with testing restricted to those before the update is deployed to the more public Rumpus Room regions on Agni, and then wider (full simulator RC channel?) deployment after that.
    • Some regressions are anticipated as this change gets to be used by a wider audience in Agni testing.

PBR Terrain

[Video: 4:48-5:05]

  • This is an offshoot project from PBR Materials covered in previous TPVD meeting summaries and particularly CCUG meeting summaries). The focus is on applying PBR materials as terrain textures to give an improved look to SL default terrain. It is not terrain painting (this is described as “something that’s on the radar” for possible future implementation).
  • The work includes all supported materials other than displacement maps, and is currently primarily viewer-side, but may be extended into the simulator code.
  •  The focus for Cosmic Linden at the moment is on improving terrain normal maps.

In Brief

Refer to the video for the following:

  • [Video: 5:15-7:20] Github Actions: LL is continuing the work to move their viewer build processes over to Github Actions, and this work is now seen is being “extremely close” to going live for all viewer builds from the Lab. In particular, this will potentially allow TPVs using the same build infrastructure to more readily leverage elements of the LL build process.
    • For example, scripts used to manage the build process under Team City have had to remain private to the Lab, due to the requirement for them to include credentials. With Github Actions, the credentials can be removed, allowing the scripts to become public actions and thus be used by TPVs.
  • [Video: 13:14-22:34]  Code-signing. This follows from the last TPVD meeting, and offered as clarification. Both Windows and MacOS require code signing through different mechanisms. This helps avoid things like anti-virus software and firewalls throwing up potentially off-putting warnings to users trying to install viewers.
    • As a purely speculative point in the last meeting, Vir Linden noted that within Github Actions, the infrastructure the Lab will be using for code signing can be opened-out to allow TPVs to leverage it using their own credentials, potentially helping to smooth the process of code-signing for those wishing to adopt it.
    •  However, it was noted that the problem for TPVs wasn’t so much the code-signing process as trying to keep personal information required by the credentials from being revealed. There has been one known case of this happening, exposing the individual concerned to potential doxing.
  • [Video: 25:44-end] Discussion commencing with building a TPV progressing through message protocols to region identification protocols between viewer and simulator (see this forum thread). It further encompassed:
    • A more general discussion on LSL coding (including the potential for impact on region / simulator / simhost performance), procedural changes to things like object movement to prevent message spamming, etc.
    • Commentary on the viewer stats and that due to the level of inaccuracy involved with the bandwidth /ping and packets in/out statistics, whether this should be removed, or if not removed, should at least be viewed with “a degree of scepticism” in terms of their reliability / accuracy, with the note that tools such as Wireshark / Tracy should be used which accurate stats gathering is required.

TPV Notes

  • [Video 9:24-13:10] Black Dragon is developing an improved first person IK system which constrains the camera to the avatar’s chest position, and which smooths camera turning with the avatar.
    • This has a range of uses, including with weapons / combat, where it allows them to be properly aimed, including up and down.
    • It is also something LL might review and consider for implementation in the official viewer, were the code to be formally contributed.
  • Firestorm has been shadowing PBR development with and “alpha” Firestorm PBR viewer available to a limited cohort of testers, and plan to have an update to that viewer based on the Lab’s protocol updates once the code has been made available on simulators on Agni and the Lab’s PBR RC viewer has been updated with the viewer-side code.

Next Meeting

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

2023 SL SUG meetings week #39 summary

The Enchanted Library, July 2023 – blog post

The following notes were taken from the Tuesday, September 26th Simulator User Group (SUG) meeting. They form a summary of the items discussed and is not intended to be a full transcript. A video of the entire meeting is embedded at the end of the article for those wishing to review the meeting in full – my thanks to Pantera for recording it.

Meeting Overview

  • The Simulator User Group (also referred to by its older name of Server User Group) exists to provide an opportunity for discussion about simulator technology, bugs, and feature ideas.
  • These meetings are conducted (as a rule):
  • They are open to anyone with a concern / interest in the above topics, and form one of a series of regular / semi-regular User Group meetings conducted by Linden Lab.
  • Dates and times of all current meetings can be found on the Second Life Public Calendar, and descriptions of meetings are defined on the SL wiki.

Server Deployments

  • On Tuesday, September 26th, simhosts on the SLS Main channel were restarted without any code update.
  • On Wednesday, September 27th, the RC channels will be similarly restarted without any change to the simulator version.

Viewer Updates

No updates to the official SL viewers at the start of the week, leaving the current list as:

Region Crossing Code Tests

Maestro Linden is leading work on trying to improve avatar arrival performance during regions crossings. As we all know, avatars entering a region that is busy / active with other avatars, can have an impact on simulator performance – which although not as bad as it once was thanks to an earlier tranche of this work a few years ago, is still a problem. The aim of this work is to smooth things even further, initially for the case of teleports, but later with direct / vehicle crossings.

As a part of this work, two regions have been opened on Agni – Arrival Terminal 1 and Arrival Terminal 2, each with a different configuration for handling avatar teleport arrivals. These were used through the greater part of the meeting for qualitative and comparative testing with controlled (and monitored) group teleports from regions with the current teleport protocol and directly back and forth between the two, with LL gathering up the resultant logs for review.

Following the session, Maestro indicated that further testing may take place at the next SUG testing, and the two regions may be places adjacent to one another to allow for testing physical crossing / vehicle crossings between them.

In Brief

  • Leviathan Linden is continuing to work on game controller integration with SL, but outside of having some issues in getting some buttons to recognise / be recognised by SL when using the SDL2 API.
  • Rider Linden is now in the midst of “a rather large refactor that should modernise how the simulators handle HTTP connections (both internally and with the outside world.”
  • A brief, general discussion on LSL, the Mono bytecode interpreter and its ability to potentially allow the use of other languages (e.g. C#) on top of it by having it call native functions in the selected language.

† 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 rooftop of people every week. They are taken from my list of region visits, with a link to the post for those interested.

2023 SL viewer release summaries week #38

Logos representative only and should not be seen as an endorsement / preference / recommendation

Updates from the week through to Sunday, September 24th, 2023

This summary is generally published every Monday, and is a list of SL viewer / client releases (official and TPV) made during the previous week. When reading it, please note:

  • It is based on my Current Viewer Releases Page, a list of all Second Life viewers and clients that are in popular use (and of which I am aware), and which are recognised as adhering to the TPV Policy. This page includes comprehensive links to download pages, blog notes, release notes, etc., as well as links to any / all reviews of specific viewers / clients made within this blog.
  • By its nature, this summary presented here will always be in arrears, please refer to the Current Viewer Release Page for more up-to-date information.
  • Note that for purposes of length, TPV test viewers, preview / beta viewers / nightly builds are generally not recorded in these summaries.

Official LL Viewers

  • Release viewer,  version 6.6.13.580918, formerly the Maintenance U(pdate) RC viewer, version 6.6.14.581101, promoted August 23.
  • Release channel cohorts:
    • Inventory Extensions RC viewer, version 6.6.15.581862, September 21.
  • Project viewers:
    • No updates.

LL Viewer Resources

Third-party Viewers

V6-style

  • No updates.

V1-style

  • Cool VL Viewer Stable branch updated to version 1.30.2.28 and Experimental branch updated to version 1.31.0.6 on September 24 – release notes.

Mobile / Other Clients

  • No updates.

Additional TPV Resources

Related Links

2023 week #38: SL CCUG meeting summary: PBR and Puppetry

Moksha, July 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, September 21st, 2023.

  • 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.
  • As a rule, these meetings are:
    • Held in-world and chaired by Vir Linden.
    • Conducted in a mix of voice and text.
    • Held at 13:00 SLT on their respective days.
    • Are subject to the schedule set within the SL Public Calendar, which includes the location for the meetings.
    • Open to all with an interest in content creation.
  • The notes herein are drawn from a mix of my own chat log and audio recording of the meeting, and are not intended to be a full transcript.

Viewer Updates

The Inventory Extensions RC viewer updated to version on Thursday, September 21st. The rest of the current list of official viewers remains as:

  • Release viewer, version 6.6.14.581101, promoted August 23.
  • Release channel cohorts:
  • Project viewers:

glTF Materials and Reflection Probes

Project Summary

  • To provide support for PBR materials using the core glTF 2.0 specification Section 3.9 and using mikkTSpace tangents, including the ability to have PBR Materials assets which can be applied to surfaces and also traded / sold.
  • The overall goal for glTF as a whole is to provide as much support for the glTF 2.0 specification as possible.
  • Up to four texture maps are supported for PBR Materials: the base colour (which includes the alpha); normal; metallic / roughness; and emissive, each with independent scaling.
  • In the near-term, glTF materials assets are materials scenes that don’t have any nodes / geometry, they only have the materials array, and there is only one material in that array.
  • As a part of this work, PBR Materials will see the introduction of reflection probes which can be used to generate reflections (via cubemaps) on in-world surfaces. These will be a mix of automatically-place and manually place probes (with the ability to move either).
  • The viewer is available via the Alternate Viewers page.

Further Resources

General Status

  • A update is coming up for deployment which should fix the protocol issue which has been a issue for the last several weeks (and noted in these summaries). Once deployed:
    • It will require those testing PBR materials to make sure they are using the latest RC viewer, or they will not be able to see edits to materials in-world.
    • Any scripts which have been created for handling PBR materials will need to be re-compiled as a result of a fix to prevent a conflict with one of the LSL constant values.
  • Concern has been raised about lighting using reflection probes, specifically where probes do not fit with a specific structure, leading to the indirect lighting from the probe “leaking through walls, floors, ceilings. This is seen as something to address once Vulkan support has been implemented, as this will open the door to the use of things like shadow atlases.

Ambient Lighting / Sky Brightness

  • A “big change” is being implemented in how environment ambience interacts with reflection probe ambience in an attempt to overcome the issue of “non-PBR” EEP enlivenments looking overly dark on the glTF/PBR viewer code.
  • Essentially, this will mean that environment ambience should be pretty much unchanged, unless one or more reflection probes with an ambience setting greater than zero but less than 1 are used within a scene.
    • If the probe’s ambience is set above 0 but below 1.0, then the probe’s ambience will be mixed with the environment (sky) ambience.
    • If the probe’s ambience is set to greater than 1.0, then the environment ambience will be completely ignored in favour of the probe’s indirect lighting ambience within the probe’s sphere of influence.
  • This should allow for a better balance, in that interior scenes can be set to utilise probe ambience, allowing for darkened room / cave, etc., interiors, without making the environment outside the influence of the probe(s) unduly dark / darker that it should be.
  • In addition, the tone mapping in the PBR renderer is being adjusted to prevent the viewer crushing colour values below 22 (i.e. towards their darker tones). This will better align the HDR colour mapping to SRGB without over-saturating blacks.
  • Longer-term, LL is considering a tone map / texture look-up people can plug-in to for sky settings, but for now the drive is to just drive home the idea that with PBR, tone mapping is now a part of the render pipe, and creators should not bake their preferred tone mapper into their content.

Mirrors

  • Mirrors are a part of the glTF / PBR materials project, but something of a separate tranche of work.
  • The idea is provide the means to have via high resolution reflections (i.e. mirrors) within a scene.
  • Initially only one active mirror surface per scene will be active for any viewer.
  • The process will use the PBR reflection probes mechanism, combined with a automated “Hero Probe” mechanism which with generate high resolution (512×512) “reflections” for the mirror.
  • The system will operate on the basis of avatar / camera proximity to a mirror surface triggering the closest reflection probe to become a “Hero Probe” for that avatar / camera. This means that if there are multiple mirrors placed within an environment, only the one closest to a given avatar / camera will be active and display the “reflections” generated by the reflection probe.
  • Depending on testing and performance, the number of mirrors might be expanded to two – one for mirror surfaces and one for Linden Water to generate high resolution water reflections where appropriate.

Status

  • An issue with the mirror code eating up all available VRAM has been addressed.
  • A viewer build is being queued-up in preparation to be made available via the Content Creators Discord channel.
  • Remaining work is seen as ensuring there is only one placement mode for Hero probes for mirrors, which should work on most objects and on ensuring culling works correctly (e.g. ensuring nothing behind the mirror surface gets rendered ad a reflection in the mirror.
  • There may also be some data modelling changes and shader tweaks along the way.

Puppetry Project

Summary

  • Previously referred to as “avatar expressiveness”, Puppetry is intended to provide a means by which avatars can mimic physical world actions by their owners (e.g. head, hand, arm movements) through tools such as a webcam and using technologies like inverse kinematics (IK) and the  LLSD Event API Plug-in (LEAP) system.
    • Note that facial expressions and finger movements are not currently enabled.
    • Most movement is in the 2D plain (e.g., hand movements from side-to-side but not forward / back), due to limitations with things like depth of field tracking through a webcam, which has yet to be addressed.
  • The back-end support for the capability is only available on Aditi (the Beta grid) and within the following regions: Bunraku, Marionette, and Castelet.
  • Puppetry requires the use of a dedicated viewer, the Project Puppetry viewer, available through the official Second Life Alternate Viewers page.

Status

  • This project grew in scope following initial inception, with various additional elements of work / projects being identified through Puppetry User Group meetings. As a result, meetings were suspended on July 13th, 2023, and have remained dormant since.
  • Currently, work related to scripted means of puppetry is blocked pending the IK work moving forward, and given that the IK work had expanded through the early part of the Puppetry work to become its own sub-project, both it and the scripted element of Puppetry have been placed on the back burner.
  • A further consideration with Puppetry is that “glTF phase two” will likely implement a node hierarchy, which will have significant implications for animations and puppetry. As such, putting the core of the work on hold for the time being is seen as sensible. However, that the work is on hold should not be taken to mean Puppetry has been abandoned.
  • Work is progressing on another spin-off piece of work: broadening SL’s animation import capabilities. As of July 2023, this work was leaning towards using Assimp (github: https://github.com/assimp/assimp), which supports some 30-40 animation formats (including the likes of .FBX and glTF), converting them to its own format for ease of import to multiple platforms, potentially including SL. However, no-one engaged in that work was available at the meeting to give an update on overall progress and current status.

In Brief

  • Physics engine: the Havoc physics engine for SL has not been updated since 2012. There “is an awareness” within LL that work needs to be put into making the simulator’s physics system more up-to-date, however, exactly what path this may take (e.g. updating Havoc or switching to a new engine or simply exposing more of what the physics engine can do) has not as yet been determined.
  • LL has noted the Unity situation regarding it new Install Policy due to be introduced from January 1st, 2024, given the SL Mobile application is built on the Unity Engine. Announced on Tuesday, September 19th, the announcement has generated considerable backlash from Unity developers and the situation is in a state of flux. As such, LL is watching developments in this area to see what direction Unity might ultimately take.
  • Much of the meeting was taken up with discussions on tier and (particularly) with the idea of LL developing their own alternative to Flickr as a potential new revenue stream. This is something that may become the subject of a separate blog post.

Next Meeting

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

2023 SL SUG meetings week #38 summary + MFA enforcement

Evergreen, July 2023 – blog post

The following notes were taken from the Tuesday, September 19th Simulator User Group (SUG) meeting. They form a summary of the items discussed and is not intended to be a full transcript. A video of the entire meeting is embedded at the end of the article for those wishing to review the meeting in full – my thanks to Pantera for recording it.

Meeting Overview

  • The Simulator User Group (also referred to by its older name of Server User Group) exists to provide an opportunity for discussion about simulator technology, bugs, and feature ideas.
  • These meetings are conducted (as a rule):
  • They are open to anyone with a concern / interest in the above topics, and form one of a series of regular / semi-regular User Group meetings conducted by Linden Lab.
  • Dates and times of all current meetings can be found on the Second Life Public Calendar, and descriptions of meetings are defined on the SL wiki.

Server Deployments

  • On Tuesday, September 19th, SLS Main channel was updated to simulator update 6113592855 (aka “Dog Days”), previously on the majority of the RC channels. This update includes:
    • The unbinding of the Experience KVP database read / write functions from land (users will still require an Experience to access the KVP database).
    • A scripted ability to set CLICK_ACTION_IGNORE, allowing an object to be clicked-through to reach an object behind it – a flag supporting this is included in the Maintenance U RC viewer promoted to Release status in week #34.
    • PRIM_CLICK_ACTION is added to llSet/GetPrimParams so you can set the click action on prims in a linkset.
  • On Wednesday, September 20th, the RC channels will be restarted without any change to the simulator version.
  • Monday, September 18th saw AWS experience issues which also affected SL. These are believed to have been rectified.

Viewer Updates

No updates to the official SL viewers at the start of the week, leaving the current list as:

  • Release viewer, version 6.6.14.581101, promoted August 23.
  • Release channel cohorts:
  • Project viewers:

Note: the alternate viewer page also lists “Win32+MacOS<10.13 – 6.6.12.579987” as an RC viewer. However, the Win 32 + pre-Mac OS 10.13 was promoted to release status on July 5th, and viewer version 6.6.12.579987 points to the Maintenance S viewer, promoted to release status on May 16th.

Viewer MFA Enforcement

As I noted in my summary of the Friday, September 1st, 2023 TPVD meeting, Linden Lab is moving to enforce MFA through the viewer for all users who have opted-in the the Multi-Factor Authentication process

This move has now been made, as announced in an official blog post for Tuesday, September 19th, 2023. But what does it mean? Well, essentially this:

  • All users who have opted-in the MFA will only be able to log-in to Second Life using a viewer with the necessary MFA support.
  • It does not mean all users must use the authentication process; MFA as a whole remains optional – but very advisable, given the added security it provides.
  • Should anyone who has opted-in toe MFA find they are unable to log-into SL via a viewer due to problems with the MFA process, they should file a support ticket to have their MFA status reset.

Please refer to the blog post noted above for additional information.

In Brief

This was another Solstice music event meeting, so outside of the above, nothing of consequence was discussed in terms of simulator / server updates, etc.

 

† 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 rooftop of people every week. They are taken from my list of region visits, with a link to the post for those interested.

2023 SL viewer release summaries week #37

Logos representative only and should not be seen as an endorsement / preference / recommendation

Updates from the week through to Sunday, September 17th, 2023

This summary is generally published every Monday, and is a list of SL viewer / client releases (official and TPV) made during the previous week. When reading it, please note:

  • It is based on my Current Viewer Releases Page, a list of all Second Life viewers and clients that are in popular use (and of which I am aware), and which are recognised as adhering to the TPV Policy. This page includes comprehensive links to download pages, blog notes, release notes, etc., as well as links to any / all reviews of specific viewers / clients made within this blog.
  • By its nature, this summary presented here will always be in arrears, please refer to the Current Viewer Release Page for more up-to-date information.
  • Note that for purposes of length, TPV test viewers, preview / beta viewers / nightly builds are generally not recorded in these summaries.

Official LL Viewers

  • Release viewer,  version 6.6.13.580918, formerly the Maintenance U(pdate) RC viewer, version 6.6.14.581101, promoted August 23.
  • Release channel cohorts:
    • Maintenance W RC viewer, version 6.6.15.581670, issued September 11.
  • Project viewers:
    • No updates.

Note: The Alternative Viewers page appears to have suffered a hiccup, listing version 6.6.12.579987 as the “Win32+MacOS<10.13” RC viewer.  However, the Win 32  + Pre-MAC OS 10.3 viewer was actually version 6.6.13.580794, promoted to release status on July 5; 6.6.12.579987  was the version number assigned to the Maintenance S RC viewer promoted to release status on May 16th.

LL Viewer Resources

Third-party Viewers

V6-style

  • No updates.

V1-style

  • No updates.

Mobile / Other Clients

  • No updates.

Additional TPV Resources

Related Links