SL project updates week 20/1: Server and viewer; outfits

Join Hands: raising money to help the WFP's aid work in earthquake-struck Nepal
Join Hands: raising money to help the WFP’s aid work in earthquake-struck Nepal with Fashion for Food – May 13th through May 16th inclusive

Server Deployments, Week 20

As always, please refer to the server deployment thread for the latest updates / news.

There was no main (SLS) channel deployment on Tuesday, May 11th. On Wednesday, May 12th, the three RC channels were all updated with a new server maintenance package, comprising:

  • Internal server logging changes
  • Back-end system bug fixes
  • Reply-To email changed in postcard sends

As noted in my TPV Developer meeting report for week #17, snapshots are sent via the “secondlife.com” domain, but use the sender’s own e-mail address as the originating address in the “from” field. This, and other ways ways in which e-mails flowing out from “secondlife.com” are handled has resulted in some ISPs regarding the domain as a spam domain, and have been pro-actively blocking it.

The “reply-to email changed in postcard sends” refer to a change made to how the “from” field in snapshots sent to e-mail (which the Lab refers to as “postcards”)  is addressed in an attempt to alleviate the problem.

At the time this issue was raised at the TPV Developer meeting, it was indicated that the Lab was considering removing the the snapshot to e-mail capability server-side. However, as was indicated in the meeting, doing so would break a number of wardrobe HUD systems which are popular among users. Whether or not this fix is an attempt to address the spam issue without having to remove the snapshot or e-mail functionality is currently unclear.

SL Viewer

Attachments Viewer (Project Big Bird)

The attachments viewer was promoted to release candidate status with version 3.7.29.301361, release on Wednesday, May 13th. This viewer provides a series of fixes for attachment-related issues, particularly when multiple attachments are added or removed at the same time. It also has enhanced logging, so the SecondLife.log file will have some additional lines related to avatar state in general and attachments in particular.

Linux

As noted in a separate report, the Lab have now blogged about seeking assistance from open source developers in the continued development and maintenance of the Linux flavour of the viewer.

 Outfit Folder Changes

A recent change to viewer functionality means that it is no longer possible to drag and drop sub-folders of items into the My Outfits  / Outfits folder – see BUG 9209 (FIRE-15603). This change, which is in the official release viewer, is filtering out into various TPVs, and has been causing some consternation.

While it is still possible to create sub-folders within My Outfits / Outfits and drag and drop items into them, many people have tended to simply unpack new clothing items into a default folder and drag that folder (or the Direct Delivery folder for the clothing) into My Outfits / Outfits, and then sort the contents into suitable outfits from there. Others have used the Appearance floater to create outfits, save them, and then drop them into My Outfit / Outfits – which also is no longer possible.

It’s unclear precisely what problems can occur in allowing drag-and-drop in My Outfits, although it appears drag-and-drop into My Oufits was never intended to be allowed. The change itself was made by Vir Linden, shoe has most recently been working on a range of improvements to try to reduce issues of inventory loss; he is now involved in the JIRA discussion, seeking to understand use cases relating to dragging-and-dropping folders into  My Outfits.

SL project updates week 19: server, group chat, child agents

Ichi-go Ichi-E, Fantasy Faire 2015 Inara Pey, April 2015, on Flickr Ichi-go Ichi-E, Fantasy Faire 2015 (Flickr)

Server Deployments Week 19 – Recap

On Tuesday, May 5th, the Main (SLS) channel received the server maintenance package deployed to all three RCs in week #18, comprising internal server logging changes  and a new flag for llGetObjectDetails()  – OBJECT_LAST_OWNER_ID; plus new data which can be requested  via llGetEnv(). These are:

  • “agent_limit”- get the maximum number of avatars normally allowed on the region (teleport home, and login to last location, are allowed to exceed this).
  • “estate_name”- returns the name of the estate (e,g, “mainland”, “Linden Homes”, “My Happy Estate”, etc. )
  • “region_cpu_ratio”- returns the number of regions per CPU for this region type (i.e. “1” or “4”)
  • “region_product_name” – returns the type of region this is: “Estate / Full Region”, “Mainland / Homestead”, “Estate / Openspace”, “Estate / Full Region – Skill Gaming” etc.
  • “region_product_sku” – returns the region’s product number as a string
  • “region_start_time” – returns the time the region was last (re)started, in llGetUnixTime format
  • “simulator_hostname”  – returns the simhost running this region. Same as llGetSimulatorHostname but without the script delay.

