Sansar Product Meeting 2017 week #46

Creator Academy: Hall of Materials – location for the Friday, November 17th, 2017 Product Meeting

The following notes are taken from the 4:00pm PST Sansar Product Meeting held on Friday, November 17th. Product Meetings are usually held every Friday at 9:30am PST and 4:00pm PST, and are open to all. There is currently no set agenda, and the meetings are a mix of voice and text. The official meeting notes are published in the week following each pair of meetings, while venues change each week, and are listed in the Meet-up Announcements. and the Sansar Atlas events section.

Unfortunately, I was unable to attend the Friday, November 17th morning meeting, hence these notes only covering the one meeting.

Store Release

The November release will, as previously noted, focus on the Sansar Store. It will include a redesign of the Store’s main page.

The Sansar design team is working on the mean for designers to update store listings and to be able to distribute updates to customers, determining the likely workflow, etc. However, it will still be a while before this appears, and it won’t be part of the Store Release

Fashion Release

This is still on course from a planned December release. Invites to the “alpha test group” are due to start going out to designers. This release should also hopefully include non-fashion elements as well, such as the events information being added to the client Atlas – see my notes from week #45 for more.

Experience Access Control and General Security

Upcoming capabilities for Sansar will include the ability to control access to an experience. Initially this will be restricting it to Friends only, but further control abilities will be added, and the Lab is seeking feedback from users on what they would like to see. ideas thus far include:

  • Blacklist and whitelist access (i.e. those on a blacklist are permanently blocked from accessing an experience; or access can be contained to a whitelist of people, regardless of whether or not they are on the experience owner’s Friends list).
  • Ability to appoint “experience officers” (similar in notation to Second Life estate managers), with the authority to keep an eye on an experience and those visiting it.
  • The use of a maturity ratings system similar again to SL, which could be used within experiences and in the Sansar store to both help indicate what might be seen within an experience, and also what is permitted to be worn within an experience (e.g. anyone with an Adult rated attachment would be barred from accessing a General rated experience until the attachment is removed).
    • How straightforward this would be to implement is unclear.
    • It’s worth noting that Ebbe Altberg has in the past suggested that experience owners may eventually be able to define entry by avatar type / dress mode defined by the experience owner (so for, example, a merfolk-centric experience would require all visitors to be a merman or mermaid).
  • Abilities to deal with griefers, again, like SL, not jut ejection / banning, but ability to freeze them, indicating their actions have been observed and could result in a ban.
  • Overall account security is something the Lab is looking at, particularly given the means by which accounts can be hacked / abused within Second Life.

In Brief

  • The events section of the Web Atlas: when active, has been updated to present information a little more clearly.
  • Community Meetings: Sansar Community meetings are now being varied, visiting different experiences on different days, rather than the one experience being used for a whole week of meetings. Venues will continue to be announced via the web Atlas Events section and the Community Meet-up page.
  • Creator Academy: Hall of Materials: the first of Sansar’s experience-led learning facilities, the Hall of Materials opened on November 14th, 2017. You can read my review here. Apparently, the audio section of the experience utilises incorrect sounds, and will be updated soon, as well as capabilities being added (e.g. as noted in my review, better Desktop mode interaction).
  • Building and Design Collaboration: the groundwork for collaborative design within Edit mode is being laid, with particular emphasis on how the capability will work with Sansar’s upcoming permissions system. A suggestion put forward by Jenn is to see if edit spaces can simply be shared – so that if someone is working on a scene, they can invited a friend in to Edit mode with them so they can chat, etc.
  • Identifying Lab Staff in Sansar: in Second Life, Linden Lab staff are easily recognised by the use of the “Linden” last name, and the use of blue in name tags, text chat, etc. A means to similarly recognise Lab staff in Sansar is being considered. This may not involve the use of the “Linden” last name, but could be something like their names showing up in blue when highlighted by the mouse / controller. It might also include the means for Lab staff to turn it off if they wish.
  • Next Product Meeting: due to the US Thanksgiving holiday, the next Sansar Product Meet-up will be on Friday, December 1st, 2017.

SL project updates 46/3: TPV Developer meeting

The Silent Mind; Inara Pey, October 2017, on Flickr The Silent Mindblog post

The following notes are taken from the TPV Developer meeting held on Friday, November 17th 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.

SL Viewer

