LL announce new server-side AO capabilities

Update March 26th: This article now includes the links to the relevant wiki pages for the new capabilities, as released on March 25th. Also, permissions to animate an avatar are only auto-granted when a prim using the new capabilities is attached to the avatar (PERMISSION_OVERRIDE_ANIMATIONS), otherwise explicit permission required.

Note: article title revised to better reflect contents

At the Beta Server meeting on Thursday 21st March, the Lab informally announced the forthcoming arrival of a server-side Animation Override (AO) system utilising LSL commands.

Coded by Kelly Linden, this new capability is not seen as a replacement to existing AO systems, but rather as a means of making them, in Kelly’s words, “Do a significant portion of their work easier and smoother.”

Overview

The new system utilises a series of new LSL commands, which can be placed in a script located in a prim which has permission to animate your avatar, much like current AOs (granted automatically if the prim is attached to your avatar).  However, the advantage with the new calls is that they are keyed directly into the server’s animation states, unlike current AOs, which operate somewhat in conflict with the server’s animations states.

For example, with current AO systems, moving your avatar (i.e. walking) causes an update to be sent to the server, which initially tries to run the default animation required (i.e. the infamous “duck walk”). However, the AO script also detects the state change for your avatar, and then instructs the server to replace the default animation information with the required animation.

With the new system, rather than trying to run the default animation and then have an AO tell it what it should be doing, the server simply replaces the default animation with the required animation, thus vastly simplifying the process.

The new capability is currently available for testing on a number of regions on Aditi (CCMTEST17, CCMTEST22, CCMTEST23, CCMTEST26, and CCMTEST29, all on project channel DRTSIM-201), and it should be deployed to a Release Candidate channel during week 13 (week commencing Monday, March 25th).

Additional Notes

  • The new calls should be compatible with existing AOs, assuming appropriate priorities are used
  • Items such as idle animations and swimming animations are handled separately by the viewer, and so are not covered by the new calls
  • This capability does not require an viewer-side changes at present, although it is likely that a future update will be made to the viewer to allow the Stop Animating Me menu option to reset animation states set using the new calls
  • Seats and poseballs should continue to use trigger animations
  • Poseball type objects should use llStopAnimation(llGetAnimationOverride(“Sitting”)) instead of llStopAnimation(“sit”) in order to work smoothly with the new calls.

Animation States

New server-side AO capabilities coming soon
New server-side AO capabilities coming soon

The animation states specifically covered by the new LSL calls comprise:

  • Standing
  • Sitting
  • Ground sit
  • Standing up
  • Crouching
  • Walking
  • Crouch walking
  • Striding
  • Running
  • Turning right
  • Turning left
  • Jumping
  • Pre-jumping
  • Taking Off
  • Hovering
  • Hovering Up
  • Hovering Down
  • Flying
  • Flying Slow
  • Falling Down
  • Landing
  • Soft Landing

LSL AO Calls

The following LSL calls have been defined for use with the above animations.

llSetAnimationOverride(string anim_state, string anim);

  • Sets the animation that will play for a given AO state, where:  string anim_state is the name of the animation state being overridden (e.g. Walking), and string anim is the animation to be used
  • Requires a new runtime permission – PERMISSION_OVERRIDE_ANIMATIONS
  • Once an animation override is set for a given state, it is preserved for the rest of the session, unless reset (see below)
  • As the animation states are purely server-side, they get cleared on a relog.

llGetAnimationOverride(string anim_state)

llResetAnimationOverride(string anim_state);

  • Will reset the animation for the given state to the default
  • Includes a special “ALL” state, which will reset all animation overrides to their defaults
  • Requires new runtime permissions PERMISSION_OVERRIDE_ANIMATIONS.

[New addition, March 26th]. Note that PERMISSION_OVERRIDE_ANIMATIONS Only be auto-granted for attachments, otherwise explicit permission required.

Testing and RC Deployment

As mentioned above, there are a number of test regions available on Aditi where the new AO calls can be tired out by scripters and TPVs, and the new capabilities should be arriving on an RC channel in week 13. Any issues found with the capability should be reported via a JIRA, and, if deemed appropriate, raised at the Simulator User Group meeting on Tuesday, March 26th.