There were no planned RC deployments or restarts for Wednesday, May 6th.

Group Chat Failures

There are been a number of odd group chat issues recently, such as those outlined in see BUG-9130. Simon Linden has been investigating the issues, and gave his findings at the Simulator User Group meeting on Tuesday, May 5th, “Basically the chat server gets stuck with bad info about where the avatar is. The normal ways that would get corrected aren’t working right … but trying to log off and back in, or leave and re-join the group might fix it.”

When asked if a re-start of the affected chat servers could clear the problem, he replied, “possibly … except one of the features of the chat servers is that they try to save everything and re-load it when they come back up.   That way everyone isn’t kicked out of all their group chats when it restarts. I’d have to check but I think they may save the bad info about [the affect avatar]. ”

Group chat messages are routed to you via the region you are in at the time the message is sent. However, if you have moved to another region during the conversation, the region will tell the group chat service you are no longer there, and the service then performs a look-up to locate you so that the messages can again be sent to you via the region simulator. “In this case, Simon explained the current issue, “it’s failing with a different error due to a change in the grid configuration, and not handling it correctly.”

With the cause of the issue now identified, the Lab hopes to get an update out to the chat servers to fix the problem very soon.

Attachment Failures

As has been noted in these updates, the Lab currently has a series of viewer-side fixes for problems relating to attachment issues (items detaching on region crossing / teleporting, items showing as attached when detached or vice versa, etc.) which are  at project viewer status (“Project Big Bird”) and  will be progress through the viewer channels in due course.

In addition to the viewer fixes, there are are some server-side issues with attachments the Lab is investigating. In particular, the Lab has identified that requests for multiple simultaneous attachments at or near the upper limit (38) to be attached at the same time will invariably overload the pipe, although why this is the case still has yet to be determined.

Experience Keys / Tools

Work continues with the back-end of Experience Keys / Tools, and Simon Linden has most recently been working on the key values database for the system (which can be used to store information relating to users who have been  / are engaged in an experience, such as their progress, items they may have collected / attached, etc.). Given the anticipated popularity of Experiences, and the fact that people have already identified other potential uses for the key value database, the Lab is trying to ensure it is robust enough to handle and and all uses it might be put to – and can deal with the potential of poorly-written scripts persistently polling / updating it more than is strictly required without necessarily impacting its performance.

Other Items

Agent Updates, Draw Distance and SL Performance

In discussing the group chat issues during the Simulator User Group meeting, the conversation turned to the matter of agents and child agents. While the region you are operating in has the main connection to your avatar (your agent), it may also be sending information to avatars on other regions, and you may also be receiving updates from surrounding regions.

The status panel (CTRL-SHIFT-1)  reveals how many child updates the region you are in is sending elsewhere (31 in this case). some of these might be unavoidable, others might simply be down to people 3 or 4 regions away with ridiculously high draw distances
The status panel (CTRL-SHIFT-1) reveals how many child updates the region you are in is sending elsewhere (31 in this case). some of these might be unavoidable, others might simply be down to people 3 or 4 regions away with ridiculously high draw distances

Simon explained things thus, “while you’re here, you’re also talking to the region next door; it will send you updates about what happens over there … it has a camera for you and knows what you can see, and sends you updates but it doesn’t run your scripts, for example.”

This tracking of what is going on in other regions is determined by an avatar’s draw distance and the direction in which they are looking, and the “camera” Simon referred to in his description is known as a “child agent”.

Child agents help with a number of tasks – the such as allowing you to see what is going on in a neighbouring region, as Simon mentioned, and also assisting with aspects of region crossings.

