A Shining announcement: major improvements coming to SL

Yesterday Linden Lab announced a major series of new initiatives aimed at improving the overall SL experience. The announcement came via a Tools and Technology  blog post, which covers the initiatives in great detail. These focus on four main areas of activity, one of which is directly related to hardware and infrastructure, and the remaining three are focused on the platform itself and are grouped under the Shining project banner.

The hardware / infrastructure element of the work is described thus:

This year, Linden Lab is making the single largest capital investment in new server hardware upgrades in the history of the company. This new hardware will give residents better performance and more reliability. Additionally, we are converting from three co-locations to two co-locations. This will significantly reduce our inter-co-location latency and further enhance simulator performance.

The Shining project is something that is already known to many SL users – especially those who attend some of the User Group meetings. It is perhaps most famously associated with the Lab’s work on the Viewer rendering code, removing outdated functions and calls no longer supported in modern graphics systems (most notably Nvidia) and improving graphics handling overall. Shining has also been responsible for other incremental improvements to issues around streaming objects and avatars.

Under the new initiative, Shining is split into three core performance projects.

Bake fail: a familiar problem for many

Project Sunshine: One of the biggest complaints from users in SL is related to avatar rezzing. This can appear slow, and usually manifests in avatars remaining grey for periods of time, or in skin and system clothes remaining blurry (see right) – and at its worst, result in a user changing their avatar’s outfit – but others either seeing the avatar still dressed in the previous outfit or naked. Collectively, these issues are known as “bake fail” and are the result of the Viewer having to do all the compositing of avatar textures locally, then sending the results to the SL servers, which then send the information back to the simulator the avatar is in to be accessed by other Viewers in the same simulator.

Under Project Sunshine, to precis the blog post, much of this work is moved server-side, using a new, dedicated server, the Texture Compositing Server, which is separate to the simulator servers. This effectively allows all the “heavy” communications and calculations work relating to avatar texture calculations to performed within LL’s servers and across their own internal network, removing the reliance upon the Viewer and on Viewer / server communications which are outside of LL’s control.

Object Caching & Interest Lists: This is intended to directly address another common request from users: improving how the Viewer handles local object caching. This effectively means that once the Viewer has information relating to a specific region, and providing the information is still valid (i.e. there have been no changes to objects that the Viewer already has cached), then it will no longer need to re-obtain that information from the server. Only “new” or “changed” data needs to be streamed to the Viewer. This should mean that on entering a previously visited region, the Viewer should immediately be able to start rendering the scene (rather than requesting a download from the server), while simultaneously requesting any “updates” from the server through a comparison of UUID information and timestamps.

HTTP Library: The final aspect of Shining’s three-phase approach is to improve the underpinning HTTP messaging that are crucial to simulator / simulator and simulator / Viewer communications (and thus key to the other elements of Shining) through the implementation of “modern best practices in messaging, connection management, and error recovery”.

Overall, Shining will be tackling some of the major causes of Viewer-side lag and user frustration in dealing with avatar bake fail and the complexity and wastefulness of scene rendering that is encountered when moving around SL.

No definitive time frames for the improvements have been forthcoming with the announcements – and this is understandable; there’s a lot to be done and matters are complex enough that LL will want to proceed with minimal disruption to the grid and to users. Doubtless, more information will be made available as becomes known through the LL forums and (possibly more particularly) via the relevant User Groups.

Mesh clothing deformation: alternative approach suggested

Updated June 26th 16:30 BST:  The discussion on this alternative continues on the SLU Forum thread (recommended reading for anyone interested, as a lot is explained succinctly and clearly). Darien Caldwell has summarised the technical aspects of both solutions (and in not having a deformation capability) in terms of who is the greatest impacted – consumers, creators and / or coders.  Similarly, in answering a question posed by Innula Zenovka on the relative advantages / disadvantages to the two ideas (RedPoly’s and the deformer), Adeon Writer commented

“This trick was created to address major problems with clothing, but it is a patch. And you can see the areas where it’s not patched: this only makes mesh follow a few more sliders, while the rest (especially the face) do nothing.

