SL projects update 28/2: more on Experience Keys (Tools)

On Tuesday July 8th, Dolphin Linden, a member of the team responsible for the Experience Keys (Tools) project,  attended the Simulator User Group meeting, where he took time to provide further information on the project via what amounted to a Q&A session.

Dolphin Linden at the Simulator UG meeting
Dolphin Linden at the Simulator UG meeting

The following notes have been taken from Dolphin’s comments, and should be read alongside my original overview for Experience Keys, and the Lab’s invitation for experience creators to participate in the Experience Keys beta programme.

Note that because some aspects of Dolphins comments on Experience Keys have been covered in my original article (e.g. the concept of trusted Experiences running on regions with access control enabled, permissions covered by Experience Keys, etc.), they can not reproduced here.

  • Documentation for the projects will be finalised “shortly” – it is currently undergoing final review and update
  • Precisely how Experience Keys will be made available to people is still to be decided; as Dolphin reiterated at the meeting: “We are working out the details, but we want them to be reasonably available, but not so easy acquire that people will make throw away ones to try to grief people; we are still working on the rules about who can have them.”
  • Those applying to be part of the Experience Keys beta do not necessarily need to convert an existing experience they may have, but
    • They should be able to demonstrate that they have the experience with building/scripting to make use of the tools, and
    • They should provide as much information on possible about the kind of experience they’d like to present through the beta
  • Experiences and region maturity ratings:
    • Experiences must respect the maturity of the region(s) on which they run – so an adult rated experience cannot run on a general region, for example
    • Experience ratings are set by the experience owner, and this rating is used to determine the region maturity rating required in order for the experience to run
    • A sample Experience profile
      A sample Experience profile

      The rating is part of the Experience’s public profile, all of which must be G rated

    • The list of experiences running on a region is public information
  • Experiences and scripts:
    • A script can only be associated with a single experience
    • However, a single object can include multiple scripts belonging to different experiences, if required – although this might prove difficult to manage, depending on what the scripts are doing / how the object is used
    • Assigning an Experience to a script must be done by the Experience owner or by a member of the Experience’s group with the appropriate group power (“Contributor”)
    • Existing scripts can be converted to work within an experience, the permissions request to an Experience permissions request and then the event handler would need to be modified to handle tw new events – EXPERIENCE_PERMISSIONS and EXPERIENCE_PERMISSIONS_DENIED
    • An Experience is set on a script through a combo box in the script editor. This lists all Experiences the script creator either owns or has Contributor rights to
    • The selected Experience is set at compile time (similar to the compile type), and is part of the compiled script. The script must be re-saved if it the association is changed to another Experience
    • If a modifiable script associated with an Experience is passed to someone who does not have Contributor permissions for the Experience, they will not be able to save the script unless they remove the Experience or change it to one for which they do have permission
  • The Experience database:
    • Every Experience has its own database, which can be accessed wherever the Experience is running
    • The database is fairly simple, but should make storing the current state-of play for avatars engaged in an Experience (e.g. what they have been doing, what they have attached, etc.)
    • It is basically string-to-string mapping
    • The database supports create, read, update, delete, count, and iterate, and the update can be made atomic, so it can be safely updated from multiple scripts
    • The overall size of the database will be limited, although the Lab is still determining an appropriate limit
    • The database size is also configurable (per Experience), so the Lab will likely offer Experience creators the opportunity to increase their database size for a L$ fee, if needed, although this policy has yet to be finalised
  • As indicated in my original notes, an Experience can be refused or blocked by a user, and can be revoked by the Lab. Additionally, an Experience can be suspended by the Experience owner (so as to allow a bug to be fixed, for example). All of these will result in an EXPERIENCE_PERMISSIONS_DENIED event being sent to all scripts associated with the experience
  • Also as indicated in my original notes, private estates / regions with access restrictions will have an additional level of access which will allow anyone participating in a grid-wide experience running on that estate / region to access it. However, should they revoke the experience permissions while on such an estate / region, they will be teleported away in accordance with the estate’s / region’s access controls
  • All temporary attachments made to an avatar will die should the person go to a place where the Experience is blocked or if they block the Experience.

