2023 SL SUG meetings week #12 summary: “Ban the Bots” Simulator Update

Highland Retreat, January 2023 – blog post

The following notes were taken from the Tuesday, March 21s, 2023 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.

Server Deployments

  • On Tuesday, March 21st, the SLS Main channel servers were restarted without any deployment, leaving them on simulator version 577734.
  • On Wednesday, March 22nd, one half of the RC channel servers will receive an update to their current simulator release, the remainder will gain the Estate Level Scripted Agent Controls (aka “Ban the Bots”).

Estate Level Scripted Agent Controls (aka “Ban the Bots”)

This is the simulator update referenced in the March 10th Lab Gab session – see: Lab Gab summary: Grumpity, Mojo & Patch – SL Mobile, land, bots & more – Bots and Policies).

  • The update includes a console variable that can be set by estate managers to either True or False. When set to True it will prevent Scripted Agents from entering regions in an estate (those required by the estate can be added to the access list so they can continue to access regions).
  • This will be supported in time by a viewer UI update to allow the option to be managed more directly – but it will still be a while before this UI change surfaces in the viewer.
  • There will be a policy change update published soon which will further cover these changes and the operation of Scripted Agents.

Further changes have been suggested within the Lab – notably to traffic – but it has yet to be decided on whether / when these will be implemented.

Viewer Updates

There have been no official viewer updates to mark the start of the week, leaving the various pipelines as follows:

  • Release viewer: Maintenance Q(uality) viewer, version 6.6.9.577968 Thursday, February 2.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
  • Project viewers:
    • PBR Materials project viewer, version 7.0.0.578792, March 15 – This viewer will only function on the following Aditi (beta grid) regions: Materials1; Materials Adult and Rumpus Room 1 through 4.
    • Puppetry project viewer, version 6.6.8.576972, December 8, 2022.

LSL XML-RPC

Linden Lab is going to be picking a date for shutting down LSL XML-RPC functionality completely. This has been deprecated for well over a decade, and and LL has long been warning about shutting it down, and the vast majority of traffic has moved to HTTP-In, as recommended as a secure means of communications. Given the low volume of traffic – given as only a few dozen requests per hour, LL would rather put resources towards new developments, rather than supporting an outdated and insecure service. The next step will be a blog post with a date, and maybe some circuit-breaking exercises where we will shut it off temporarily, to make sure all creators have moved their services away from LSL XML-RPC.

In Brief

  • There was a fair amount of discussion concerning the Puppetry project. However, as this will be subject to a meeting on Thursday, Marcg 23rd, for which I plan to have a summary, I’ll leave updates on this work until then.
  • BUG-227303 – “collisions makes a script stop running and revert its mono status” – this bug is still awaiting work by LL.
  • Please refer to the video below for general discussions.

2023 SL SUG meetings week #11 summary: “Ban the Bots” Simulator Update

Lyric, January 2023 – blog post

The following notes were taken from the Tuesday, March 14th, 2023 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.

Server Deployments

  • On Tuesday, March 14th, the SLS Main channel servers were restarted without any deployment, leaving them on simulator version 577734.
  • On Wednesday, March 15th:
    • The BlueSteel & Magnum RC channels will receive the Estate Level Scripted Agent Controls (aka “Ban the Bots”)
      simulator update.
    • The Ferrari and LeTigre RC channels will be started without change.

There was no promotion to the Main SLS channel as a bug on the RC deployment made to Ferrari and LeTigre causing issues for some breedables.

Estate Level Scripted Agent Controls (aka “Ban the Bots”)

This is the simulator update referenced in the March 10th Lab Gab session – see: Lab Gab summary: Grumpity, Mojo & Patch – SL Mobile, land, bots & more – Bots and Policies).

  • The update includes a console variable that can be set by estate managers to either True or False. When set to True it will prevent Scripted Agents from entering regions in an estate.
  • This will be supported in time by a viewer UI update to allow the option to be managed more directly – but it will still be a while before this UI change surfaces in the viewer.
  • There will be a policy change update published soon which will further cover these changes and the operation of Scripted Agents.

Further changes have been suggested within the Lab – notably to traffic – but it has yet to be decided on whether / when these will be implemented.

Viewer Updates

There have been no official viewer updates to mark the start of the week, leaving the various pipelines as follows:

  • Release viewer: Maintenance Q(uality) viewer, version 6.6.9.577968 Thursday, February 2.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
  • Project viewers:
    • PBR Materials project viewer, version 7.0.0.578613, March 10 – This viewer will only function on the following Aditi (beta grid) regions: Materials1; Materials Adult and Rumpus Room 1 through 4.
    • Puppetry project viewer, version 6.6.8.576972, December 8, 2022.