“Qarl makes mesh work with ALL sliders, even future ones that don’t exist yet. It is the correct solution to the problem, this is a quick workaround.

“Qarl gives the ability to make entire new human meshes fully removed from the system shape that still work with all sliders and avatar physics,

“That is not possible with this.”

This would seem to be a clear-cut differentiator that would suggest that if matters come down to a choice of one approach or the other, continuing with the deformer may well be the preferred course of action. Obviously, nothing further has been said on the matter by LL, but further updates will be posted as they become available.

Nalates Urriah brings news of a potential alternative to the mesh parametric deformer that has been under development by Qarl Fizz, and which has been reported upon extensively by Nalates, myself and others.

I’ll leave the in-depth technical explanation and quotes to Nalates – she broke the story, after all. However, to try to summarise:

  • The idea is the rather than weighting mesh clothes against the avatar “skeletal frame”, the clothes are weighted against the “collision volumes” – these are (I gather) used to detect when your avatar collides with a physical object in-world, and thus are designed to morph when you adjust your avatar’s shape
  • The approach isn’t perfect and has a number of limitations (female clothing won’t stretch with breast size changes, for example); extreme sizes cause issues (as they do with the deformer); weight painting during the construction of mesh clothing can be somewhat more problematical
  • Alpha masks will still be required in certain situations (but then, alphas were never going away anyway).

The developer of the approach, RedPoly Inventor has released a demo version of the approach using a dress, which can obtained from his store. There is also a demo video on YouTube:

RedPoly is the first to admit the approach is not perfect, but has also proposed an additional idea of developing a further set of avatar “bones”, which he calls “cbones” that would allow this approach to work a lot better. According to Nalates’ report on the mesh meeting where this all came out, RedPoly believes the development of such a new system would be relatively simple.

Interestingly, according to AshaSekayi Ra, commenting in an SLU Forum discussion on this development, the idea of using the collision volumes  was first raised in the mesh beta last year and that Prep Linden requested samples of clothes rigged to the avatar’s collision volumes, but it is unclear what happened with any tests LL may have carried out.

Right now, this doesn’t mean the end of the deformer, nor does it mean all mesh clothing issues are solved. It does, however, open-up new avenues of exploration and certainly new topics for discussion on the matter.

Reading Nalates’ report, it would appear that the idea has taken LL themselves a little by surprise, despite the fact it may well have been previously discussed, and their reaction is potentially best described as cautious.

As it stands, mesh designers such as AshaSekayi Ra and Ellie Spot will doubtless be looking at the idea, as will those with expertise in the avatar design, as well (one would hope) LL themselves. As Nalates states, there will be further news emerging on this as tests are conducted and feedback given.

Related Links

With thanks to Nalates Urriah.

Advanced user experience tools griefing update

Oskar Linden has provided an update / post-mortem on the recent bout of griefing that took place across the grid as a result of person or persons unknown abusing the advanced user experience code that was released onto the Magnum Release Channel two weeks ago.

The problem hit on Monday 4th June when the advanced teleport functions released to Magnum were used to teleport individuals or groups around the grid, with some people reporting they were teleported to the likes of The Cornfield, while others found themselves unexpectedly picked up and dropped into stores or meetings.

Linden Lab reacted rapidly to the issue, determining a fix for the exploit on the afternoon of the 4th (SLT) and deployed across the entire grid in a rolling restart that affected the main channel and all release channels.

The key points relating to the issue remain:

  • The exploit came about due to a permissions restriction within the advanced tools not working as anticipated
  • To prevent further misuse of the code, the advanced tools were also removed from the Magnum RC channel
  • Both the code and the associated test plans have been revised and are being run through LL’s QA process to better ensure the situation of the 4th June is unlikely to be repeated when the code is rolled-out once more
  • Coyot Linden estimates that the advanced experience tools project has been delayed by around 2-3 weeks as a result of these events
  • LL are at this point in time unclear as to when the tools are likely to be rolled back out onto a Release Channel; the slot assigned to the tools on the Magnum RC has now been taken by other security issues in preparation for their roll-out to the grid.