Again, please do be sure to read the above notes alongisde my original overview of Experience Keys.

Dolphin Linden will be available at the next Simulator User Group meeting on Tuesday 15th July to answer further questions.

SL projects update week 28/1: server and viewer updates

Server Deployments

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

Main (SLS) Channel

On Tuesday July 8th, the Main channel was updated with the server maintenance project that was previously on BlueSteel and LeTigre.  This project adds the ability for LSL functions to view and modify the render materials (normal mapspecular map, and diffuse texture alpha mode) properties on prims, via new prim parameters – release notes.

Release Candidate (RC) Channels

On Wednesday July 9th, the three release candidate channels should be updated as follows:

  • BlueSteel and LeTigre should receive the same new server maintenance update. This project addresses some miscellaneous bugs, and improves L$ transaction logging for payments made by scripted objects.
  • Magnum remains on the Experience Tools project, and receives the same updates as the Main channel, so LSL support for materials will be grid-wide following the deployment.

SL Viewer

On Tuesday July 8th, the Snowstorm RC viewer, version 3.7.11.291465 was promoted to the de facto release viewer. The viewer includes multiple contributed updates from the SL open source community, including (but not limited to):

  • STORM-68 Allow setting of default permissions on creation of objects, clothing, scripts, notecards, etc.
  • STORM-1831 Obtain LSL syntax table from simulator so that it is always up to date
  • STORM-1972 Restore particle debug display
  • STORM-2011 Improve loading of Group member list
  • STORM-2015 Region restart sound alerts play only locally.
  • STORM-2020 Restore RenderSpecularExponent.
With the new release viewer, users can now set their own default permissions for newly-crated prims, textures, etc.
With the new release viewer, users can now set their own default permissions for newly created prims, textures, etc.

Windows XP users please note: with this release, you must have either Service Pack 3 (Windows XP 32-bit) or Service Pack 2 (Windows XP 64-bit) installed on your system in order to install this and future versions of the SL viewer – see the release notes. Please also note that no Windows XP operating systems are supported by Linden Lab.

Other SL viewers remain as per the Alternate Viewers wiki page and my Current Viewer Releases page.

 Experience Keys (Tools)

There was a Q&A session at the simulator User Group meeting on Tuesday July 8th with Dolphin Linden, to discuss the Experience Keys (Tools) project. For ease of reference, I’ve included notes from that session in a separate report.

 

Viewer release summaries 2014: week 27

Updates for the week ending: Sunday July 6th, 2014

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

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

Official LL Viewers

LL Viewer Resources

Third-party Viewers

V3-style

  • Black Dragon updated on July 2nd to version 2.3.9.9 (c) – core updates: fix for motion blur issue as a result of fitted mesh updates to avatar skeleton – change log

V1-style

  • Cool VL viewer updated on July 5th – Stable release to version 1.26.12.6 and Legacy version 1.26.8.64 – core updates: please refer to the release notes

Mobile / Other Clients

  • No updates

Additional TPV Resources

Related Links

Firestorm Mac 64-bit: coming soon

firestorm-logoOver recent months we’ve seen 64-bit versions of some third-party viewers arrive, notably Singularity and Firestorm, both of which are available in Windows and Linux flavours. Their arrival has raised questions both on when we might see a 64-bit version of the official Linden viewer and  – more particularly in this case – when users might see a 64-bit Mac viewer arrive for Firestorm.

Well, the answer to this second question might be in the famous phrase, Real Soon NowTM.

Tonya Souther, a member of the Firestorm development team, brought word on Wednesday July 2nd that a 64-bit version of Firestorm for OS X should debut with the next Firestorm release – although it is liable to be a few months before that release is made.

Tonya has been building on the work started by Cinder Roxley – whom she acknowledges in the blog post – and has been getting things to a point where it is possible to compile a 64-bit version of Firestorm which will run on Mac OS X 10.7 (Lion) or later.

Firestorm developer Tonya Souther
Firestorm developer Tonya Souther

A major part of this work has been in rebuilding the third-party libraries used in compiling the viewer, and Tonya explains some of the bumps in the road she encountered along the way to getting things sorted out. She also offers her own code repository for people to see what she has done in bringing everything together.