[0:50-2:22] The Alex Ivy 64-bit RC viewer, version, has been holding up “really well” in its release cohort, although there is a start-up / benchmark crash the Lab has had difficulty reproducing, but for which they now believe they can fix in the next update, which should appear after the US Thanksgiving break (Thursday November 23rd – Sunday November 26th, 2017). If the crash is shown to be fixed, then the viewer should hopefully be in a position to move to release status in December.

[2:25-2:43] Vixox is still working on a race condition in the Voice RC viewer, version at the time of writing, and the Lab is hoping for an update on that either in parallel with or shortly after the Alex Ivy update.

[2:46-2:59] The current “Martini” Maintenance RC viewer  updated to version on Friday, November 17th.

[3:00-3:28] An update to the 360 snapshot project viewer, version at the time of writing, is in progress, which should greatly improve image quality. If possible, this update might appear ahead of the US Thanksgiving break.

Rendering Project Viewer

[5:15-5:52] A new project viewer – Project Render, version, dated November 14th, 2017, is available for Windows (32-bit and 64-bit) and Mac OS X. This viewer includes several fixes to the Rendering pipeline, and comes with a request that all issues are reported via JIRA.

The viewer is now built from the Alex Ivy (64-bit) branch (hence no Linux version), and all known issues for the Alex Ivy Viewer apply to it. It is intended to provide  / address:

  • Improvement to mesh LOD calculation (account for CTRL+0).
  • Agents that render as jelly dolls should have their attachments render at 0 LoD to prevent loading higher LoD complexity in memory thus deterring crashes -> debug setting RenderAutoMuteByteLimit has to be > default of 0 for this feature.
  • Bug: Mesh avatar deforms constantly – was due to bounding box / LOD swaps.
  • Bug: Some mesh turned invisible when camera is moved – was caused by fix for MAINT-6125.
  • Bug: Setting one avatar to “Do not render” causes all avatars to become impostors.

Viewer Development Focus

Linux Viewer

[3:32-4:52 and 15:28-15:46] Currently, the Lab is aiming to get 32-bit and 64-bit Windows builds on the current viewers, together with 64-bit only Mac builds.

Once this has been done, the Lab will try again to get a 64-bit Linux build of the viewer, with the overall goal being to change the Linux build over to a Debian package without the additional libraries, allowing TPVs to add the dependencies they require for their flavour of Linux build.  However, the Lab will be looking for help from TPVs and open-source developers in getting this done.

If help is given and the project is successful, the Lab will then maintain the Linux build, with the caveat that it will only be subject to cursory QA, and will continue to look to the Linux community for fixes.

General Focus

[10:10-14:35] In general, the Lab will be focusing more on current hardware (see resource usage tools, below) and operating systems over older / outdated hardware and operating system flavours. So for Windows, for example, while the Lab is not dropping support for 32-bit systems, the recommendation is that those who can upgrade to support Windows 64-bit (and particularly Windows 10 64-bit) should do so. If nothing else, this should substantially reduce viewer crash rates, particularly when used 64-bit versions of the viewer (e.g. fewer out-of-memory crashes).

Resource Usage tools

Note the following elements are discussed between 6:16-10:08 and then from 19:52-49:10.

VRAM and Texture Information

Chalice Yao has proposed a feature to the Firestorm team to allow users better understand the resources they are using, both through their avatar’s VRAM usage and the VRAM (triangles and vertices) for any selected object (see FIRE-21793).

Demonstration images (via FIRE-21793 / Arcane Portal) showing the proposed texture VRAM resource usage information on both a full avatar on the left and a specific attachment (Catwa head), on the right

Textures are a significant issue because of the widespread use of 1024×1024 textures on multiple faces of items at 4 MB a texture, whether needed or not (do buttons on a jacket really need 102×1024 textures?). This can lead to avatars using VRAM in the gigabyte ranges – simply because there is no incentive in place for creators to optimise their use of textures. so, offering a means by which users can see and understand their resource usage might encourage creators to start thinking in terms of optimising their use of the textures.

Overall, Oz is in favour of the idea, noting that it could be a good fit with the Lab’s own work in trying to make the render cost calculations for avatars and objects more accurate (allowing for the variances in handling information inherent within different types of graphics cards with different capabilities one to another).  In addition, the Lab has been working on an experimental viewer which radically re-organises the texture cache to make it simpler, but this has yet to work (this includes the previously mentioned idea of storing textures already decoded).

The discussion (a fair part of which is in text) also covers the upcoming Bakes on Mesh work (see my CCUG meeting notes), the benefits of supplying users with pertinent information vs. the problems of witch-hunts, providing the means for people to be better educated and to make more informed decisions, how any additional information should be displayed etc.

