SL project updates 34/1: server, viewer, MIME Type updates

Cocoon, Japan Rose; Inara Pey, August 2017, on Flickr Cocoonblog post

Server Deployments Week #34

Please refer to the deployment notice for the week for latest updates and news.

  • On Tuesday, August 22nd, the  Main (SLS) channel was updated with server maintenance package, 17#17.08.11.328159, comprising internal fixes and the following feature requests:
    • BUG-5398: llGetObjectDetails() constants OBJECT_SELECTED & OBJECT_SAT_UPON. This sees the addition of two new parameters:
      • OBJECT_SELECTION_COUNT – returns how many agents are selecting any link in a linkset
      • OBJECT_SITTER_COUNT – returns how many agents are sitting on any links in a linkset.
    • BUG-9666: llGetObjectDetails() constants OBJECT_REZ_TIME, OBJECT_CREATION_TIME and OBJECT_RETURN_TIME.
    • BUG-134057 OBJECT_CREATION_TIME output precision possibly clamped – this sees a shift to 6-digit precision.
  • The three RC channels are, at the time of writing, TBD on the status of any update. However, it is believed (as per Rider Linden at the Simulator User Group meeting), should have additional logging for altitude changes, a couple new constants for llGetObjectDetails and some additional validation for mime types passed into HTTP requests. There is also a change that lets you customize what is passed in the Accept header.

SL Viewer

There have been no viewer updates so far this week, leaving the various pipelines as follows:

  • Current Release version 5.0.6.326593, released on May 26, promoted June 20 – formerly the AssetHTTP RC viewer – overview
  • Release channel cohorts:
  • Project viewers:
  • Obsolete platform viewer version 3.7.28.300847, dated May 8, 2015 – provided for users on Windows XP and OS X versions below 10.7.

llHttpRequest MIME Types Updates

On Thursday, August 17th August, Oz Linden opened a forum thread of on the latest MIME type update the Lab is implementing. The latest changes involve validating the MIME type values:

  • The HTTP_MIMETYPE parameter to llHTTPRequest is checked. LSL will validate these for proper format; requests that attempt to send an improperly formatted type will send a debug channel error, not send the request, and return a null request key.
  • If you use the new HTTP_ACCEPT option to llHTTPRequest (which allows you to further restrict the type your script expects), the Content-Type of the response is checked to see that it matches your restriction; if it does not, the http_response event will be a 415 error and the body will be “Unsupported or unknown Content-Type”. Further details about HTTP_ACCEPT can be found in llHTTPRequest on the SL wiki.
  • Incoming HTTP requests to a script check to see if the Content-Type in the request is formatted correctly and that it is an allowed type (it always checked for allowed types). Previously, it was possible to send a type that was syntactically invalid but matched an allowed wildcard type. Incoming parameters are not validated. If an incoming request has an improperly formatted or unacceptable MIME type, LSL responds with a 415 error response and no event is generated for the script.

Scripts using any of the above can be tested on the following regions:

Other Items

Script Memory

The Lab periodically receives requests for the Mono script memory limit (64Kb) to be increased.

There are concerns about any increase. Not everyone writing Mono scripts do so efficiently or conservatively; any increase in limits could lead to avatars carrying much larger script loads (even allowing for multiple scripts to achieve functions which might otherwise be managed in a single, large script), impacting teleports and regions during the same. Some suggestions have been offered by users for reducing such potential impact:

  • Limiting additional script memory to creators of experiences – which is not seen as overly positive.
  • Limiting any increased script memory for premium members – which might be an incentive for some to upgrade.
  • Limiting the number of scripts (currently around 2,500) a single avatar can have attached.
  • Forcing limits on memory use at compile time – which presupposes the about of memory a script in operation will require at compile time, which might not always be the case.

As it stands, it is unlikely the Lab will have time to investigate any increase in script limits – but they are aware of the requests.

Advertisements

SL project updates 33/1: server, viewer, misc

Yasminia, Yasminia; Inara Pey, August 2017, on Flickr Yasminiablog post

Server Deployments Week #33