The results of Tonya’s efforts now resides in the Firestorm master repository, and will build successfully in either 64-bit or 32-bit, should anyone who self-compiles the viewer wish to give it a try.

Tonya advises anyone who does so, that in order to build a 64-bit Mac version, they must use Nicky Dasmijn’s version of the autobuild tool and specify the -m64 switch, although nothing else changes.

Tonya also goes on to state in reference to self-compiling:

If you’re switching from building a 32-bit Firestorm to building a 64-bit version, you should probably specify --clean to make sure you start fresh with everything at 64 bits. You also need to do a --clean when building for OS X from repository revisions after the change (revision 42327 or higher) if you’ve previously built for revisions before the change (42298 and lower).

As noted towards the top of this article, .DMG files for the Mac 64-bit build will probably not be made available until the next formal Firestorm release for all three platforms, so please do not request them from the Firestorm team before then. Also, and as with all 64-bit viewer versions, there will be no SL-specific version of the Mac 64-bit release when it does officially arrive, until such time as the Lab provides a 64-bit version of the Havok library used within SL-specific viewers.

Finally, and as advanced warning, Tonya notes that once the 64-bit version of Firestorm for Mac officially debuts, the Firestorm team will cease their support of Mac OS X 10.6 Snow Leopard – which is in keeping with the Lab’s ceasing support of OS X 10.6 in April 2014.

For further information, and for technical enquiries, please see Tonya’s blog post.

Related Links

SL projects update week 27/2: server updates, Experience Keys

Server Deployments Recap

There were no deployments to the Main channel or to the BlueSteel and LeTigre RCs. Magnum received an update to the Experience Tools project, intended to provide a fix for BUG-6438 “Objects attached via llAttachToAvatarTemp to object owner detach when script is removed from prim inventory” and UI updates. – release notes.

Week 28 Updates – LSL Support for Materials

Subject to last-minute hiccups, it is likely that the LSL support for materials (normal and specular maps, and diffuse texture alpha mode) currently on BlueSteel and LeTigre will be promoted to the Main channel and to the Magnum RC in week 28 (week commencing Monday July 7th).

LSL support for materials looks as if it will go grid-wide in week 28 (week commencing Monday July 7th)
LSL support for materials looks as if it will go grid-wide in week 28 (week commencing Monday July 7th)

There is still no additional throttling in place for the LSL materials functions, as testing revealed they may not be any need for them. adding to this, Maestro Linden said at the Server Beta meeting on Thursday July 3rd, “It’s throttled via the normal script time throttles, there’s no special X/minute throttle. Well, also there’s a throttle for accessing the materials list by viewers. So even when your viewer knows that an object got material X via the update, it may have to access the RenderMaterials capability to look up the render parameters, and that capability access is throttled (the viewer knows to request at a rate below the throttle so that it doesn’t hit failures).”

 Experience Keys

There is liable to be a discussion of the Experience Keys project at the next Simulator User Group meeting, to be held on Tuesday July 8th, with members of that project team in attendance. The meeting will take place in Denby, on the main grid, commencing at 12:00 noon SLT.

Webkit News

As I’ve previously reported on a number of occasions, Webkit is a third-party library used within the viewer for a number of tasks. For example,  it powers the built-in web browser, and is used to display profiles (unless you’re using a viewer supporting legacy profiles). It is also used with like Media on a Prim (MOAP) and many in-world televisions.  There have been an increasing number of issues with Webkit which have caused some pain (see BUG-4763 and FIRE-12642, and FIRE-11057), and Monty Linden has been poking at as a part of he ongoing work with the third-party libraries used in the viewer build process.

A major problem here is that Webkit itself has deprecated, leaving the Lab needing a replacement. Speaking at the Future of SL meeting, hosted by the Firestorm team on Wednesday July 2nd, Oz Linden indicated that a decision has been made to replace Webkit with the Chromium Embedded Framework (CEF). There is no indication of how long this work will take, as it is a very non-trivial effort which is leveraging work already carried out on the Lab’s next generation platform and other internal services.

GPU Updates

