SL projects update week 38 (1): server releases, viewer, and more

Server Deployments – Week 38

As always, please refer to the week’s forum deployment thread for the latest news and updates.

Second Life Server (SLS Main) Channel – Tuesday September 17th

The Main channel received the HTTP updates  previously deployed to Magnum in weeks 36 and 37. Overviews of these changes, which will be transparent to users pending viewer-side updates, can be found here and here. These changes introduce new capabilities for mesh fetching operations and should lead improvements in the reliability in viewer / server connectivity when fetching mesh and textures as the viewer-side updates are released.

Release Candidate Channels – Wednesday September 18th

  • BlueSteel and LeTigre should remain on the same maintenance package as week 37, but additionally should receive two updates to the package:
    • A fix for a newly discovered crash mode
    • The HTTP updates deployed to Magnum in weeks 36 and 37 and to the Main channel on Tuesday September 17th.
  • Magnum should receive a new maintenance package which again includes the BlueSteel / LeTigre updates, and includes a number of crash fixes and an update to parcel access priorities “making it so that avatars who are on the ‘allowed’ list can bypass some of the other access restrictions (payment info on file was listed specifically)”

Commenting on the crash mode fixed on BlueSteel  / LeTigre, Andrew Linden said, ” The crash bug I fixed was actually rather rare… a corruption of the terrain data when building packets. Happened maybe… 5 times in three weeks. But we thought maybe it was related to some interest list changes so I looked into it anyway.”

Viewer Updates

Maintenance RC Release

A new RC viewer reached the release channel on Friday September 13th. Second Life RC viewer 3.6.6.280939 includes the following core updates:

  • Automatic avatar render limit and feedback system
  • Support for the additional LSL particle parameters.
  • rendering optimizations
  • avatar render cost information
  • simple impostors
  • graphics pref update
  • new debug setting “RenderAutoMuteRenderCostLimit” sets render cost cut-off point (default 0 = disabled cutoff check)

The new particle options comprise:

  • Glow
  • Ribbon effects
  • Blending options.

The SL wiki includes full details of these new particle parameters.

  • The glow effect basically looks the same as the prim glow setting on prims, adding PSYS_PART_START_GLOW and PSYS_PART_END_GLOW, which take a float in the 0.0 to 1.0 range
  • The particle blending takes 2 parameters, PSYS_PART_BLEND_FUNC_SOURCE and PSYS_PART_BLEND_FUNC_DEST, and each of those takes one of the 8 ‘values’ listed underneath, so there are actually 8*8 = 64 blend options. It exposes OpenGL’s glBlendFunc to LSL, see the glBlendFunc documentation at http://www.opengl.org/sdk/docs/man/xhtml/glBlendFunc.xml
An example of how the now ribbon capabilities might be used in SL, showing the arc of the sword through the air, supplied by Maestro Linden (courtesy of Hollowfear.com)
  • The new ribbon capability should allow for much better particle effects for things like ropes and chains links between objects (amount other things), using a ” go-from” prim/position (the prim centre), and a “go-to” prim/position (defined by PSYS_SRC_TARGET_KEY), the advantage being there would no longer be any gaps in the particle stream. However, there may be times when the ribbon effect may not be facing your camera (so there may be times when you need to reposition your camera in order to see the effect).

Continue reading “SL projects update week 38 (1): server releases, viewer, and more”

SL projects update week 37 (2): particle capabilities – viewer release imminent

Update: The maintenance release viewer with the particle capabilities is now available – version 3.6.6.2.80939 – release notes and download.

Server and RC Deployments

As always, please refer to the week’s forum deployment thread for news, updates and feedback.

In a change to the usual server-side deployments, the Main channel and all three RC channels have had their deployments and restarts made on Tuesday September 10th. The reason for the single pass was to apply updates server-side relating to recent Vivox service maintenance.

Details of the updates can be found in part 1 of this week’s update.

Server and RC Deployments Week 38