Obviously, there will be child agent updates going on between neighbouring regions as a matter of course. But when you have an abnormally high draw distance, the chances are that you are having an additional impact not only on the regions immediately adjacent to the one your in, but every region that falls within draw distance / view, as you are forcing them to send you updates as well, and you are forcing the region you are in to work that much harder to pass those updates to you.

Hence why it’s a good idea to keep your draw distance down to a reasonable level (say 256 metres or lower) for as much as you can. You’re not only helping improve your own experience (however powerful your own computer might be) – you’re showing courtesy to those active in the regions around you and who might also be affected by the region they are in having to take time serving data you may not need to your viewer.

SL project updates week 18/2: TPV Developer meeting

Server Deployments Week 18 – Recap

As always, please refer to the server deployment thread for the latest news.

SL Viewer

[00:30] All of the viewers currently in the release channel as RCs are currently being updated to match the current release viewer, version 3.7.28.300918, which uses the new viewer build tool set.

Experience Keys / Tools

[02:06] The Lab is still making headway on the back-end issues they wish to clear before they promote the Experiences RC viewer to the de facto release viewer.

Attachment Fixes

[02:20] The attachment fixes project viewer (Project BigBird), currently at version 3.7.28.300856, is expected to appear as a release candidate viewer very soon – most likely in week #19. It is thought this viewer fixes all of the attachment issues associated with AIS v3, although there are some attachment issues which occur server-side which it does not correct, such as failures with requests to attach multiple items (such as during an outfit change).

Oculus Rift Project Viewer

[07:22] As noted in my last TPV Developer meeting report, the Lab is resuming work on the Oculus Rift project viewer. The focus on this will be to ensure the viewer works with the latest Oculus SDK (it is currently running behind SDK releases), and also up to the latest viewer source.

Once this has happened, it is likely that the viewer will enter the release channel as a release candidate viewer, so that it can keep pace with updates to the release viewer, and from there progress to release status. How quickly this will happen is dependent upon a lot of different factors, and it is likely to remain the last in line to become the release viewer for a good while, partly because it is unlikely the Oculus Rift will be available as a consumer item until 2016, and so there will be other things entering the release channel which have broader usage within the SL community, and will therefore be promoted more quickly.

Viewer-Managed Marketplace

There was a Viewer Managed Marketplace meeting on Friday, May 1st, immediately prior to the TPVD meeting, and a transcript of that meeting, with recording, is now available.

SL projects updates week 18/1: server, viewer

UNIA launches at 12:00 noon on Monday, April 27th
MadPea’s UNIA is now open for those of a brave disposition, and uses Experience Keys / Tools

Server Deployments Week 18

As always, please refer to the server deployment thread for the latest news.

  • There was no Main (SLS) deployment on Tuesday, April 28th.
  • On Wednesday, April 29th the three RC channels all received the same sever maintenance package. This comprises Internal server logging changes  and a new flag for llGetObjectDetails()  – OBJECT_LAST_OWNER_ID; plus new data which can be requested  via llGetEnv(). These are:
    • “agent_limit”- get the maximum number of avatars normally allowed on the region (teleport home, and login to last location, are allowed to exceed this).
    • “estate_name”- returns the name of the estate (e,g, “mainland”, “Linden Homes”, “My Happy Estate”, etc. )
    • “region_cpu_ratio”- returns the number of regions per CPU for this region type (i.e. “1” or “4”)
    • “region_product_name” – returns the type of region this is: “Estate / Full Region”, “Mainland / Homestead”, “Estate / Openspace”, “Estate / Full Region – Skill Gaming” etc.
    • “region_product_sku” – returns the region’s product number as a string
    • “region_start_time” – returns the time the region was last (re)started, in llGetUnixTime format
    • “simulator_hostname”  – returns the simhost running this region. Same as llGetSimulatorHostname but without the script delay.

Commenting on the llGetEnv() updates at the simulator User Group meeting on Tuesday, April 28th, Simon Linden, who made the updates, said, “these are all pretty simple ones … I went for the easy pickings.  Basically, information we already  sent to the viewer, or was readily available, and thus not a privacy issue.”