Hide All Objects Outside of A Parcel

BUG-5671 outlines another idea related to data handling / viewer resource usage: offering parcel owners a setting that  would effectively prevent the simulator from downloading information about objects outside of their own parcel. This would reduce simulator load, bandwidth use and mean the viewer doesn’t have to manage object data and rendering for items the parcel owner doesn’t want to see when with their parcel (although it also means their view would be reduced to looked out over “empty” land).

The feature request has been accepted by the Lab – but when or how it, or something like it, may be implemented – if it is implemented at all – has yet to be considered.

BUG-5671 another demonstration of the important difference between a JIRA being Accepted compared with being implemented. JIRAs can be Accepted for a number of reasons, but does not automatically mean it will be implemented. Reasons JIRAs might be Accepted include: it explain an issue the Lab may want to address at some point; or because it might offer a means to resolve part of a larger issue or group of issues the Lab might want to address, again at some point in the future.


Mixed with the above discussions (again in text) is a debate on RendeVolumeLODFactor settings, with some viewers (e.g. Firestorm) defaulting to higher values than the official viewer, and the impact this may (or may not have) on content creators.

Certainly, high-end LOD settings are detrimental to viewer performance, but whether enforcing a lower LOD setting would encourage content creators to optimise their designs is questionable: “recommendations” for very high LOD settings (often much higher than the defaults used by any viewer) have been a factor in content creation for a very long time, with some creators even foregoing the use of lower LOD models (so it because an “all or nothing ” approach). As such, a more effective means of preventing this might be to penalise creators who fail to provide proper medium and low LOD versions of their creations, something the Lab is considering.

This conversation (largely in text) continues on to alpha blending / masking, etc.

Continue reading “SL project updates 46/3: TPV Developer meeting”

A vision of Greenland in Second Life

Groenland Kangamiut; Inara Pey, November 2017, on Flickr Groenland Kangamiut – click any image for full size

Designed under the It All Starts With A Smile (IASWAS) banner, Groenland Kangamiut is a new region design by Kaelyn Alecto (TheNewKae). It is based on the physical world township of Kangamiut, located on a small island off the west coat of Greenland in the Davis Strait connecting Baffin Bay with the Labrador Strait.

“With its typical colourful houses, fishing harbour, ice landscapes, frosted atmosphere and the sound of the bitter wind,” Kaelyn says of the design, “We tried to be original and as realistic as possible, while keeping a small part of fantasy of course. Have fun!”

Groenland Kangamiut; Inara Pey, November 2017, on Flickr Groenland Kangamiut

The village sits nestled in the arms of an inlet, almost fjord-like in its deep cut, a single channel of water pointing the way to the open sea – presumably the Davis Strait – to the west. The shops and houses rise up the lower slopes of the inlet in brightly painted tiers, crowned by a red-painted chapel. To the north, the valley wind onwards, its floor lifting above sea-level, snow-covered slopes caught between high shoulders of rock, disappearing in the distance.

The west side of the village is split between a busy group of wharves, warehouses and shops, bordered on either side by houses built out on slits over the water on either side, their large decks suggesting they might be summer holiday homes. On the north side, these give way to the spur line of a railway overlooking the frigid waters, a locomotive just emerging from a tunnel burrowing under the high cliffs behind the village.

Groenland Kangamiut; Inara Pey, November 2017, on Flickr Groenland Kangamiut

Visitors arrive in what might be referred to as the village square – a cobbled surface in which sits a fountain. Snow swirls around the bricks of the pavement and between the painted houses on either side, as several routes of through the village offer themselves for exploration.  To the north, the cobbled pavement lead to the busy waterfront. From here, where wooden walkways and stone steps climb the hill to the next level of the village, while a board walk runs along the northern shore to the little railway station.

Closer to the fountain, steps offer a short cut up to where a brick-paved footpath winds up through the houses, eventually reaching the little church up on its high look-out point. South of the landing point, meanwhile, the pavement gives way to a wooded trail. Snow-covered and winding through frosted firs trees to where a camp site looks out over cold, blue-grey waters to a cosy house sitting along on a rocky islets. A red barn-style bridge crosses a narrow stretch of water close by, a further trail on the far bank winding up the hill in an alternate route to the church.

Groenland Kangamiut; Inara Pey, November 2017, on Flickr Groenland Kangamiut