While the final decisions on deployments will not be made until that start of week 38 (week commencing Monday September 16th), it currently appears as if the following are likely to form part of the deployments:

  • The server-side HTTP updates will be promoted to the Main channel
  • A small server maintenance release will be deployed to at least one RC, which includes a number of crash fixes and an update to parcel access priorities “making it so that avatars who are on the ‘allowed’ list can bypass some of the other access restrictions (payment info on file was listed specifically)”

Particle System Viewer Imminent

Back in week 12, the Lab indicated that the SL particle system would be getting new capabilities, specifically:

  • Glow
  • Ribbon effects
  • Blending options.
Ribbon particle example

The server-side support for these capabilities was duly deployed, but have since been awaiting the viewer-side support in order to be accessible to users.

Commenting on the situation at the Server Beta meeting, Maestro Linden indicated that a release candidate viewer should be appearing with the necessary viewer-side support for the new LSL particle functions and parameters on Friday September 13th.

In preparation for the release, Maestro has also updated the wiki with details of the new particle parameters.

“The new particle glow options are pretty simple,” he said. “If you look at the wiki page, we’ve just added PSYS_PART_START_GLOW and PSYS_PART_END_GLOW, which take a float in the 0.0 to 1.0 range. It basically looks the same as the prim glow setting on prims.”

He went on, “particle blending takes 2 parameters, PSYS_PART_BLEND_FUNC_SOURCE and PSYS_PART_BLEND_FUNC_DEST, and each of those takes one of the 8 ‘values’ listed underneath, so there are actually 8*8 = 64 blend options! You can do crazy things, like having particles invert the thing underneath.

“Anyway, the blend parameters are pretty technical.  It’s basically exposing OpenGL’s glBlendFunc to LSL. And the main  glBlendFunc documentation at http://www.opengl.org/sdk/docs/man/xhtml/glBlendFunc.xml goes into the details better than I can.”

For those who can’t wait for the RC viewer with the necessary support to appear, an autobuild version is available.. However, keep in mind this is a test build for the capability, and as such is liable to be behind the curve compared to the RC version in terms of bug fixes, etc., so be sure to update to the RC version when it appears on the wiki page. The RC version is now available.

An example of how the now ribbon capabilities might be used in SL, showing the arc of the sword through the air, supplied by Maestro Linden (courtesy of Hollowfear.com)

The new ribbon capability should allow for much better particle effects for things like ropes and chains links between objects (amount other things), using a ” go-from” prim/position (the prim centre), and a “go-to” prim/position (defined by PSYS_SRC_TARGET_KEY), the advantage being there would no longer be any gaps in the particle stream. However, there may be times when the ribbon effect may not be facing your camera (so there may be times when you need to reposition your camera in order to see the effect).

Related Links

SL project updates Week 37 (1): server releases

Server and RC Deployments

As always, please refer to the week’s forum deployment thread for news, updates and feedback.

In a change to the usual server-side deployments, the Main channel and all three RC channels have had their deployments and restarts made on Tuesday September 10th. As a result, there will be no RC restarts on Wednesday September 11th.

The reason for the single pass – Main channel first, followed by the RCs – is to apply updates server-side relating to recent Vivox service maintenance.

  • Main channel: received an update related to the recent voice service maintenance and no other changes – release notes
  • BlueSteel and LeTigre: received a new maintenance package, comprising:
      • A fix for an issue where an avatar sitting at high altitude may appear to be located at 0,0 on both the world map and mini map (BUG-3332)
      • A fix for “llReturnObjectsByID breaks on string uuids”
      • Fixes for a number of JSON function issues:
    • Nerfing of recursive rezzing. Again, this was outlined in my week 35 (1) report. Under the new code, the copy of the original object will inherit the temp-on-rez and parcel time of the originating object and so be returned at the same time
    • Crash mode fixes
    • The update related to recent voice maintenance
    • These channels also no longer have Monty Linden’s HTTP updates on them).
  • Magnum remained on the HTTP update package deployed in week 36, and also received the update related to the recent voice maintenance.