He continued, “There was one [further option] for the max number of agents that was in the original list but that one got skipped … not part of a sinister plot but I overloooked it.  want to do some other things with that limit sometime soon as well 🙂 … I’d like to see how the region and viewer performs with bigger numbers. Things go bad with many AVs for a variety of reasons … the server has more updates to send to more people, all wearing more scripts and AOs and HUDS [and] the viewer gets overwhelmed with too many complex avatars and too many textures in the download and graphics pipeline.”

SL Viewer

The Avatar Layer Limits RC viewer updated to version 3.7.29.301305 on April 28th, bringing it to code parity with the current release viewer. This RC allows users to wear up to 60 wearable layers (jackets, shirts, tattoo, alpha, etc.) in any combination – so you can wear 60 tattoo layers with it an nothing else, if you want – rather than being restricted to wearing a maximum of 5 of each type of layer.

Other Items

Online / Offline Indicators

People are noticing that the group chat list (the list of group members in the Group panel), is now much slower to update as people’s status changes (i.e. whether they are on-line or off-line). This is intentional, and comes as a result of the recent improvements made to group chat.

In particular, and as I reported in these pages as work on group chat commenced in 2014, the volume of people logging-in to and out of SL can generate a huge amount of updates for the group chat service (given your status has to be sent to every group of which you’re a member, and to over member of that group who is online to update the group list in their viewer with your new status), meant that more time was being consumed by the group chat servers in handling these update messages than in handling actual messages.  The fix for this problem means there is a natural delay in group list updates, as they are now processed differently to reduce the impact they have on message handling.

However, some people have started noticing that some group chat lists with 20+ members seem to take a very long time to update – times of 5-10 minutes have been mentioned, and this is causing some confusion when seeking things like assistance from group owners / moderators (as they can appear to be logged-in long after they have logged-off). It’s also bee reported that at times the list seems to get stuck with no updates until the group chat itself is closed and re-opened, although this appears to be somewhat intermittent.

SL project updates week 17/2: TPV meeting – CEF, Inventory

Fantasy Faire 2015: YoZakura; Inara Pey, April 2015, on Flickr Fantasy Faire – April 23rd to May 3rd, 2015: YoZakura (Flickr)

The following notes are primarily taken from the TPV Developer meeting held on Friday, April 24th,  a video of which is included below (my thanks as always to North for recording it and providing it for embedding), and from the Server Beta meeting held on Thursday, March 26th. Any time stamps contained within the following text refer to the TPV developer meeting video.

Server Deployments, Week 17 – Recap

As always, please refer to the server deployment thread for the latest updates.

  • On Tuesday, April 20th, the Main (SLS) channel received the server maintenance package deployed to all three RC channel in week #16, which comprises internal server logging changes and new flags for llGetObjectDetails()
    • OBJECT_BODY_SHAPE_TYPE – returned list entry is a float between 0.0 and 1.0. Anything > 0.5 is male, otherwise female; -1.0 if the avatar is not found
    • OBJECT_HOVER_HEIGHT – returned list entry is a float, -1.0 if the avatar is not found.
  • There were no deployment or restart on the three RC channels on Wednesday, April 22nd.

SL Viewer Updates

[05:50] The Tools Update viewer, version  3.7.28.300918, was promoted to the de facto release viewer on April 23rd – see my article here for details. During its run as an RC viewer, this release had around a 2% lower crash rate than the release viewer built using the “old” tool set and processes.

As a result of this, all the remaining RC and project viewers are being updated to match the release viewer code base, and updated versions should be appearing soon.

Attachment Fixes Viewer (Project BigBird)

[07:42] This viewer, current available as a project viewer – version 3.7.28.300856 – and which fixes a range of issues related to avatar attachment failures, is in the process of being updated to a Release Candidate status, and should be appearing in the release pipeline as such in week #18.

[29:28] The Lab believes that these fixes resolve all of the viewer-side issues related to attachment problems which are related to AIS v3. However, a number of the more noticeable issues  – such as problems with attachments being detached on teleporting – are server-side, and require further investigation / fixing.  Similarly, failures with requests to attach multiple items (such as during an outfit change) also appear to be simulator-related, rather than anything within the viewer or linked to AIS v3.