Please refer to the deployment notice for the week for latest updates and news.

  • There was no deployment to the Main (SLS) channel on Tuesday, August 15th, which remains on server maintenance package #17.07.27.327933 (not 17#17.07.11.327548 as quoted in the deployment thread. This comprises “additional internal fixes”.
  • On Wednesday. August 16th all three RC channel should be updated with the same server maintenance package, 17#17.08.11.328159, comprising internal fixes and the following feature requests:
    • BUG-5398: llGetObjectDetails() constants OBJECT_SELECTED & OBJECT_SAT_UPON. This sees the addition of two new parameters:
      • OBJECT_SELECTION_COUNT – returns how many agents are selecting any link in a linkset
      • OBJECT_SITTER_COUNT – returns how many agents are sitting on any links in a linkset.
    • BUG-9666: llGetObjectDetails() constants OBJECT_REZ_TIME, OBJECT_CREATION_TIME and OBJECT_RETURN_TIME.
    • BUG-134057 OBJECT_CREATION_TIME output precision possibly clamped – this sees a shift to 6-digit precision.

SL Viewer

There have been no viewer updates so far this week, leaving the various pipelines as follows:

  • Current Release version 5.0.6.326593, released on May 26th, promoted June 20th – formerly the AssetHTTP RC viewer – overviewdownload and release notes
  • Release channel cohorts:
    • Maintenance RC viewer version 5.0.7.328060, dated August 9th.
    • Alex Ivy 64-bit viewer version 5.1.0.507412, dated July 21st.
    • Voice RC viewer, version 5.0.7.327253 dated June 23rd.
  • Project viewers:
  • Obsolete platform viewer version 3.7.28.300847, dated May 8th, 2015 – provided for users on Windows XP and OS X versions below 10.7. This viewer will remain available for as long as reasonable, but will not be updated with new features or bug fixes.

llHttpRequest

Further to my week #32 TPV Developer meeting notes, the llHttpRequest() changes are progressing.

“There are also some changes in the works coming along with llHTTPRequest() and mime types, Simon Linden noted at the Simulator User Group meeting. “A bit of clean-up, but there’s a chance there will be issues if people are doing some funky things along those lines. We will be putting some servers with that code on a few RC regions to test.”

Mazidox Linden added:

We should have some regions up tomorrow to test here on Agni, and we’ve already got a couple of test regions on Aditi, including Bonifacio and Sandbox Artifex. I’ll have more details about Agni regions at the Server Beta User Group on Aditi, in Morris on Thursday, at 3 PM Pacific Time.