Region Crossing Update

In addition to the updates listed in the release notes, Bluesteel and LeTigre also received a threaded region crossing update. This is not expected to have a major visible improvement on vehicle crossings, or as Andrew Linden put it at the Simulator User Group meeting on Tuesday September 10th, “It doesn’t mean the death of region crossing problems, but the data streaming on the way OUT of the region is now threaded, which doesn’t make the crossing any faster, but may reduce lag spikes as witnessed by everyone else.”

Kelly Linden added, “The threading change Simon mentioned moves vehicle serialization only into the same thread as agent serialization to fix a rare server crash mode due to a race condition serializing scripts in some very specific cases.”

SL Viewer Updates

On Monday September 9th, the Cocoa release candidate viewer was promoted to the de facto release viewer – version 3.6.5.280370 (release notes). This currently leaves just the materials updates as a release candidate viewer, although further viewer releases (either RCs or project viewers) are expected soon.

Group Ban Lists

Baker Linden is finishing-up the work prior to it going to RC (server and viewer), which is still a “few weeks” away. However, he’s planning / hoping on having the server code on Aditi by the end of the month, for which a “test viewer will be provided”.

Anti-griefing

Commenting on the update to the Auto-return capability to nerf recursive rezzing, Andrew indicated he took the discussion which followed his initial raising of the subject in the week 35 Simulator UG meeting back to the Lab, where there was discussion about limiting the functionality to “unattended” self-rezzing objects (i.e. those for who an owner is not present in the same parcel). He went on:

However after an internal discussion we decided to not open up that exception since it causes inconsistent behavior: different autoreturn times depending on whether the owner is present or not can lead to confusion, and also it would bypass the spirit of the autoreturn feature which parcel owners are expecting — that objects get autoreturned.

He went on to say that there is no single project at the top of his list,  and that the anti-griefing work is one of a number of projects he’s juggling with at present.

SL projects update week 36 (2): Server releases, viewer, HTTP

Server Deployments – Week 36

As always, please refer to the week’s forum deployment thread for news, updates and feedback. Deployments are a day behind the usual schedule due to the US Labor Day long weekend.

  • On Wednesday September 4th, the Main channel received the maintenance package deployed to all three RC channels in week 35, which includes Preparatory work to support new estate and parcel access controls and the new manual region restart capability which sees a region restart as soon as the last avatar leaves (release notes)
  • On Thursday September 5th, the three RC channels received the same maintenance package, which comprises  server-side HTTP updates which require a future viewer-side update. In the meantime, these changes should not be apparent in any current viewer release (release notes – BlueSteel)

Upcoming Server Deployments – Week 37

It looks likely that the HTTP updates deployed to all three RCs in week 36 (of which, more details below), will go back to just one RC in order to make way for additional packages “to get the server flow going again”.

Speaking at the Server Beta meeting on Thursday September 5th, Maestro Linden provided some information on some of the updates expected to go to at least one RC in week 37 (week commencing Monday September 9th):

  • The llXorbase64 issue reported on in my week 35 (2) report for details
  • A fix for an issue where an avatar sitting at high altitude may appear to be located at 0,0 on both the world map and mini map
  • Nerfing of recursive rezzing. Again, this was outlined in my week 35 (1) report. Under the new code, the copy of the original object will inherit the temp-on-rez and parcel time of the originating object and so be returned at the same time.
  • Fixes for a number of JSON function issues, including:
    • JSON implementation treats blank string and JSON_NULL interchangeably
    • Issue with llJsonSetValue with strings that end in ‘]’
    • RFC 4627 Non-Compliance by llJsonSetValue() with out-of-range Indices

SL Viewer News

There were no changes to the SL release viewer this week, again most likely due to the long weekend in the US.

Snowstorm Project Viewer

As reviewed earlier in the week, there has been a new Snowstorm contributions project viewer released, which includes various fixes and Jonathan Yap’s request teleport feature and a port of Cinder Roxley’s “eject from group confirmation” pop-up.