Oculus Rift Viewer

[07:55] The Oculus Rift viewer is now on the schedule to be updated and brought into line with more recent viewer code releases. There is no set time scale for this project (and the Oculus Rift itself, according to Oculus VR, is unlike to reach a consumer release in 2015), but the aim is to bring it back to a “more active” state.

Viewer-Managed Marketplace

[00:08] Brooke Linden gave an update on VVM – as this is of interest to a potentially wider audience than those interested in viewer development, I’ve provided a separate article on it.

Web Media (Webkit and CEF)

[08:41] The Lab is making “pretty good” progress on replacing webkit, an increasingly outdated third-party library used within the viewer for powering the built-in web browser, displaying web profiles and powering in-world media (TVs, MOAP, etc.), with the Chromium Embedded Framework. The Mac work is lagging a little behind this, but the Lab has now called-in external expertise to help move the project forward as a whole.

Request for TPV / Open-source Support for Linux

[09:17]  The Lab is seeking support from TPV developers and the open-source community to help maintain and move the Linux flavour of the viewer forward. For details, please see my  separate article in this blog, complete with an audio extract from the meeting.

Snapshots to E-mail

[12:27] The send snapshot as e-mail capability is in the process of being removed from the viewer.

The main reason for this is that wherever possible, snapshots are sent via the “secondlife.com” domain, but use the sender’s own e-mail address as the originating address in the “from” field of the sent e-mail which appears as if the “from” address is being forged. This, and other ways in which e-mails flowing out from “secondlife.com” are handled, has resulted in some ISPs regarding the domain as a spam domain, and have been pro-actively blocking it (Germany-based GMX is one such example).

To rectify these problems, the Lab is reviewing how e-mails from “secondlife.com” are being managed as a whole, and eliminating those uses which may conceivably lead to the domain In the case of the snapshot floater, the Lab’s perspective is that the easiest way to fix the problem is to remove the option from the snapshot floater; however as was pointed out to them in the meeting, this will break content such as wardrobe HUD systems which utilise the snapshots to e-mail functionality.

Other Items

HTTP and CDN Use Expansion

[20:35] The Lab is working on increasing the number of assets such as animations, sounds, and gestures, consumed by the viewer to being delivered via HTTP the CDN, and removing the reliance on UDP. This is for a number of reasons:

  • It further fees-up resources on the simulator to do what they do best – simulate the world around us, rather than using them for managing UDP file transfers
  • The use of UDP is not the most efficient or robust means of carrying out these transfers
  • UDP is bad for the network; there’s no flow control packet or congestion control behaviour, it can result in high packet losses which may occur anywhere between the the server and the viewer, and thus be hard to identify and prevent in future, etc.

As this work progresses, the Lab will be removing the server-side support for the UDP messaging currently used by such transfers. This has already happened with inventory fetching (and the option to disable HTTP Inventory is due to be removed from the viewer), and will be happening soon with texture fetching (which will also see the removal of the option to disable HTTP Textures in the viewer).

To help with this, TPVs are being encouraged to work with the Lab to identify specific / reproducible  issues users are encountering vis HTTP, etc., so that more work can be put into fixing them, and the Lab is asking TPVs not to recommend to users to switch back to the “old ways” of doing things when potential HTTP problems are encountered, as the 2old way may not be around for much longer.

Continue reading “SL project updates week 17/2: TPV meeting – CEF, Inventory”

SL project updates week 17/1: server, viewer, Avatar Complexity

221B Baker Street; Inara Pey, April 2015, on Flickr 221B Baker Street, circa 2012-2015, as seen in the BBC’s series Sherlock – and in Second Lifeblog post

Server Deployments, Week 17