In Brief

  • A general discussion on scripting – such as adding a TypeScript-style support for writing LSL to script memory, use of C#, use of containers for services, LL selling AWS services through SL for scripters / scripted services, etc. This took up most of the meeting, so please see the video for reference.
  • BUG-227303 – “collisions makes a script stop running and revert its mono status” – this bug is still awaiting work by LL.

2023 SL Puppetry project week #10 summary

Puppetry demonstration via Linden Lab – see below.  Demos video with the LL comment “We have some basic things working with a webcam and Second Life but there’s more to do before it’s as animated as we want.”

The following notes have been taken from chat logs and audio recording of the Thursday, March 9th, 2023 Puppetry Project meetings held at the Castelet Puppetry Theatre on Aditi. These meetings are generally held on alternate weeks to the Content Creation User Group (CCUG), on same day / time (Thursdays at 13:00 SLT).

Notes in these summaries are not intended to be a full transcript of every meeting, but to highlight project progress / major topics of discussion.

Project Summary

General Project Description as Originally Conceived

LL’s renewed interest in puppetry was primarily instigated by Philip joining LL as official advisor, and so it really was about streaming mocap. That is what Philip was interested in and why we started looking at it again. However since Puppetry’s announcement what I’ve been hearing from many SL Residents is: what they really want from “puppetry” is more physicality of the avatar in-world: picking up objects, holding hands, higher fidelity collisions. 
As a result, that is what I’ve been contemplating: how to improve the control and physicality of the the avatar. Can that be the new improved direction of the Puppetry project? How to do it?

Leviathan Linden

  • 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.
  • No other special needs beyond the project viewer are required to “see” Puppetry animations. However, to use the capability to animate your own avatar and broadcast the results, requires additional work – refer to the links below.
  • There is a Puppetry Discord channel – those wishing to join it should contact members of LL’s puppetry team, e.g. Aura Linden, Simon Linden, Rider Linden, Leviathan Linden (not a full list of names at this time – my apologies to those involved whom I have missed).