This work will see MIME types associated with llHttpRequest being validated. This will involve checking the MIME types are well-formed, rather than any kind of checking against a valid whitelist of MIME types.A example of a poorly-formed MIME type, once the changes are implemented would be llHTTPRequest(base_url, [HTTP_MIMETYPE, “application/x-www/form-urlencoded”], “”.

The only exception to this is HTTP_ACCEPT, which does employ a whitelist, details of which are due to be added to the SL wiki. This will require the use of a MIME type from the set of types which are currently posted in the accept header (or any text/[subtype]).

As Oz Linden noted:

Unfortunately, someone put invalid example values in the wiki, and if anyone has used them then they’ll fail. I actually think that there’s little chance of bad failures, but it could trip a few people and given recent history we’re going to go a little more slowly with this one. The bad examples are only a year or so old, so I’m hoping they won’t be too widespread, and I’ll put up a forum post as soon as we have the region list.

Other Items

Aditi Inventory Syncing: Those who routinely log-in to Aditi, the Beta grid, probably know that the inventory syncing from Agni (and Main grid) and Aditi is currently broken. The Lab is aware of the problem, and it will be addressed.

BUG-100870 [Feature Request] Sandboxes should disallow sat upon objects to bypass auto return: this is being considered for all sandboxes, but is not currently being considered for all land, due to the risk of people being unseated from vehicles when crossing land with very short (e.g. 1 minute) auto-return periods.

SL project updates week 32/3: TPV Developer Meeting

Whimberly, Whimberly; Inara Pey, August 2017, on Flickr Whimberlyblog post

The majority of the notes in this update are taken from the TPV Developer meeting held on Friday, August  11th 2017. The video of that meeting is embedded at the end of this update, my thanks as always to North for recording and providing it. Timestamps in the text below will open the video in a separate window at the relevant point for those wishing to listen to the discussions.

Server Deployments Week #32 – Recap

Please refer to the deployment notice for the week for latest updates and news.

  • On Tuesday, August 8th, the Main (SLS) channel was updated with a new server maintenance package (#17.07.27.327933), comprising “additional internal fixes”,
  • The scheduled deployment to the RC channels for Wednesday, August 9th has been cancelled due to a back-end data issue which meant the region channel names weren’t being set correctly, so they didn’t start.

SL Viewer

[00:54] The Maintenance RC viewer was updated on Wednesday, August 9th to version 5.0.7.328060. This is currently the most likely candidate for promotion to de facto release status. The rest of the LL viewer pipeline remains as at the start of the week:

  • Current Release version 5.0.6.326593, released on May 26, promoted June 20 – formerly the AssetHTTP RC viewer – overviewdownload and release notes
  • Release channel cohorts:
  • Project viewers:
  • Obsolete platform viewer version 3.7.28.300847, dated May 8th, 2015 – provided for users on Windows XP and OS X versions below 10.7.

[01:15-01:40 and 4:51-5:33] It is hoped the Alex Ivy 64-bit viewer will be updated in the early part on week #33 (commencing Monday, August 14th). Currently, the viewer is still showing an elevated crash rate for some, for reasons yet to be determined. In the meantime, the Lab is adding further code that will hopefully capture more crash information.

[01:56 and 06:49] The 360-degree snapshot viewer is currently on hold due to people being on vacation at the Lab. This may be a slightly extended delay while resources are diverted to the 64-bit viewer and CEF work.

[14:22-14:34] The Voice viewer is also suffering a high crash rate, also for unknown reasons.

[14:35-14:46] One of the next viewer projects for the Lab is a major re-vamping of the crash reporting and analysis system, which will hopefully make it easier to trace down probable causes for viewer crashes.

llHttpRequest Issues

[02:15-04:21] The least couple of weeks have seen server-side issues with llHttpRequest. Some of this has been due to low-level library changes that were inherited in updating the simulator code to some of the new components, including the OS itself. Other issues were the result of changes the Lab made at around the same time.

Most of these issues have now been rectified, although there is still some incompatibility issues still to be sorted. There is one further significant update related to this which will be going out on Aditi (the Beta grid), which will be put to the test with the intention of seeing if anything else breaks. A blog post / forum notice will precede this.

Simulator Infrastructure Updates

[08:52-09:28] The Lab is going to be carrying out a lot of simulator infrastructure work over the next two quarters. Efforts will be made to make user-visible updates during this work, but most of the work will be transparent to users, and may result in some performance improvements.

Other Items

[08:18-08:46] Group notice failures: No work has been put into looking at why some group notices are being dropped. This is currently seen as a lower priority than dealing with issues which can crash simulators.

[10:29-11:37] Dynamic mirrors (again): (see STORM-2055). The Lab has no plans to work on this at all, but Oz offered a *possible* compromise:

If an open-source developer implements mirrors that work, and are acceptable from a performance point of view, without unreasonable restrictions on where you can put them and what you can put them on, I at least will be happy to consider the contribution. But I don’t believe that’s possible, and I am assured by graphics developers who know a great deal more about rendering than I do, that it isn’t possible; and that’s why we’re not doing in. So, if you have a miracle worker out there who wants to do a contribution to the viewer – go for it! But since I’d like to get other work done, I’m not going to devote our developers to doing it.

[13:37-14:01] EEP – Environment Enhancement Project: a re-iteration of this project see the outline Google doc or my overview for more) will allow for things like phases of the Moon.

[18:20-18:32] Viewer UI Region / Estate ban list improvements: this work is still pending a developer resource.

[19:10-24:12] Abuse of Setting Home:  it has been reported that griefers are able to circumvent being kicked out of a region (TP Home) by moderators if they have home set to that region. The alternative to this is to ban them from the land – but this requires the rights to do so. There are also alleged means to bypass estate bans if the home position is set to the banned region – which should not be possible. If there is a bug allowing this to happen, it needs to be reported with repro steps.

PacMan Stars and Black Stars: the issue of “Pacman stars” (irregularly shaped stars) has been fixed via a contribution by Drake Aconis (Sovereign Engineer). However, the issue of stars appearing as black dots in some daylight windlight settings has yet to be fixed. This may be looked at as a part of the EEP.

 

SL project updates week 32/2: Content Creation UG

Content Creation User Group Meeting, Hippotropolis Camp Fire Circle

The following notes are taken from the Content Creation User Group meeting, held on  Thursday, August 10th, 2017 at 13:00 SLT at the the Hippotropolis Camp Fire Circle. The meeting is chaired by Vir Linden, and agenda notes, etc, are usually available on the Content Creation User Group wiki page.

Medhue Simoni live steamed the meeting to You Tube, and his video is embedded at the end of this article. These notes present the meeting in terms of topics discussed, rather than a chronological breakdown of the meeting, so the provided time stamps may appear to be out of sequence in places. All time stamps are provided as links which will open the video in a separate browser tab, allowing the discussion to be heard in full.

Note: Due to Vir’s time on vacation, the next official CCUG meeting will be on Thursday, August 31st. Details will be posted on the wiki page.

Project Summary

The goal of this project is to provide a means of animating rigged mesh objects using the avatar skeleton, in whole or in part, to provide things like independently moveable pets / creatures, and animated scenery features via scripted animation.

  • At this point in time, this is not about adding fully functional, avatar-like non-player characters (NPCs) to Second Life
  • Animated objects will not (initially):
    • Have an avatar shape associated with them
    • Make use of an avatar-like inventory (although individual parts can contain their own inventory such as animations and scripts)
    • Make use of the server-side locomotion graph for walking, etc., and so will not use an AO
    • Use the avatar baking service
    • Be adjustable using the avatar shape sliders
  • The project may be extended in the future.
  • It will involve both back-end and viewer-side changes, likely to encompass new LSL commands to trigger and stop animations (held in the object’s contents)
  • It will most likely include a new flag added to an existing rigged object type in order for the object to be given its own skeleton.

Recent Progress

[06:05] Alexa Linden is leading the product side of the animated objects project, and is working on build documentation for the viewer, test plans and related information, etc., for LL’s internal use.

[30:32-31:45] Will it be possible to attach a rigged mesh (e.g. clothing) onto an animated object? If it is rigged mesh, it doesn’t actually need to be an attachment; it can just be specified as a part of the linkset comprising the animated object, and animated against the same skeleton. However, static attachments will not be initially supported with animated objects.

[33:28-34:56] Animesh and sliders:  it’s unlikely that slider support will be implemented for animated objects in the sense that you right-click on an animesh, edit its shape and then adjust the sliders as with an avatar. What would be more likely is to allow body shapes which already contain all the slider settings to be taken and applied to animated objects to given them a desired shape.

This work will likely follow-on for the current project and the work with the baking service, as it would require baking service support to work correctly, just as body shapes for avatars are currently supported through the baking service.

[36:12-36:58 and 37:44-38:10] There is no time frame on when the viewer will appear, but the Lab wants to build on Bento’s experience: get a test viewer out, gain feedback and suggestions, and then improve on it. This doesn’t mean everything people would like to see associated with animated mesh reach the viewer – or at least in one release of the viewer -, but the idea is very much on collaborative efforts to develop the capability. Internal testing the viewer has revealed a couple more things which need to be tackled before its made more generally available (and, of course, test regions need to be established on Aditi).

[57:16-58:05] Performance impact with animated objects won’t really be understood until more widespread testing begins with a public project viewer. There will be some limitations places on animesh intended to help reduce any negative impact (e.g render cost, land impact, maximum number allowed in a region, etc.), but these are all still TBD at this point in time.

Rendering Cost Calculations

[07:29 – 08:25] Related to the above (but not confined to animesh) and as has been previously noted in a several of my SL project updates, the Lab is re-visiting how the rendering cost calculations are handled within Second Life, and Vir has most recently been involved in this work. The aim is to make the calculations a lot more reliable and accurate when establishing the render cost of objects, and thus possibly encourage people to make more efficient content. This work will involve both internal testing by the Lab and “external” testing involving users.

Project EEP (Environment Enhancement Project)

Project Summary

To enhance windlight environment settings and capabilities, including: making environment settings an inventory asset (so they can be sold / bought / swapped); the ability to define the environment (sky, sun, moon, clouds) at the parcel level; LSL scripted support for experience environments / per agent; extended day settings (e.g. having a 24-hour day for a region and 7-day cycles) and extended environmental parameters (possibly including Godrays, distance fog, etc).

See also:

[12:44-13:50] Rider has been busy with other projects since the work was first announced, but will hopefully provide updates when the work resumes.

[44:15-46:32] Further summary of the work by Rider.

Bakes On Mesh

Project Summary

Extending the current avatar baking service to allow wearable textures (skins, tattoos, clothing) to be applied directly to mesh bodies as well as system avatars. This involves server-side changes, including updating the baking service to support 1024×1024 textures. This may lead to a reduction in the complexity of mesh avatar bodies and heads.

Recent Progress

[22:33-23:12] Work is progressing. The updates to the baking service to support 1024×1024 textures are currently on internal testing by the Lab using at least one of the development grids. It’s in a “pre-Aditi” (Beta grid) state, but will hopefully be moving forward soon.

Other Items

Note that some of the following are the subject of more extensive commentary in local chat.

[11:46-12:40] Adjustable walk / run speeds: (see: feature request BUG-7006 for example) nothing happening on this “immediately”. The JIRA has been pulled in by the Lab as it may tie-in with some work being considered for animation playback. However, things are unlikely to be looked at until the next round of animation updates, which will include supplemental animations. The specs for this work have to be fully determined.

Alexa Linden: Product Manager for Animated Objects (Animesh)

[16:29-17:00] Increasing script memory limits: not currently on the roadmap.

[18:00-19:35 and 21:36-22:15] Development kits for the default mesh avatars: in short, nothing planned on the Lab’s part at present. There are, of course, various models and samples available through the Bento wiki pages which might be useful as teaching tools.

[23:14-29:56] Adding further bones to the avatar skeleton for clothing, etc / custom skeletons: adding further bone to the avatar skeleton is unlikely. As it is, the additional Bento bones – if carefully used – can be re-purposed for a wide variety of uses beyond their default names, including in clothing, etc., although custom animations will be required as well. However, this can – within limits – allow creators to build semi-customised skeletons.

A particular consideration with custom skeletons is the issue compatibility between different objects wanting different skeletons, it makes it much harder to ensure different avatar part work together smoothly (e.g. a pair of wings from one avatar working with the quadruped body of another).

[25:33-26:02] Near-term roadmap: the current near-term roadmap for content creation features is; animated objects (animesh), bakes on mesh, then a follow-on to allow bakes on mesh to be used on animesh objects together with some additional features, in order to enable more NPC-like character creation.

[49:44-50:34] Dynamic mirrors: (see STORM-2055) these continue to be periodically raised at meetings, the Lab remains disinclined to implement anything on the grounds of performance impact, particularly as dynamic reflective surfaces would, in all likelihood, be used indiscriminately by many.

[50:45-51:41 and 53:24-54:54] Terrain texture resolution and adding materials to terrain: SL terrain textures suffer from having a relatively large pixel size/ low pixel density, resulting in terrain looking blurred. This can be exacerbated when default terrain is mixed with mesh terrain, where the latter can use the same textures and benefit from the use of materials.  Currently, there is nothing on the SL roadmap for making changes to SL terrain textures.  The pixel size / density issues is seen as a non-trivial fix, given the impact it would have on terrain as a whole and how it may affect those using custom textures on their land.

[59:10-1:01:20] Lab-provided building learning centres: the question was raised about the Lab providing more in-world locations where people could learn about building in SL (“building islands”). There are already a good number of user-provided areas in SL, however, the idea here is to provide more of a self-teach facility (think the Ivory Tower of Prims) rather than one which relies on classroom based teaching, and which includes the best practices, access to test models, etc. Alexa said she’d run the idea past the LDPW team.