One immediate outcome of the griefing situation is that the teleport capability has been revised so that when someone is teleported, the function will tell them the name of the owner of the object that teleported them (thus allowing any potential abuser of the system to be reported to LL via an Abuse Report).

With thanks to Nalates Urriah.

Genie out of the bottle: advanced tools capability used for griefing

Update 11th June: Oskar Linden has provided further feedback on this situation. 

Update June 6th: Oskar Linden has confirmed that the Advanced Creation Tools capabilities that were rolled-out to the Magnum RC channel will remain disabled until at least next week, although no firm decision has been on re-enabling them.

Update June 5th 11:30 UTC: The rolling restarts completed at 03:39 UTC. At present, no further updates have been given on the forum post relating to the restarts, but this may change later during the course of today. Oskar Linden has reiterated that due to this rolling restart, there will be no main channel deploy today and that details on Wednesday’s RC deploys are still TBA. My apologies for late timing of this update; a small matter of real life prevented me putting my nose in front of the keyboard any sooner!

Last week saw elements of the new Second Life Advanced Creator Tools rolled-out to the Magnum channel. As I reported at the time, the tools were issued without the new permissions system, but with safeguards that (it was hoped) would prevent misuse.

Today, however, a party or parties unknown started to use teleport functions of the new tools outside of the Magnum Release Channel as a means of griefing. People first became aware of the issue as individuals and groups started finding themselves randomly teleported around the grid, which sparked speculation on Twitter. Later, messages started circulating in-world among groups, outlining issues, such as this one, sent out to the NCI Citizens Helper Group (with thanks to Raylene Gothly)

Ok to everyone, there is something seems grid wide, we do not know if its a bad code in certain sims or if someone has found a way to teleport grief. But its happening all over, so I’m not sure. however I’d like to let everyone know we are aware of this. Suddenly you are just teleported away, best to log off and relog to get out of it, as it seems to continue to teleport you, I was teleported 3 times when I relogged… Dont be frightened it just seems to be a mess up.

The only regions unaffected by the griefing tool appear to have been those on the Magnum RC (where the new teleport functionality has safeguards) and those sims that had script capabilities disabled. Messages were thus circulated to land holders to disable scripting in their regions to avoid the issue, at least until Linden Lab responded to the situation.

Linden Lab themselves commenced efforts to stop the problem with emergency rolling restarts across the grid, announced via a Grid status update and a forum post:

To solve a security issue with the Experience Tools that were deployed to Magnum last week we are doing an emergency simulator rolling restart deploy. This has already begun.

Regions on the following channels will be restarted with the fixed code:

Main Channel
BlueSteel
LeTigre

Magnum will not be restarted because the issue is not possible in Magnum regions. We will have no rolling restart Tuesday morning. The Wednesday morning RC channels will roll at the usual time.

We apologize for any inconvenience and appreciate your understanding.

I’ll update here when further information is available.

User Experience Tools: initial roll-out to Magnum RC

Today sees the first phase in rolling-out the new User Experience tools to the Main grid. As noted in the official release notes, the tools have been rolled-out to the Magnum Release Channel.

The new tools were previewed back in March in a rare SL blog post, which I covered at the time it was released. Today’s Magnum release adds three new LSL functions for User Experience:

  • llAttachToAvatarTemp (integer attach_point) — Follows the same convention as llAttachToAvatar, with the exception that the object will not create inventory for the user, and will disappear on detach, or disconnect. It should be noted that when an object is attached temporarily, a user cannot ‘take’ or ‘drop’ the object that is attached to them. Additionally, if this function is used with experience permissions, the user is ‘automatically’ made the owner of the object. If you use this function without the experience permission, the target MUST be the owner of the object for it to attach properly
  • llTeleportAgent (key agent_uuid, string lm_name, vector landing_point, vector look_at_point) — Teleport Agent allows the script to teleport an agent to either a local coordinate in the current region or to a remote location specified by a landmark. If the destination is local, the lm_name argument is a blank string. The landing point and look at point are respected for this call. If the destination is remote, the object must have a landmark in its inventory with the teleport agent script. lm_name refers to the name of the landmark in inventory
  • llTeleportAgentGlobalCoords (key avatar, vector global_coordinates, vector region_coordinates, vector look_at) — Teleports an agent to region_coordinates within a region at the specified global_coordinates. The agent lands facing the position defined by look_at local coordinates. A region’s global coordinates can be retrieved using llRequestSimulatorData(region_name, DATA_SIM_POS).