Additional Work Not Originally In-Scope

  • Direct avatar / object / avatar-avatar interactions (“picking up” an apple; high-fives. etc.
  • Animations streaming: allowing one viewer to run animations and have them sent via the simulator to all receiving viewers without any further processing of the animations by those viewers.
  • Enhanced LSL integration for animation control.
  • Adoption of better animation standards – possibly glTF.
  • Given the project is incorporating a lot of additional ideas, it is likely to evolve into a rolling development, with immediate targets for development / implementation decided as they are agreed upon, to be followed by future enhancements. As such, much of what goes into the meetings at present is general discussion and recommendations for consideration, rather than confirmed lines o development.

Bugs, Feature Requests and Code Submissions

  • For those experimenting with Puppetry, Jiras (bug reports / fixes or feature requests) should be filed with “[Puppetry]” at the start of the Jira title.
  • There is also a public facing Kanban board with public issues.
  • Those wishing to submit code (plug-ins or other) or who wish to offer a specific feature that might be used with Puppetry should:

Further Information

Meeting Notes

Viewer Progress

  • An updated version of the project viewer is due to be made available once it has cleared LL’s QA process. This includes:
    • Using the binary protocol for the LEAP module communication, with new logic which causes LEAP modules to one be loaded by the viewer when they are used.
    • The AgentIO LEAP module adds the ability to adjust the look at target, viewer camera and agent orientation.
    • Support for sending the joint position of your avatar to the server, which is then available in LSL.
      • The code reports the post animation location for attachment points, allowing the the sever to know where things like hands and wings, etc.,  are, and this in turn allows LSL to query where that attachment point is in space and how it is rotated.
  • HOWEVER, the animation streaming code (see previous Puppetry meeting notes) will not be in the next viewer update.

Server-Side Work

  • The simulator code now has llGetAttachmentPointAnim() support, which should be recognised by the upcoming viewer update.
  • The Aditi puppetry regions are to be merged with the updated code so this can be tested.
  • While there has been some work completed on animation imports since the last meeting, there was nothing significant for LL to report on progress at this meeting.

General Notes

  • There is additional work going on to try to improve the IK system, with the aim of having the basics working better than is currently the case – better stability, etc. This work may appear in the viewer update after the one currently being prepared to go public.
  • Performance:
    • To prevent puppetry generating too much messaging traffic (UDP) between the viewer and simulator, a throttle is being worked on so that when the simulator is under a heavy load from multiple viewers running puppetry code, it can tell them all to tone down the volume of messages.
    • There will also be some switches and logic put into place that can be used when needed, helping to protect regions in case the load gets overwhelming.
    • A further suggestion made is to ensure the simulator does not broadcast puppetry messages for avatars seated and not using the code (such as an audience at a performance) to further reduce to volume of messaging, this is viewed as a potentially good avenue of work to consider.
    • There is also a threshold in place – if an attachment point does not move beyond it, it is not considered as moved, which will hopefully also reduce the amount of messaging the simulator has to handle.
  • LSL Integration:
    • See: OPEN-375: “LSL Functions for reading avatar animation positions”.
    • This work is now paused. Rider Linden developed a proof of concept, but found that in order to better manipulate parameters within the constraints, a configuration file should be used. He is therefore refactoring the code to do this before proceeding further.
    • The configuration file will be called avatar_constraints.llsd and it will live alongside avatar_lad.xml in the character directory.
  • Questions were again raised on whether Puppetry is for VR / will enable the viewer to run VR.
    • It was again pointed out that while Puppetry lays more foundational work which could be leveraged for use with VR headsets, than is not the aim of the Puppetry project.
    • Providing VR headset support is a much broader issue, which would require the involvement of other teams from LL – Product, the Graphics Team, the viewer developers, etc.

Date of Next Meeting

  • Thursday, March 23rd, 2023, 13:00 SLT.

2023 SL SUG meetings week #10 summary

Aurelias, January 2023 – blog post

The following notes were taken from the Tuesday, March 7th, 2023 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.

Server Deployments

  • On Tuesday, March 7th, the SLS Main channel servers were restarted without any deployment, leaving them on simulator version 577734.
  • On Wednesday, March 8th:
    • The majority of RC servers will be updated to simulator release 578370, first deployed in week #9 to the BlueSteel RC.
    • In addition, there may be a deployment to the Ferrari RC comprising new LSL Functions llList2ListSlice, llSortListStrided, and llListFindListStrided (per BUG-231545). It also has a fix for DATA_SIM_STATUS from llRequestSimulatorData(), and doubles the amount of memory available for Linkset Data (LSD) to 128k.

There have been no official viewer updates to mark the start of the week, leaving the various pipelines as follows:

  • Release viewer: Maintenance Q(uality) viewer, version 6.6.9.577968 Thursday, February 2, 2023.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
  • Project viewers:
    • PBR Materials project viewer, version 7.0.0.578526, March 3, 2023 – This viewer will only function on the following Aditi (beta grid) regions: Materials1; Materials Adult and Rumpus Room 1 through 4.
    • Puppetry project viewer, version 6.6.8.576972, December 8, 2022.

In Brief

  • Several general discussions:
    • Camera tracking for one’s own camera.
    • Particle size limits seen as possibly more a Content Creation User Group meeting discussion.
    • An idea to allow mesh vertices to be edited in-world without generating new assets in the process.
    • Using Media on a prim with HUDs, and the limitations therein (also related to the week #9 discussion of sending the contents of notecards in response to HTTP requests.
    • Image uploads and compression.
    • Please refer to the video for more on these.

2023 SL SUG meetings week #9 summary

Buddha Garden, December 2022 – blog post

The following notes were taken from the Tuesday, February 28th, 2023 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.

Server Deployments

  • On Tuesday, February 28th, the SLS Main channel servers were restarted without any deployment, leaving them on simulator version 577734.
  • On Wednesday, March 1st, the majority of RC servers will be restarted without any change. However, those on the BlueSteel RC will be updated with server release 578370.

Available Official Viewers

On Tuesday, February 28th, the Maintenance R RC viewer updated to version 6.6.10.578285.

The rest of the official viewers currently available remain unchanged from the start of the week:

  • Release viewer: Maintenance Q(uality) viewer, version 6.6.9.577968 Thursday, February 2.
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself).
    • Maintenance S RC viewer, version 6.6.10.578270, issued February 24.
    • Performance Floater / Auto FPS RC viewer updated to version 6.6.10.578172, February 21.
  • Project viewers:
    • PBR Materials project viewer, version 7.0.0.578161, February 14. This viewer will only function on the following Aditi (beta grid) regions: Materials1; Materials Adult and Rumpus Room 1 through 4.
    • Puppetry project viewer, version 6.6.8.576972, December 8, 2022.

In Brief

  • BUG-233440 “Add a method for dealing with user-customized keybindings in user-visible text” came under discussion, the Maestro Linden suggesting one approach, per the comments in the Jira.
  • The above segued into a general discussion on note card parsing commands in note card (with care!), making things like URIs within note cards clickable, and having an LSL command (e.g. llHTTPResponseNC() ) which could allows scripts to reply to HTTP requests within note cards – so if a HUD is using MoaP, JSON in the HTML could send commands back to it via post.
  • Please refer to the view below for other topics.

2023 SL Puppetry project week #8 summary

Puppetry demonstration via Linden Lab – see below.  Demos video with the LL comment “We have some basic things working with a webcam and Second Life but there’s more to do before it’s as animated as we want.”

The following notes have been taken from chat logs and audio recording of the Thursday, February 24th, 2023 Puppetry Project meetings held at the Castelet Puppetry Theatre on Aditi. These meetings are generally held on alternate weeks to the Content Creation User Group (CCUG), on same day / time (Thursdays at 13:00 SLT).

Notes in these summaries are not intended to be a full transcript of every meeting, but to highlight project progress / major topics of discussion.

Project Summary

General Project Description as Originally Conceived

LL’s renewed interest in puppetry was primarily instigated by Philip joining LL as official advisor, and so it really was about streaming mocap. That is what Philip was interested in and why we started looking at it again. However since Puppetry’s announcement what I’ve been hearing from many SL Residents is: what they really want from “puppetry” is more physicality of the avatar in-world: picking up objects, holding hands, higher fidelity collisions. 
As a result, that is what I’ve been contemplating: how to improve the control and physicality of the the avatar. Can that be the new improved direction of the Puppetry project? How to do it?

Leviathan Linden

  • 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.
  • No other special needs beyond the project viewer are required to “see” Puppetry animations. However, to use the capability to animate your own avatar and broadcast the results, requires additional work – refer to the links below.
  • There is a Puppetry Discord channel – those wishing to join it should contact members of LL’s puppetry team, e.g. Aura Linden, Simon Linden, Rider Linden, Leviathan Linden (not a full list of names at this time – my apologies to those involved whom I have missed).

Additional Work Not Originally In-Scope

  • Direct avatar / object / avatar-avatar interactions (“picking up” an apple; high-fives. etc.
  • Animations streaming: allowing one viewer to run animations and have them sent via the simulator to all receiving viewers without any further processing of the animations by those viewers.
  • Enhanced LSL integration for animation control.
  • Adoption of better animation standards – possibly glTF.
  • Given the project is incorporating a lot of additional ideas, it is likely to evolve into a rolling development, with immediate targets for development / implementation decided as they are agreed upon, to be followed by future enhancements. As such, much of what goes into the meetings at present is general discussion and recommendations for consideration, rather than confirmed lines o development.

Bugs, Feature Requests and Code Submissions

  • For those experimenting with Puppetry, Jiras (bug reports / fixes or feature requests) should be filed with “[Puppetry]” at the start of the Jira title.
  • There is also a public facing Kanban board with public issues.
  • Those wishing to submit code (plug-ins or other) or who wish to offer a specific feature that might be used with Puppetry should:

Further Information

Meeting Notes

General Progress

  • LSL Integration:
    • See: OPEN-375: “LSL Functions for reading avatar animation positions”.
    • Rider Linden has not been able to get a lot done on the scripted control due to being out of the office. He does have the LSL function discussed in the last meeting so that it is correctly sending the necessary data down to the agent’s viewer.
    • He is now working now on how to feed that into the IK, and has a general framework, although he notes it’s been slow progress.
  • Simon Linden has been working on animation importing. This is additional work in terms of the Puppetry project, but comes as a result of discussions at previous meetings.
    • He is looking to add additional .BVH support, and possibly .FBX (e.g. .FBX using some specific skeletons and settings; the goal is to be able to get data out of animation tools and into SL without requiring 2 years of Blender skills). Given the general move towards glTF, this is seen as being more preferable (there is a possible appetite within LL for a re-write of the animation system, although it not on the immediate horizon (or a visible horizon at present).
    • Requests are still being made to allow animation priorities to be changed post-upload and edit animation values dynamically – it is not clear how much of this will be touched.
    • Changing the manner in which animation priorities currently work is not something LL are planning on touching.
    • Right now the messages that transmit what animations to play do not have a way to specify a priority, just the animation’s asset ID and the viewer will get the priority from the asset. This may change in the future, but the focus right now is on getting scripted animation control improved.
  • Leviathan Linden is continuing to work on animation streaming, but progress has been delayed due to bug hunting and fixing. However, he hopes to get the code into the Puppetry project viewer branch sooner rather than later. He has noted that this is very sensitive to bad framerate on the sender and on the simulator. This probably means that before animation streaming and/or puppetry could be “delivered”, some technical debt on the server at least.
  • The focus at the moment is on putting everything that has been worked on together and then making sure it all works within the viewer. After that comes the issue of making sure that things work between viewers (e.g. that 20 people running animation streaming in a scene does not result in the viewers collapsing or being unable to playback all the streams; ensuring the new capabilities paly nicely with existing “canned animation” systems (e.g. dance machines, etc.).

In Brief

  • It’s been noted that moving the simulators to 64-bit is being worked on.

Date of Next Meeting

  • Thursday, March 9th, 2023, 13:00 SLT.