SL projects update week 12 (2): server, interest list, region crossings, particles

Server Deployments – Week 12

The planned server deployed went ahead as scheduled and as follows:

  • Second Life Server (Main channel): on Tuesday 19th March, the SLS channel received the server maintenance package which had been re-deployed to Magnum in week 11. As with the Magnum re-deploy, it excludes the fix for VWR-786 while LL go “back to the drawing board” to try to correct issues. However, it does include the following two fixes:
    • BUG-1612: region Owners and estate managers finding they are unable to teleport back to their region after disabling direct teleports to the region
    • SVC-8019: region visibility delays following region restarts.
  • Release Candidate channels: on Wednesday 20th March, the three RC channels received the following updates:
  • BlueSteel and LeTigre: received the same updates as deployed to the SLS channel on Tuesday March 19th, but otherwise retain the same updates received in week 11 – release notes (BlueSteel)
  • Magnum: should receive further updates to Andrew Linden’s interest list work, as per the release notes.  Specific interest list bug fixes included with this update comprise:
    • Updates for objects that are out of view are delayed for a maximum of 5 seconds, at which point they will be sent (mitigates BUG-1779)
    • Fix for “No object updates from vehicles after some region crossings” (BUG-1814) – see below
    • Fix for “Agent appears in incorrect position to other agents after being moved by a sim teleporter” (BUG-1795).

Interest List Updates

Vehicle Crossings

The Magnum RC channel received a potential fix for the vehicle crossing issues (BUG-1814) which have been experienced by many of late, and which appears to have been a major step in the right direction, going on feedback posted to the deployment thread on the forums.

Essentially, the problem lay in the fact that the recently deployed interest list code has only been updating the viewer with information relating to objects within the camera’s field-of-view. If an object moves out of the field-of-view for more than a few seconds, then updates cease until such time as it re-enters the field-of-view.

Where this becomes a problem when crossing a region in a vehicle, is that when transferring between regions, the camera position is effectively extrapolated first, and any vehicle the avatar is attached to is created “behind” the camera by the simulator just entered. Thus, to the interest list code, the vehicle is “outside” the camera’s field-of-view, and so updates on it are no longer sent to the viewer, and problems result.

The updated interest list code deployed to Magnum ensures updates relating to any object an avatar is sitting on are always maintained (or “subscribed to”, to use the official term) by the interest list code, regardless as to where the vehicle appears to be relative to the camera position. Thus, updates continue either side of a region crossing, allowing control of the vehicle to be maintained.

I took time out to test the code fix, with the aid of Erick Gregan, on Thursday March 21st and we agreed that for aircraft at least, it looked good – neither of us encoutered problems.

Flying a Spitfire XI by Erick Gregan over the four Magnum Sandbox regions, I encountered no isues with sim crossings
Flying a Spitfire XI by Erick Gregan over the four Magnum Sandbox regions, I encountered no issues with sim crossings

Those wishing to test the updated code across region boundaries with aircraft or ground vehicles can do so by visiting the Four Magnum Sandbox regions (accessible to members of the Beta Tester SL group – which is free to join). The update itself will hopefully be deployed to the entire grid in the week 13 deployments.

Object Updates

The lack of updates being received from objects outside of the camera’s field-of-view have resulted in other issues as well, which are also fixed in the Magnum release.

For example, if you are looking at a cube which is changing colour between red and blue every few seconds, and turn your camera so that it is outside your field of view and wait for it to turn blue before camming back, the cube will briefly still appear to be red in your view before suddenly changing to blue. This is due to the fact that when the cube is outside your camera’s field of view, the updates associated with it are no longer sent to your viewer until such time as it re-enters your field of view.

With the updates deployed to Magnum, updates for objects outside your field of view are once again sent to the viewer – but at  a very low rate (around one update every 5 seconds). While this uses a little more bandwidth then sending no updates at all, it also means that objects in a state of change behave more predictably when camming away from and back to them (BUG-1779).

Cacheable Objects