This initial roll-out does not include the expanded Experience Permissions System, as Oskar Linden points out in a forum post on this week’s server releases. Instead, the new functions work with the current runtime permissions system (specifically PERMISSION_TELEPORT), although plans are in-hand to roll-out the new permissions systme at some point in the future.

No details have yet been released on the Professional Creators Programme that was mentioned in the original preview blog post, but if you are interested in learning more about the tools, the Advanced Creator Tools Notification Group is still open to membership, and you are encouraged to join the Group.

Oskar notes that LL will be actively monitoring the forum thread announcing the roll-out, and anyone encountering issues with the new functions is encouraged to post feedback in the thread, cross-referencing any relevant JIRA they raise.

Given the functions are now on the Magnum RC, and people are being encouraged to provide feedback, this roll-out would appear to move the User Experience tools outside of the associated Closed Beta programme.

For ease of reference, here’s the video LL released with the original preview announcement:

Related Links

Mesh deformer and standard sizes: Qarl speaks

There has been much in the way of heated debate on the subject of the mesh parametric deformer and standard sizes for avatars of late. So much so that in this week’s Metareality podcast, Kimberly Winnington (Gianna Borgnine in SL), deformer coder Karl Stiefvater (Qarl Fizz in SL) and in-world content creator Cathy Foil discussed the debate at some length and touched on other aspects of the deformer project.

The following is a summary of the core aspects of the discussion, presented in the panelist’s own words. My thanks to Kimberly for allowing me to produce this piece.

[2:10] Kimberly Winnington (KW): As it stands now, mesh items have to be built to the default avatars like the Ruth Avatar and then be deformed.

[2:32] Karl Stiefvater (KS): There’s a slight difference between Ruth, the actual Ruth – a lot of people call different shapes “Ruth”,  so that’s a bad term to use – and the important shape, the one that you get when you say, “Hey, I want to do a shape!” and you don’t touch any of the other dials … and I call that the “default shape”.

[2:58]  KW: So as it is now, clothing has to be built to that default shape before it can be deformed.

[3:04] KS: Right.

[3:05] KW: And it’s been suggested it should … that group of things like the default avatar should include some sort of standard size as well, even though that’s not officially a feature at this time.

[3:22] KS: That is correct. The rationale there is the deformer isn’t perfect and if you start with a shape that’s closer to your end shape before you actually tweak it, you can get superior results … Even if the deformer worked perfectly, when you design a shirt with a floral print … and you put it on someone with their body weight turned all the way up … the floral print is going to be distorted … So with the new system, the artist could say, “I’m going to repaint that floral print so it doesn’t get stretched out.”

[4:19] KW: There’s this fight going on. Emma Gilmore, also known as Elie Spot – she is of course on the standard sizing side, she was one of the people who worked with a bunch of other designers and came up with the standard sizes. And then I guess on the other side of the argument is Maxwell Graf … he’s on the side that the standard sizing is a marketing ploy and is awful and we shouldn’t even tolerate its existence. And I guess I’m somewhere in the middle of those two arguments on the basis I kind of agree with the standard sizing – not as the official solution because I don’t want to change my avatar …  so I’m all for the deformer and do not want to have standard sizing as the only solution.  However, I would have a much better chance of fitting into something without a lot of stretching if I stretched from a size that was closer to my avatar than the default avatar …  But I still think that it’s at least a solution that should be discussed; where the starting-off point for the deformer should maybe be closer to a standard size.

[6:56] KS: It sounds like you and I are in agreement …