Also during the Future of SL meeting, Oz indicated that there are two upcoming changes which will affect GPUs and GPU memory usage.  Both are currently with LL’s QA team.

The first eliminates using the GPU card name as a means of recognising the card’s capabilities. Once released, the viewer will be able to recognise GPUs a lot more dynamically. One benefit of this is that people with state-of-the-art GPUs should no longer experience the viewer failing to recognise their card and defaulting to basic graphics

The second is a fix for how the viewer uses a GPU’s memory. “Many of you will have noticed that we don’t use all of the video memory on your video cards,” Oz said of the fix at the meeting. “It turns out that’s because of a very old bug that plagued us a long time ago and we sort-of arbitrarily, in order to avoid tickling the bug, we capped how much memory we would ever use.”

With the fix, the viewer will be able to measure the amount of GPU memory and then allocate itself what is liable to be a reasonable share of that memory.

SL projects update 27/1: server updates, HTTP, group chat hardware updates

Server Deployments – Week 27

As always, please refer to the server deployment thread in the technology forum for any latest news, updates, issues on this week’s deployments.

As many noted on Tuesday July 1st, there was no Main (SLS) deployment, although there was a period of grid-wide maintenance.

There will be no deployments on the BlueSteel and LeTigre RC channels on Wednesday July 2nd. As such, these channels remain with the following simulator releases:

  • Main channel: inventory updates (AIS v3) – 14#14.06.13.29103 (release notes)
  • Bluesteel and LeTigre: LSL support for materials (normal and specular maps, and diffuse texture alpha mode) – 14/#14.06.20.291351 (release notes  – Bluesteel; LeTigre is the same).

On Wednesday July 2nd, the Magnum RC should receive updates to the Experience Tools project, intended to provide, “user facing fixes to address both UI and long-standing HUD updates included in this build.” – release notes.

SL Viewer

There will probably not be any viewer promotion from RC to de facto release this week. The sole RC in the snowstorm RC, version 3.7.11.291465 has yet to generate meaningful stats. Current SL viewers are as listed on the Alternate Viewers wiki page and on my Current Viewer Releases page.

HTTP Pipelining Viewer

Monty Linden has been continuing to work on the HTTP side of things, directing his efforts towards HTTP pipelining, which should yield further benefits in rendering texture and mesh, and in generally efficiency of HTTP connectivity between the viewer and the SL servers. As a part of this, and while it is not formally publicly available as yet, he has produced a viewer using HTTP pipelining.

This has been undergoing testing among a group of SL users, and is showing considerable promise in terms of texture rendering improvements, and a similar level of improvement is anticipated with Mesh.

Whirly Fizzle has produced a video comparing texture rendering between the HTTP pipelining viewer and the current release viewer, with the tests carried out under identical conditions.

Experience Tools

The new Experience Tools project will be officially announced on Wednesday July 2nd, with a blog post, video and the release of a project viewer.

Group Chat

Oz Linden: SL's Technical Director talks about coming updates to Group Chat
Oz Linden: SL’s Technical Director: work is continuing on group chat issues, including hardware upgrades for the service

“We have been looking much more deeply into why the problems which exist than we ever have before,” Technical Director for Second Life, Oz Linden stated at the Firestorm The Future of Second Life meeting on Wednesday July 2nd, in reference to group chat issues. “We’ve added a lot of instrumentation to the way it’s implemented, and we have learnt a lot from that.”

He went on to cover the fact that the Lab has begun to make changes as a result of this data-gathering which are starting to have an impact, although he emphasised that while this work is going to continue in the coming months, there is unlikely to be a single update which will be “the” dramatic change which instantly “solves” group chat lag. Things are liable to be a lot more in the way of incremental improvements (no doubt due in part to the sheer complexity of the chat service).  given this, he also suggested that there may be some fundamental work required in the future which could affect the viewer side of things as well.

He went on to say, “We’re going to be upgrading the hardware that the group chat servers run on, I believe this week or possibly next. We won’t announce when that is, because it would be bad science to tell anybody when it’s happened. We want to watch the stats, we now have very good visibility to what performance and failure rates are. So we have the way to measure what’s going on.”