The Magnum update also implements the first set of changes to the re-use of cacheable objects held by the viewer in order to speed up rezzing / rendering. These changes take two forms: a change in what can be cached in the viewer, and a change the order in which things are rendered.

Up until now, any object or item containing a script was considered non-cacheable by the viewer, whether or not the object itself has changed at all.  So if the object disappears (because you teleport away from the region, for example), then all data relating to that object is discarded by the viewer, and has to be re-obtained from the simulator on re-entering the region, which slows rendering.

Continue reading “SL projects update week 12 (2): server, interest list, region crossings, particles”

SL projects update week 12 (1): server releases, SSB and more

Sever Deployments for Week 12

Second Life Server (SLS)

On Tuesday March 19th, the Main channel received the server maintenance package which had been re-deployed to Magnum in week 11. As with the Magnum re-deploy, it excludes the fix for VWR-786 while LL go “back to the drawing board” to try to correct issues. However, it does include the following two fixes:

  • BUG-1612: region Owners and estate managers finding they are unable to teleport back to their region after disabling direct teleports to the region
  • SVC-8019: region visibility delays following region restarts.

The release notes for the deployment are available on the SL wiki, as usual.

Release Candidate Channels

On Wednesday March 20th, the Release Candidate channels should receive the following updates:

  • BlueSteel and LeTigre: should receive the same updates as deployed to the SLS channel on Tuesday March 19th, but otherwise retain the same updates received in week 11 – release notes (BlueSteel)
  • Magnum: should receive further updates to Andrew Linden’s interest list work, as per the release notes.  Specific interest list bug fixes included with this update comprise:
    • Updates for objects that are out of view are delayed for a maximum of 5 seconds, at which point they will be sent (mitigates BUG-1779)
    • Fix for “No object updates from vehicles after some region crossings” (BUG-1814)
    • Fix for “Agent appears in incorrect position to other agents after being moved by a sim teleporter” (BUG-1795).

Server-side Baking

As reported in week 11, the second official Server-side Baking pile-on / load test appeared to go well on Thursday March 14th. Speaking at the Content Creator’s User Group meeting, SSB project lead Nyx Linden reported:

Looks like things are going well overall – the back-end services are performing well. There are still some inventory and attachment rezzing issues, but these are believed to not be regressions from current limits.

A few reports of issues, some of which we have fixes for, others we’re investigating, and we’re looking at what it would take to fix up the systems that were falling over … there were a couple of new bug reports we’re investigating.

A further SSB pile-on / load test conducted in Friday 15th March, but exclusively with the Firestorm viewer pre-release with SSB support. Numbers at the Firestorm test were roughly the same as those for the “official” test, and overall, the outcome was the same – much lower reported SSB issues, but similar problems with outfit attachments rezzing from inventory (or rather, failing to), which was common to both parts of the test.

The Firestorm SSB pile-on  / load test, March 15th
Peoiple gather for the Firestorm SSB pile-on / load test, March 15th