This south path also offers one of the regions little quirks. While wolves reindeer and a polar bear  – all common enough to the northern hemisphere – can be seen among the trees and out in the snow; this side of the region also has a little group of penguins sitting on an ice flow, an emperor penguin and her young watching them from the shore. Given their far more southern origins, the presences of these penguins might seem odd, but they are in keeping with the fantasy twists found in IASWAS designs. Equally, their appearance on the southern side of the region seems to be a subtle nod and wink to their more usual domain being the southern latitudes.

What I particularly like about Groenland Kangamiut is the way the east side of the region has been blended with the region surround, rather than leaving a watery gap between region and scenery. For me, blending region and backdrop in this was adds a level of depth to a design, by making them equal partners in a scene, rather than separate entities. This really gives the feel that the village is sitting on the edge of a rugged island, and thus a natural part of a greater whole.

Groenland Kangamiut; Inara Pey, November 2017, on Flickr Groenland Kangamiut

Featured in the November 10th edition of the Destination Guide highlights,Groenland Kangamiut is a beautiful setting, and one well worth visiting.

SLurl Details

SL project updates 46/2: Content Creation User Group

A rally of (Animesh) raptors on Aditi

The following notes are taken from the Content Creation User Group meeting, held on  Thursday, November 16th, 2017 at 13:00 SLT. For the purposes of Animesh testing, the meetings have relocated to the Animesh4 region on Aditi, the beta grid – look for the seating area towards the middle of the region. 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 streamed the meeting, and his video is embedded at the end of this article – thanks to Medhue, as always, for the recording. Time stamps in the body text will open the video in a separate tab for ease of reference to the relevant parts of the text. However as these notes present the meeting in terms of topics discussed, rather than a chronological breakdown of the meeting, so some time stamps may appear to be out of sequence.

Animesh (Animated Mesh)

“I like the name ‘animated objects’ because I think it’s unambiguous, but it takes a long time to type!” – Vir Linden joking about the name “Animesh”.

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. It involves both viewer and server-side changes.

In short, an Animesh object:

  • Can be any object (generally rigged / skinned mesh) which and contains the necessary animations and controlling scripts in its own inventory  (Contents tab of the Build floater) required for it to animate itself.
  • Can be a single mesh object or a linkset of objects (link them first, then set them to Animated Mesh via the Build floater > Features).
  • Has been flagged as and Animesh object in the project viewer, and so has an avatar skeleton associated with it.
  • Can use many existing animations.

Note that the focus of this project is not currently about providing fully functional NPCs at this point in time, which is seen as a follow-on project.


Mod Keys Proposal

For background information on this, please refer to the forum posts by Piscine Mackenzie and Medhue Simoni, together with feature request BUG-139168, together with my notes from the more recent CCUG meetings.

[0:46-2:53] The proposed scripted mod key capability to allow attachments to be made to No Mo Animesh characters has now been determined to be a much more extensive piece of work than originally thought, and so will not be implemented as a part of the initial Animesh project.

However, the Lab will be tackling it as a project in its own right “some time in the future”.

Remaining Bugs / Remaining Items

[3:32-4:55] The list of remaining bugs/ items to be looked at is summarised as:

  • A couple of crash bugs in the viewer to be fixed. These are related to switching between the animated and non-animated states with an Animesh object.
  • Code optimizations need to be completed and the Animesh code in general requires some clean-up.
  • LOD rendering issues on Animesh objects needs to be fixed.
  • Animesh imposting needs to be fixed.
  • Left-clicking on rigged mesh doesn’t work well, and this applies to Animesh objects as well (right-click Touch should work), so needs to be addressed.
  • Performance analysis needs to be carried out to determine necessary / best adjustments to costs / limitations (LI, tri count, complexity).

[4:56-5:45] Baking service updates: there is a couple of bugs in the baking service Anchor Linden is currently investigating, and which need to be resolved for Animesh. One of these can cause incorrect adjustments to be made to an avatar’s height calculation when an Animesh object is attached.

Any other issues people have noted not already filed via the JIRA (see the link to the JIRA filter, above), should be filed as bug reports ASAP.

Costs and Limits

[7:30-8:25] One of the reasons limits need to be examined is that currently, is that LI calculations are based on an object’s scale, whereas the LOD is effectively based on the rigged scale, potentially allowing the cost of the objects to be gamed between the two. This is in part the reason why the Lab has opted for tri counts being a limit with Animesh. However, Vir would like to get a fix in to prevent this kind of gaming; the problem here being the potential for breaking existing content.