As always, please refer to the server deployment thread for the latest updates.

  • On Tuesday, April 20th, the Main (SLS) channel received the server maintenance package deployed to all three RC channel in week #16, which comprises internal server logging changes and new flags for llGetObjectDetails()
    • OBJECT_BODY_SHAPE_TYPE – returned list entry is a float between 0.0 and 1.0. Anything > 0.5 is male, otherwise female; -1.0 if the avatar is not found
    • OBJECT_HOVER_HEIGHT – returned list entry is a float, -1.0 if the avatar is not found.
  • There will be no deployment or restart on the three RC channels on Wednesday, April 22nd.

This means there will be no Main channel roll in week #18, but there should be a new RC update, although this is still being worked on.

SL Viewer

The Avatar Layer Limits RC viewer updated to version 3.7.28.301019 on April 20th. This viewer allows users to wear up to 60 wearable layers (jackets, shirts, tattoo, alpha, etc.) in any combination and any number per layer up to the overall maximum of 60, rather than each individual layer being limited to a maximum of 5 items.

The Tools Update RC viewer has been performing very well since the last update (April 15th), and there has been something of a debate in the Lab as to whether or not to promote it to the de facto release viewer. While there is no hard-and-fast rule about when an RC is promoted to release status, very often the Lab prefers to leave two weeks between releases unless something is urgently required. Sticking to this would mean the viewer won’t be promoted until week #18 (week commencing Monday, 27th April); however we’re still early in the week, and things might change.

Viewer Managed Marketplace Beta

The Viewer-Managed Marketplace (VMM) officially started an open beta test on the main grid, which is scheduled to last for about a month for details see:

Avatar Complexity

Avatar Complexity is the term the Lab has settled upon for the upcoming functionality which provides greater control to user to define how other avatars are rendered in their world-view.

The idea is that as avatars can often be the single biggest impact on the viewer in terms of rendering, particularly in crowded places, so  Avatar Complexity will present a means by which avatars which require a load of render processing by your GPU can be rendered as a solid colour instead, which should help with performance on lower specification systems. Due to their solid colours, avatars rendered in this way have already been dubbed Jelly Babies or Rainbow People.

At the Open-source Developer’s meeting on Monday, April 20th, Oz Linden explained that “Avatar Complexity” has been chosen for the name of the capability to distinguish it from avatar imposter rendering, which will remain in the viewer alongside Avatar Complexity when it arrives. The difference between the two can be summarised as:

  • Avatar impostor rendering is a simplified and less frequent rendering of avatars further away from you, while those close to you remain fully rendered
  • Avatar Complexity renders any avatar exceeding the value set within your viewer as a single, solid colour, regardless of the avatar’s distance from you.
Avatar complexity is intended to help those who may hit performance issues as a result of their GPU struggling to render complex (hight render cost) avatars, by rendering such avatars as solid colours.
Avatar complexity is intended to help those who may hit performance issues as a result of their GPU struggling to render complex (hight render cost) avatars, by rendering such avatars as solid colours.

Oz further indicated that Avatar Complexity will be managed via the Advanced panel in Preferences > Graphics, and will initially be enabled / disabled in the official viewer based on your GPU’s benchmark (the value use to determine the viewer’s default graphics settings when first installed). Some TPVs may opt to leave the capability disabled by default (once the code is available for inclusion in TPVs), and allow users determine whether they wish to use it or not.

Currently, work at the Lab is focusing on a couple of aspects of the functionality:

  • Toning down the colours used by the viewer when rendering avatars in this way – as the functionality can currently be tested via two debug settings within the viewer, there have already been strong criticisms of that “Jelly Baby” rendering on account of the brightness of the colours
  • Server support is being added to pass on the counts of avatars that are and are not rendering to those using Avatar Complexity.

It is also probable that before the capability appears in a project viewer, it will also be set to  display notifications when you change your own complexity, and when the number of avatars not rendering you changes.

If you wish to experiment with the settings are they are at the moment, go to Advanced > Debug Settings and type-in RenderAutoMute. Select RENDERAUTOMUTEFUNCTIONS and set it to 7, then experiment with values under RENDERAUTOMUTERENDERWEIGHTLIMIT (start with 100,000, and increase or decrease it to alter the number of avatars around you rendered as solid colours (lower values = more avatars rendered as colours).