New request teleport capability - Snowstorm project viewer
New request teleport capability – Snowstorm project viewer

Interest List Viewer

Delays continue with this viewer, largely as a result of bug stomping requirements. Commenting on the situation at the TPV Developer meeting, Oz Linden said:

As you might imagine, monkeying with the interest list is full of opportunities for errors; and I think the team is really sensitive to that and trying hard not to have a bad launch. I keep hearing status updates from them, but none of them have been, “We’re going to launch the viewer right away”.

Hoz Linden then added, “They honestly are really close on the interest list, but there continue to be a string of bad bugs that need to be fixed.”

Animation Override Interface

Viewer-side hooks for LSL AO capabilities in the future?
Viewer-side hooks for LSL AO capabilities in the future?

As reported in week 34, Oz Linden is looking-in to the possibility of developing a viewer-side API / hook into the LSL AO capabilities introduced server-side earlier in 2013. Initial discussions with the Lab’s own developers seemed to go well (or as Oz put it at the time, they didn’t run screaming from the room…

As Oz will shortly be in San Francisco in the near future, he’s going to poke some more at the idea with the people at Battery Street and “see if there is something we ought to be doing.” Again, this is still a nascent idea, even with the offer of import from Kitty Barnett, and Oz went on to say:

If this is going to happen, and it is still a major league “if”, I think we would want to do it as part of a project in which a substantial improvement was made to how the viewer interacts with animation in general, and that means I would want a set of open-source devs involved in doing the viewer-side work. So be thinking about whether or not you can commit to that.

Continue reading “SL projects update week 36 (2): Server releases, viewer, HTTP”

SL projects updates week 36 (1): server releases, HTTP notes, anti-griefing

Server Deployments

As always, please refer to the week’s forum deployment thread for news, updates and feedback. Deployments are a day behind the usual schedule due to the US Labor Day long weekend.

Second Life Server (SLS Main) Channel – Wednesday September 4th

The Main channel should receive the maintenance package deployed to all three RC channels in week 35, comprising:

  • An update to region restarts initiated by region owners or estate managers which will see the region restart after the last avatar leaves, rather than waiting for the full countdown period to complete
  • Preparatory work to support new estate and parcel access controls – these will require an upcoming viewer-side update in order to be visible to users
  • A fix for a physics-related griefing mode (see below)
  • A crash mode fix.

Release Candidate Channels – Thursday September 5th

All three RC channel should receive the same maintenance package, which comprises  server-side HTTP updates which require a future viewer-side update. In the meantime, these changes should not be apparent in any current viewer release. The updates specifically comprise:

  • When connections between viewer and web services were closed by the server, the last response was sent without a ‘Content-Length’ or ‘Transfer-Encoding: chunked’ header. Last response will now be sent with ‘chunked’ encoding.
  • Throttling actions on Capabilities URL result in 503 status codes back to clients. These responses may include a ‘Retry-After’ header with a delta time giving a hint as to when the client may retry the request. In the absence of such a header, client is expected to make ‘reasonable, best-practices’ delayed retry attempts.
  • Adds support for a new capability, ‘GetMesh2’ for fetching mesh assets with keepalives enabled.

HTTP Notes

The RC deployments look to be the first part of Monty’s continuing work on HTTP connectivity between the viewer and the SL servers. As noted in recent reports, the core focus of this work is on improving mesh fetching capabilities between the two, although Monty is also working on a number of other updates, all of which are aimed at improving the HTTP services between the viewer and the SL servers and making them more robust, as well as paving the way for HTTP pipelining in the future.

Group Ban Lists

Baker Linden continues to work on the new group ban list functionality. The focus is currently on the UI hook-ups and back-end validation checks. It will still be a while before a project / RC viewer is likely to appear, but hopefully not too long.

Anti-griefing Work

Andrew Linden continues to work on “anti-griefing” measures, reporting that the “physics-related griefing mode” which forms a part of the Main channel deployment and which is already on the three RC channels, is to prevent the use of “faux rotating megaprims”.

These are megaprims which used a physics collision exploit to knock avatars out of that region using the ‘resolve interpenetrating objects’ collision logic. “We had  some collision-bypass code there specifically for avatars, but it had been broken some time ago,” Andrew explained, the break apparently allowing the exploit. He’s now fixed the code breakage, and reports from a number of RC sandboxes is that it appears to have worked.

Other Items

There was a report made during the Simulator User Group that some LSL events are failing to execute or aren’t being queued / cued when a script is caught in a loop. details were sketchy, but a BUG report was due to be raised.

SL project updates week 35 (2): parcel access controls & particle system

Server Deployments Week 35

As always, please refer to the week’s forum deployment thread for news, updates and feedback.

  • On Tuesday August 27th, the Main channel received the update package which includes the “grey box” attachment fix (issue details here), together with an update to for “llListen in linked objects is listening at root instead of linked object local position”; the new code to stop avatars entering a region / objects being rezzed in a region during the last 60 seconds before a restart, and additional fixes for simulator crash modes  (release notes)
  • On Wednesday August 28th, all three RCs received the same update package, which has a fix for a simulator crash mode, a fix for a physics-related griefing mode, and which has a new capability so that region restarts initiated by region owners occur as soon as the last avatar has left the region. This package also includes server-side support for new parcel access controls (see below) – release notes: Magnum, LeTigre, BlueSteel.

Region Shutdown / Restart

In reference to the new capability rolled to the RC channels whereby region restarts initiated by a region owner occur as soon as the last avatar leaves the region (rather than waiting for the time delay to expire), Maestro Linden indicated that the capability will eventually be extended to automated rolling restarts as well.

New Parcel Access Controls

Maestro Linden likes to work-out during meetings
Maestro Linden likes to work-out during meetings

The original post for the RC server package made reference to “estate and parcel access controls”. However, this was an error on Maestro’s part, and he sought to clarify things in a couple of follow-up posts, in which he first made it clear the new controls only apply to parcels, not regions (hence the emphasis above), and then went on to say:

The new feature is to allow a parcel to be configured to allow users to enter a parcel if they are members of the parcel’s group *or* have payment info on file.  This is meant to be a big help toward keeping griefers out, as they often will not add Payment information to their account and group limitations are often managed by the land manager.

This access configuration, which is already available at the estate level, involves enabling 3 options in ‘About Land’->’Access’:

  • Allow public access
  • Allow access only to Residents who: Have payment information on file
  • Allow Group Access: <group>

With the current release viewer (3.6.4 (280048)), this combination of settings is not possible to set in ‘About Land’; enabling ‘Allow public access’ causes ‘Allow group access’ to become disabled.  The upcoming viewer change will make these two settings independent in the UI.

He further explained:

The change is to allow group-based white listing which can parcel restriction based on payment info.  Here’s how the logic plays out:

  1. “Allow public access” means that avatars/groups do not need to be explicitly white listed to visit your parcel.
  2. The “Allow access only to Residents who: Have payment info on file” option is only available when (1) is set (this is also the classic behaviour). 
  3. The “Allow group access: <group name>” setting additionally allows group members to access your parcel, except for those on the ban list.

With only (1) and (2) set, only those with payment info on file can visit your parcel; there is no way to allow your friend/alt who doesn’t have payment info on file to access the parcel.

With (1), (2), and (3) set, you allow two sets of people in:

  • ‘trusted’ accounts, who belong to the parcel’s group
  • any account with ‘payment info on file’ (these users probably aren’t zero-day griefer accounts)

The viewer-side updates required to use these options are currently a work-in-progress. There is an internal viewer available within the Lab which is being used for testing purposes, and it is hoped that the necessary updates will be appearing in a beta or release candidate viewer in the near future.

Continue reading “SL project updates week 35 (2): parcel access controls & particle system”