[8:25-9:19] Testing will hopefully allows the cost of Animesh objects to be more defined by their complexity than on a fixed land cost, which will be a much smaller component in the overall limits than currently the case 200 LI), and will likely be a “base” LI based on the impact of the avatar skeleton.

[9:39-10:14] The eventual cost might be a combination of a base land impact and a complexity multiplier, although there are issues here with rigged objects being treated as unrigged when calculating rendering costs, which needs to be addressed.

[10:21-10:52] Vir is wary of making too many changes on impact / cost calculations just for Animesh, as there is a broader project to improve complexity cost calculations in general, which is currently on hold pending the introduction of Animesh.

[41:31-43:28] tri count vs Land Impact: in line with the above, Vir is not convinced that “just letting the Land Impact” determine if an Animesh can be rezzed is viable, as has been suggested. There are sufficient issues with the current avatar complexity calculations that, when fixed, could mean that even if a tri count is discounted as a direct Animesh constraint, avatar models converted to Animesh would still be prohibitively expensive from a complexity standpoint.

[43:47-45:16] As with mesh currently, Animesh will not bypass the accounting system if made temp-on-rez.

[45:23-54:50] More discussion on limits / costs, the need for testing, and on the Lab’s approach to preferring to apply costs over limits and the ability for users to determine what they see (as with avatar complexity / Jellydolls), balanced by a desire to get people to think more in terms of optimising their content. Part of the tension with limits / costs seems to be creators are unwilling to develop content, push at the current (arbitrary limits), etc., out of concern that the effort spent building and testing could be wasted / the Lab is hoping people will build, test (and even break) things (including the viewer) so a more accurate assessment of limits can be made prior to release, with the option of making further adjustments further down the road, if necessary.

[54:53-56:11] Would it be possible to have different tri count limits for worn Animesh vs rezzed Animesh – higher for the former compared to the latter? Possibly, but tricky.

Animesh as a Build Floater Option Discussion

[19:28-40:00] A lengthy discussion on having Animesh a toggle feature in the Build floater, rather than something set on upload, and how that might discourage makers of modifiable avatars from producing “Animesh versions” because users could in theory get a set of suitable scripts and animations and attempt to use them with the versions they already have.

The discussion is lengthy, and involves numerous issues, including the extent to which users trying to convert things themselves over buying a “dedicated” Animesh creation (would scripts and animations intended to animate an elephant really work that well in a tiger, for example?); creators’ rights vs. users’ rights with mod items; the decision process behind making the Animesh option a Build floater tool (e.g. it is in keeping with the permissions system – if an item if modifiable, it should include converting it to Animesh, if appropriate; it could help speed the adoption of Animesh – creators could release kits to convert their existing products, rather than entire new products, etc). The overall consensus appears to be having the option in the Build floater is better than trying to restrict it.

Animesh Sitting

[56:28-56:58] As discussed in past meetings, Animesh bodies will not be able to sit in the same manner as an avatar (by being made a child of the object on which it is sitting). Animesh should be able to adopt a sitting animation it contains, like a ground sit, however). The latter obviously won’t give the same flexibility as the former.

Bakes on Mesh

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, and may in time lead to a reduction in the complexity of mesh avatar bodies and heads. The project is in two phases:

  • The current work to update the baking service to support 1024×1024 textures.
  • An intended follow-on project to actually support baking textures onto avatar mesh surfaces (and potentially other mesh objects as well). This has yet to fully defined in terms of implementation and when it might be slotted into SL development time frames.

This work does not include normal or specular map support, as these are not part of the existing baking service.

[11:47-12:55] Again, this is a separate project to Animesh, and neither is contingent upon the other. However, using bakes on mesh with Animesh objects will likely come after any follow-on Animesh project to the current work, as Animesh objects will require some notion of an avatar shape to work with the baking service.

[12:56-14:22] There are no plans at present to offer LSL functions or a script API for bakes on mesh, due to the complexities of the baking service. If such a capability is seen as needed, a feature request JIRA explaining why and the benefits should be submitted.

[16:35-19:12] The goal is to have the baking service work in such a way that creators can use the Appearance floater to assign the use of baked textures to object faces which correctly correspond to the different avatar elements (so for example, an upper body composite texture is correctly applied to the upper body faces on a mesh avatar). Once this has been set, users selecting the clothing layer would then see it correctly applied to their avatar in the same way as clothing layers are applied to the system avatar.

Next Meeting

The next CCUG meeting will be on Thursday, November 30th (week #48), due to week #47 being US Thanksgiving week, and the Lab taking a holiday break on Thursday, November 23rd / Friday November 24th.