[7:15] KW: The other thing that came up was … Emma was talking to you about possibly having a way they could convert current meshes without having to re-upload, and you had suggested to her that she post on the JIRA and get some feedback from some other people. So the problem became she posted on the JIRA and she posted a Plurk about both these issues. like let’s discuss where we should start from and lets talk about whether we should be re-uploading or converting and how should we do that … So it started this huge fiasco where everybody kind-of attacked her both on the JIRA and totally all over Plurk, and were like, “you’re wrong, you shouldn’t be posting here…” … I actually agree with her and think she has a good point; but whether you agree with her or not, the topics she brought up are important for us to discuss as a community, especially designers and people who want to wear mesh. Because once the thing is final – you know how things go in Second Life; it will come out and everyone will be unhappy with it but it will be too late to do anything about it. So you have to do it now …

[9:59] KS: The deformer isn’t perfect. There are problems and what she’s proposing … is an extension … so it doesn’t take anything away from what you had before; it’s just adding new features. So how can you hate something that has everything you want but has this extra thing that somebody else wants? How does that engender white-hot hatred? I don’t understand.

[10:36] KW: I think there’s two things. I think the first on is not understanding that it works in collaboration with the deformer. So I think there’s a lot of people…they hear “standard sizing” and they are automatically like, “No”, without understanding that it’s not going to work like standard sizing is now … that you have to fit to that standard size.  This is just in collaboration with the deformer, and I almost want to name it something else….

[11:03] KS: How about “alternate bases”? … Alternate bases, everyone.

[11:14] KW: The other thing that comes up is that a lot of people feel like that if we make a solution that fits … then Linden Lab will stop trying to think about trying to create a new overall avatar mesh.

Karl Stiefvater (Qarl Fizz)

[11:47] KS: I don’t thing that we’ve forced them to do anything ever … They’ve never given in, ever! So I don’t see that as a smart strategy … One thing I want to add to this, tho, is this other aspect  that I don’t think anybody knows about. And that is, Linden Lab, internally, is … struggling with a question that is probably going to delay the deformer even more. And that is, they don’t know if they like the default avatar as the base. They think there might be a better base. … Then the question is, so how do you pick a better base? Some of them are suggesting … that adding curves is easier than removing curves, so if the base was something that had no boobs, that had no curves or shapes whatsoever, that might perform better … But they have no system in mind for making this call. So this is like one of those objections that can never be necessarily resolved, which is very dangerous for the project. So one of the things I like about this alternate bases idea is it neutralises this potential problem, because if they think there is a better base avatar, we can just add it later. As soon as they decide what that perfect base is, we’ll just add it to the list. So it’s beneficial for reasons completely unrelated to the whole fight right now, so that’s something to keep in mind. That’s mainly why I’m sort-of leaning this way … because it kills two birds, and one of these birds is otherwise potentially project destroying.

[14:23] Cathy Foil (CF): Is it possible to have the content creators load-up their own custom bases for their mesh? Would that be possible? Or would they have to create their own blend shapes so they work with the sliders?

[14:40] KS: No … they would have to use the existing shapes, the existing parameters. But they could specify their own set of parameters; that’s doable, but I’m a little bit afraid that that’s over-designed … so I think that maybe down the road that’s a good option, but I think for right now just a set … just six or seven different bases….

[15:16] CF: I did have a wackadoodle idea I wanted to put forward. I know it’s probably way too late in the development … right now you have the avatar mesh is driving the deformer of the mesh clothing, and I thought of the idea of having “deformer underwear” so to speak,  an invisible mesh that you wear so that the avatar’s mesh deforms the underwear but then the underwear deforms the clothing mesh … so that the designers could create custom underwear that would only fit over certain parts of the avatar if they wanted or they could have more vertices in the underwear that would spread out the deformer so that they would deform the clothing mesh maybe a little bit more evenly.

[16:08] KS: That’s a clever idea … but no it’s too late for that! [laughs] But that’s interesting and that could definitely be in version 2 … Then clothing could work on avatars that are completely alien, you know, something you couldn’t dial around … like an elephant .. you could create an elephant avatar and then your hoodie or your dress would fit…

From here, the discussion moved out to talk about design techniques before moving on to the remaining topics of the podcast. For those interested in the mesh deformer and the ongoing debate, I thoroughly recommend listing to the podcast in its entirety, which also includes issues such as DMCA, copyrights and a discussion about the use and impact of the SL Marketplace.

Related Links