The inventory issues have themselves become more of a focus of investigation outside of SSB itself (attachments aren’t affected by the SSB code changes, which  relate directly to the likes of skin, shape and clothing layer changes. While the inventory issues were thought to relate solely to Aditi, Nyx indicated that the problem is likely common to Agni as well. commenting:

We were seeing similar failures in inventory, etc on both the old pipeline and the new pipeline, and in areas that we didn’t change. So if we repeated the test on Agni we think we’d see similar failures. We’re looking at the root causes, but attachment rezzing failures won’t necessarily block our first release … We’re looking at the inventory & attachment issues and where their root causes are.

Expect further updates on the latter issue as they become known.

HTTP Testing

All of the test regions for Monty Linden’s upcoming HTTP updates are now up-and-running on Aditi, and available for public access (allowing for the caps on avatars in the primary test regions). The regions are:

As noted in previous project reports, Monty is keep to have TPVs and scripters test the capabilities in order to gather more comprehensive data on his work.

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

SL project updates: week 11 (2): Server, SSB testing and HTTP news

Update Match 18th: The “mesh only” HTTP test regions, referred to as “coming soon” in the HTTP section of this report are now online on Aditi, and are called MeshTest2 (DRTSIM-203), MeshTest2A (DRTSIM-203A) and MeshTest2H (DRTSIM-203H), respectively. In addition, the sandbox areas (unrestricted access) are also now available as Sandbox HTTP (DRTSIM-203), Sandbox HTTP A (DRTSIM-203A) and Sandbox HTTP H (DRTSIM-203H).

Server Deployments

The planned deployments for the week went ahead as scheduled. Namely:

  • On Tuesday March 12th, the Second Life Server (SLS) Main channel received Baker Linden’s large (as in complex) object rezzing project, designed to improve region performance when rezzing large objects – release notes
  • On Wednesday March 13th, the BlueSteel and LeTigre Release Candidate (RC) channels received a server maintenance package, intended to fix a common crash mode – release notes
  • Also on Wednesday March 13th, the Magnum RC channel received an update to the server maintenance package deployed in week 10, with further improvements / fixes. These included the removal of the fix for VWR-786, which rather than correctly fixing the known issue (IMs to friends not respecting their privacy settings) resulted in all IMs to non friends returning the “User is not online” message, regardless as to whether the recipient was online or not. Release notes for the package are on the SL wiki. The Lab, according to Maestro Linden, is going to have to, “Go back to the drawing board,” to resolve this problem.

As I’ve mentioned in past reports, the aim of this “large object” rezzing project from Baker Linden is to improve how complex objects (those which have a lot of scripts and / or a large file size), with the focus of the work moving the parsing of object files onto a background thread in order to prevent the simulator being choked and performance spiking when such objects are rezzed. As such, the work applies to both in-world objects and attachments, with mesh potentially being a primary beneficiary of the changes. The thought is that the new code may also help frustrate griefers, as the simulator FPS should be better when multiple scripted objects are being rezzed.

SL Viewer

The SL beta and development viewer were both updated on March 14th. The beta viewer moved to release 3.5.0.271843, with updates primarily aimed at CHUI, as anticipated. The development viewer moved to release 3.5.1.271846, and remains broadly in sync with the beta version of the viewer.

Vivox  Updates

Alongside the FMODex (sound system) updates which will be forthcoming after the formal release of CHUI as mentioned in part 1 of this report, Vivox (the SL Voice service) is also due to be updated to version 4.5. Like FMODex, this is unlikely to happen until after CHUI has reached a formal release., but once implemented, this should result in an improvement in Voice quality.

Mesh Deformer

There is still no news on this. Both the issues relating to avatar shapes and weighting are still awaiting internal resources at LL. As such, there is no timeline as to when any movement might be seen on this project.

Interest List – Issues and Further Updates

More interest list updates on Aditi and likely heading for a Release Candidate channel in week 12.
More interest list updates on Aditi and likely heading for a Release Candidate channel in week 12.

The following fixes, related to the interest list code, should be in an RC deployment in week 12 (week commencing Monday March 18th):

  • A fix issue where you ‘lose track’ of a vehicle after a region crossing
  • A fix for BUG-1795 (“Agent appears in incorrect position to other agents after being moved by a sim teleporter”), which should see an end to avatars still appearing in view after they have used a teleport system
  • A fix for the issue where object moving off-camera would suddenly ‘snap’ into place when you turned your camera so they were in your field-of-view. Whereas up until now, the new interest list code has not sent any updates for such objects, the fix to be deployed in week 12 will once again allow updates to be sent to the viewer, but at a much lower rate than before the interest list code was originally deployed.

The code with these updates is currently available for testing on two regions on Aditi: Solariam (rated: Adult) and Tischeriidae (rated: Moderate). This code also includes updates to improve object rendering (particularly with the viewer set to low bandwidths) and to object cacheing as well, as noted in the first part of this report, and those wishing to do so are encouraged to do so, although testing any improvements to vehicle regions crossings might be contingent upon being Adult verified.

Server-side Baking (SSB) Pile-on / Load Test

The second SSB pile-on load test took place on Aditi on Thursday March 14th, immediately following the Server Beta User Group meeting. The test was undertaken using the latest version of the Sunshine project viewer and appeared to be broadly satisfactory, involving both users and a fair few LL personnel – Nyx (x2, as he had his alt there), Simon, Maestro, Monty, Dan, Don, Log, and others. As with the original test, this took place on two regions – one running the current baking system, the other running the new service. Participants were asked to change outfits using the current service, so that the project team could get some baseline / comparison stats, before everyone moved over to the “new” service on the adjoining region.

Continue reading “SL project updates: week 11 (2): Server, SSB testing and HTTP news”

SL project updates week 11 (1): server deployments, viewer, and interest list updates

Server Deployments

Second Life Server (Main channel)

On Tuesday March 12th, the Main channel received Baker Linden’s large object rezzing project which had been deployed to BlueSteel and LeTigre in week 10. This project is designed to improve simulator handling of “large” (as a file size / complexity, rather than physical object size) so that the simulator does not stall / choke when handling one or more such objects. makes sim performance smoother while objects are being rezzed. Further details on the project are in my week 10 update, and the server release notes are available in the SL wiki.

Release Candidate Channels

On Wednesday March 13th, the Release Candidate channels should be updated as follows:

  • BlueSteel and LeTigre: both of these channels should be receiving the same server maintenance package, intended to fix a common crash mode – release notes
  • Magnum should receive an update to the server maintenance package it received in week 10, with further improvements / fixes. These include the removal of the fix for VWR-786, which rather than correctly fixing the known issue (IMs to friends do not respect their privacy settings) resulted in all IMs to non friends returning the “User is not online” message, regardless as to whether the recipient was online or not. Release notes for the package are on the SL wiki

SL Viewer

There has been no major viewer movement since the last update in week 10.

CHUI, the Communication Hub User Interface

CHUI looks set to be merged-in to the Snowglobe code, with Oz Linden stating he was hoping to start on this on Monday 11th March. There are concerns as to how LL’s ongoing work with the viewer might impact TPVs going forward. As it is, CHUI is liable to remain in the SL beta viewer for a while (and there is expected to be one more CHUI release into beta, as perviously noted).

Materials Project

Work is continuing on clearing the current issues within the viewer code, with a further push of the non-public viewer expected this week, which may resolve some of the problems.

The Potential LL Roadmap for Viewer Releases

While things are always in a state of flux, the potential order of viewer releases from LL’s perspective is currently veering towards:

  • Materials is now unlikely to “be seen” until after the code has merged with the CHUI code  – this follow-on from the SSB code currently undergoing a merge with CHUI and the move to merge CHUI with the Snowglobe code mentioned above
  • This does not mean that a materials project viewer will not appear prior to CHUI reaching the SL release viewer; rather it means that when a materials project viewer appears, it is likely to have CHUI incorporated into it
  • That said, materials will likely only arrive in the release version of the SL viewer after CHUI has been formally released and (most likely) SSB has been deployed
  • Other updates – FMODex is currently awaiting CHUI as well, but has no clear release date; the same is true of the Mac Cocoa project. Currently, it appears as if these are unlikely to reach mainstream release until after CHUI has been formally released.

Most TPVs are currently focusing on the Server-side Baking (SSB) integration, as this has a significantly greater impact on viewers in terms of the impact on  users than CHUI (although the latter is by far the most complex update as it involves a lot of code refactoring as well as CHUI updates). As such, it is likely to be a while before CHUI starts appearing in the majority of third-party viewers (although Kokua has already merged with it, and now has the CHUI code in the beta branch of its code).

Merchant Outbox Project Viewer

As reported over the weekend, Linden Lab has re-issued the Merchant Outbox project viewer, updated to the 3.4.4 viewer code, but which does not incorporate CHUI. This release is purely to assist merchants who are encountering issues in migrating to Direct Delivery now that the initial retirement of Magic Boxes has been announced.

Those who have / are encountering problems in migrating to Direct Delivery can obtain the viewer from the Alternate Viewers wiki page.

This project viewer will be withdrawn at some point in the future, and will not impact other viewer releases.

Server-side Baking

A further reminder that there will be a further SSB pile-on / load test on Thursday March 14th, following-on, as with the last test, from the Server Beta meeting on Aditi. For wishing to participate:

  • The test is liable to be in much the same format as the first test
  • Those participating should be running the latest version of the official SSB project viewer (3.4.5.271419)
  • Participants should have a number of outfits of system clothing, preferably with multiple layers, which they can swap between during the course of the test. Library outfits are acceptable, but LL are keen for people to use their own outfits to add greater weight to the tests
  • Clearing the viewer cache prior to the test is suggested, but not an absolute requirement.
The first SSB pile-on / load test (image courtesy of Latif Khalifa
The first SSB pile-on / load test (image courtesy of Latif Khalifa

The project also seems to be going through a further informal name change: originally referred to as “Server-side Baked Texture Generation & Storage”, the project has generally been shortened to “Server-side Baking”, but is now tending to be referred to as “Server-side Appearance project”. I’ll be continuing to refer to it as “Server-side Baking” or “SSB” for ease of reference.

Continue reading “SL project updates week 11 (1): server deployments, viewer, and interest list updates”

SL project updates: week 10 (3): viewer, CHUI, SSB and HTTP work

SL Viewer Beta and Viewer Development  and CHUI

There have been updates to both the beta and development viewers. The beta viewer moved to release 3.5.0.271345, and development to 3.4.5.271386. Both releases were focused on CHUI, and according to Oz Linden, “Right now they are almost identical; different only in the viewer number I believe.” He went on to say, “There is significant uncertainty as to when CHUI will come out of the beta channels, and it’s very likely that will remain true for a while yet – that is, that the two will remain pretty similar.”

With one CHUI update having just gone to the beta viewer, the Lab anticipates there will be at least one more update for the project while in beta before it makes any more to the viewer release channel.

Server-side Baking (SSB)

Server-side Baking saw the release of a further viewer update – 3.4.5.271419 – on March 7th, which was partially in response from information gained from the first public pile-on / load test for SSB, held on Thursday February 21st.

Commenting on the ongoing work to integrate SSB into TPVs at the TPV Developer meeting on Friday March 8th, Oz linden thanked the TPVs for their work to date on trying to integrate the viewer-side SSB code into their offerings in order to keep the project on track. “I’m very pleased to say that right now it does not look like support for it [SSB] in third-party viewers is going to end up being the limiting factor on when it can be deployed,” he said, although he did caution against showing any complacency in getting the code to a deployable condition.

Merge with CHUI

Also at the TPV Developer meeting, Nyx indicated that overall, the project viewer for SSB is becoming more and more stable, and that his team now has and initial merge with the CHUI code, which they are going to be “hammering on”, prior to pushing it to the internal Sunshine branch. As such, the most recent release of the SSB project viewer is possibly the last push prior to CHUI appearing in the viewer.

Given there are concerns over the merger and its possible impact on TPVs, Nyx is going to see if it is possible to maintain a side branch of the SSB viewer code which does not include the CHUI merge, which could continue to receive fixes and make it easier for TPVs to obtain them, however, until this has been looked into in more detail, he is unwilling to commit to how easy it would be to achieve and maintain – or how long for.

Second Pile-on  / Load Test

Serer-side baking - further testing on March 14th
Serer-side baking – further testing on March 14th

Attending the Server Beta meeting in week 10, Nyx Linden announced that the updated viewer will be required  for a further pile-on / load test, which has been scheduled for Thursday March 14th. The test is liable to be in much the same format as the first test, and those wishing to participate are advised to attend the Server Beta meeting on Aditi ahead of time (the meeting commences at 15:00 SLT on Thursdays).

Those wishing to take part in the test should also ensure they are using the latest version of the SSB project viewer linked-to above, as this as this has been specifically set-up to enable correct logging of data, etc., for the test. Nyx hopes that the latest updates to the logging parameters, coupled with the recent inventory fixes applied to Aditi should do much to both lessen the impact of Aditi issues should they occur and make them easier to identify when analysing feedback. However, Nyx suggested that those who have experienced Aditi inventory issues and who wish to join-in the test on March 14th should log-into the Sunshine test regions ahead of time and confirm that they can access their inventory using the project viewer.

Continue reading “SL project updates: week 10 (3): viewer, CHUI, SSB and HTTP work”