SL project updates 16 18/2: TPV Developer Meeting

Osprey Ridge; Inara Pey, April 2016, on Flickr Osprey Ridge – blog post

The following notes are primarily taken from the  TPV Developer (TPVD) meeting held on Friday, May 6th, 2016. A video of the meeting is embedded at the end of this report, my thanks as always to North for supplying it, and time stamps in the text relate to this recording.

Week #18 Server Deployments – Recap

On Tuesday, May 3rd, the Main (SLS) channel received the same server maintenance package originally deployed to the three RC channels in week #17, comprising a crash fix and minor internal improvements. There was no RC deployment during the week.

Week #19 Attachment Inventory Limits

There will be a new RC deployment in week #19 (commencing Monday, May 9th). This will include new limits, I believe, on the total number of assets which can be contained on worn attachments. The exact limits aren’t clear to me. However, in-world objects cannot be rezzed if they contain more that 10K inventory individually, or 30K in the case of linksets, so I suspect similar limits will apply to attachments, and any attempt to attach objects that exceed these limits will fail. More on this next week.

SL Viewer Updates

Release Viewer

[03:40] The Maintenance RC viewer, version 4.0.4.314579, released on April 28th, was promoted to the de facto release viewer on Thursday, May 5th.

Quick Graphics Viewer

[03:50] The Quick Graphics RC viewer (currently version 4.0.4.314426, dated April 26th) is now “perilously close” to being promoted to release status, and apparently only needs to be merged with and tested against the new release viewer code.

[04:55] The next update to this viewer will refer to rainbow avatars as “Jelly Dolls”, in keeping with the new popular term for solid-colour avatars, which has been “adopted with enthusiasm” by the Lab.

[05:20] There is also a new control added to the viewer screen for making quick adjustments to the Max Avatar Complexity setting.

Project Bento

The Project Bento viewer updated to version 5.0.0.314884, also on Thursday, May 5th.

This build contains several updates related to joint offsets and meshes:

  • Joint offsets will be ignored if they define a position identical to the default position for that bone. We use a 0.1 mm tolerance to determine whether a position has changed, so to force the offset to be applied you can make an invisibly small tweak to the bone in your modeling tool.
  • Along with this, we provide some log message feedback during upload to show which joints will have active offsets.
  • Meshes can now have multiple skeleton roots – for example, you could have a model rigged to both hands without including any bone that both hands are descendants of.
  • Joint offsets are now enforced during shape editing.

Slider changes:

  • We include a fix for a long-standing bug with female torso muscles
  • The male “package” slider can now be supported in mesh models by weighting to mGroin. (note that the currently available test models do not have this weighting yet).

[04:15] The Lab believes the project is now stable enough to be “close to” moving to the Main grid.

Oculus Rift Viewer

[04:26] The Lab is continuing to work on the Oculus Rift viewer. The next release, which will remain at project status, is expected “real soon now”, but will support the latest Oculus VR SDK, etc.

64-bit Viewer Project

[07:13] The 64-bit viewer project has been temporarily suspended recently while the developers working on it were assigned to other tasks, including the ongoing QuickTime remediation project.

Upcoming Viewers

In September 2015, I wrote about the Lab’s plans for further improvements to inventory management and handling within the viewer. Part of this work involves the removal of older UDP paths / mechanisms for inventory handling are properly deprecated / removed and replaced by newer and more robust mechanisms, and that all older mechanisms which have already been replaced are properly removed.

[05:45]  This work had been on hold pending the recent HTTP work. It is now expected that an RC viewer containing these updates will be appearing shortly. Once these updates have reached release status and been fully validate through their active use, the associated UDP support for the deprecated paths and mechanisms will be removed server-side.

 Aditi and Agni Inventory Caches

As I’ve previously reported, the new Aditi inventory syncing process created local inventory caching issues (see also BUG-11651). A fix for this was proposed by the Lab, which would allow the viewer to create separate inventory caches for Agni and Aditi, with the correct cache being automatically selected depending on which grid a user logs-in to (see here for more).

This update was incorporated into the Maintenance RC, and so is now a part of the de facto release viewer, and so should also be appearing in TPVs as they adopt the 4.0.4 code base from the Lab.

The current release viewer, version 4.0.4.314579 including the new Aditi / Angi local inventory caching capability to prevent local inventory caches being incorrectly merged when logging between the main and beta grids
The current release viewer, version 4.0.4.314579 including the new Aditi / Agni local inventory caching capability to prevent local inventory caches being incorrectly merged when logging between the main and beta grids

Other Items

Double Posts in Chat

There have been reports of users experiencing double posts of their own text chat (local or IM) appearing in their viewer (although other people only see their comment displayed once. The Lab has requested that the problem be tested using the their own viewer, and a JIRA raised stating the precise circumstances when the issues occurred, as soon as possible after it has occurred, together with all relevant data – logs, viewer About information, etc., and further occurrences are similarly logged against that JIRA.

TLS 1.2

As per a blog post from the Lab, which I also reported here, users are being advised to update (if necessary) their web browser and their SL viewer to a version that supports TLS 1.2 by June 15th, 2016. After that date, any web browser or viewer that does not should TLS 1.2 will no longer be able to access Second Life cashier services to send, receive, or exchange L$.

SL project updates 16 18/1: server, viewer

Airship Pirates Town; Inara Pey, May 2016, on Flickr Airship Pirates Townblog post

Server Deployments Week 18

On Tuesday, May 3rd, the Main (SLS) channel received the same server maintenance package originally deployed to the three RC channels in week #17, comprising a crash fix and minor internal improvements.

There will be no deployment to the RC channels on Wednesday, May 4th, and no scheduled restart of simulators on that channel.

SL Viewer Updates

The two release candidate viewers currently in the release channel were updated at the end of week #17:

  • The current Maintenance release candidate updated to version 4.0.4.314579, dated April 28th
  • The Quick Graphics release candidate updated to version 4.0.4.314426, dated April 26th.

This means there has been no promotion of an RC to de facto release status, while the project viewers have not been updated, leaving the complete list of remaining official viewers as follows:

  • Current Release version: 4.0.3.312816, dated March 23rd and promoted on April 1st,  formerly the HTTP / Vixox RC viewer
  • Project viewers:
    • Project Bento (avatar skeleton extensions), version 5.0.0.313876, dated April 15th
    • Oculus Rift project viewer, version 3.7.18.295296, dated October 13, 2014
  • 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.

Avatar Complexity

There are still some issues yet to be resolved with Avatar Complexity which is why this viewer is currently not progressing towards a release status at present. One of these is avatars which should render as solid colours (or “Jelly Dolls” as the popular term for them is now) or imposters are invisible.

This has been a long-standing issue (see BUG-10330), which has proven hard to reliably reproduce, and has had a number of theories attached to it. Recent testing has suggested one of the causes is a possible conflict between the viewer trying to render avatars as Jelly Dolls whilst trying also to account for any alpha mask applied to the avatar with all the layer check boxes ticked.  This is possibly because ticking the alpha mask check boxes result in a “special” UUID being applied. Currently, the precise cause of the issue has yet to reach a consensus opinion, and investigations and tests continue.

 

Project Bento User Group update 13 with audio

Project Bento – extending the SL avatar skeleton
Project Bento – extending the SL avatar skeleton

The following notes and audio were taken from the weekly Bento User Group meeting, held on Thursday, April 28th at 13:00 SLT on Aditi. For details on each meeting and the location, please refer to the Bento User Group wiki page.

Note that this update is not intended to offer a full transcript of the meeting, nor does it present the discussion points in chronological order. Rather, it represents the core points of discussion to Project Bento, grouped together by subject matter were relevant / possible.

Issue Fixes

Partial Joint Offsets

As noted in my last update, one issue facing Bento is in how best to handle defining partial joint offsets – a mesh that specifies the override positions for some of the joints but leaves  other joints alone, which would allow different meshes to be mixed and matched to create an avatar look. Currently, the viewer doesn’t handle  multiple root bones in a mesh with partial rigging correctly, and to help correct this, Vir Linden has published a proposal for moving forward. Essentially, this would filter out any joints which have a position unchanged from their expected default, even if the mesh claims to use an offset, with only a very small adjustment (0.1mm or greater) is required to have a joint treated as having its own offset.

Offset and Slider Conflicts

Another issue which has been discussed recently is that joints offsets (notably translation offsets) can conflict with adjustments made using the appearance sliders, resulting in adjustments made using the sliders “snapping back” to their original location on leaving edit shape or following a relog or after removing / rewearing the avatar mesh.

An adjustment has now been made so that where an offset has been set for a joint, adjustments made using the sliders which only affect the offset will be ignored, only changes to the scale of a joint (length, height) made using the sliders will work. It is thought that this fix will also address the likes of BUG-11854.

Work in progress: Aki Shichiroji demonstrates a wearable wyvern utilising Bento bones for animation.
Work in progress: Aki Shichiroji demonstrates a wearable wyvern utilising Bento bones for animation.

It has also been noted that BUG-10991, “[Bento] Mesh rigged to the new joints either partly disappears, collapses or melts when viewing that avatar as an imposter” has not been fixed with the latest version of the project viewer. It will hopefully be one of the issues addressed with the next update.

Next Viewer Update

The above fixes, coupled with other work which has been carried out are regarded as being sufficient to kick-off another update to the project viewer, although there is a further piece of work Vir hopes to include. If all goes according to plan, this should see a new version of the Bento project viewer appearing in week #18 (week commencing Monday, May 2nd).

Animation File Size Limit

Currently, there is a file size limit of 120 Kb on animation files enforced by the back-end servers. With the increased number of bone available for animation. As it is now possible to animate a far large number of joints, some creators have started to find this limit a problem, and a request has been put in for it to be increased (see BUG-11836).

While there is potential for this to be done, it is currently unclear how much the file size limit should be increased. There are also other considerations to take into account, such as the intention for animation assets to be moved to the CDN for better delivery.

If there are specific examples of animation with large file sizes which could be attached to the JIRA as examples, they would be welcomed by the Lab. It has also been suggested that the Lab establish a best practices guide for animations files on the wiki.

This lead to a brief discussion on interpolation and the differences between .BVH and .ANIM animations, with Vir providing background information on how each are respectively handled.

Sliders for Remaining Bento Bones

While many Bento bones  – notably those of the face / head – have been tied-into the existing appearance sliders, there are still those which do not have slider support because they would require the development of dedicated sliders. this has been considered outside the scope of the initial Bento work, and it is far from certain it will be taken up in the near-term future, if at all.

Part of this comes down to the added complexity further sliders would thrust into the viewer UI, and also – as Vir explains – because the use of many of the Bento bones is intended to be arbitrary, therefore providing sliders to adjust them may not suit all of the uses to which they might be put, and cause further confusion / unpredictable results when used.

Continue reading “Project Bento User Group update 13 with audio”

SL project updates 16 17/1: server updates

Devil's Point; Inara Pey, April 2016, on Flickr Devil’s Pointblog post

Light news again for the start of the week.

SL Server Deployments

  • There was no Main (SLS) channel deployment on Tuesday, April 26th.
  • One Wednesday, April 27th, all three RC channels should receive the same server maintenance package, comprising a server crash fix and some minor internal improvements

For details of any updates / changes, please refer to the server deployment thread.

SL Viewer

No promotion or updates so far leaving the viewers as follows:

 

SL project updates 16 16/2: TPV Developer meeting

The golden Delta, Fantasy Faire 2016
The Golden Delta, Fantasy Faire 2016

The following notes are primarily taken from the  TPV Developer (TPVD) meeting held on Friday, April 22nd, 2016. A video of the meeting is embedded at the end of this report, my thanks as always to North for supplying it, and time stamps in the text relate to this recording.

Server Deployments – Recap

There are no scheduled deployments for week #16. The next deployment should be to the RC channels in week #17 (week commencing Monday, April 25th). This is liable to include at least one fix to help prevent simulator crashes.

SL Viewer

[0:40] There have been no further updates since my part #1 report.

  • The Maintenance RC viewer is progressing well, with no backwards compatibility issues
  • The Quick Graphics viewer now has “almost all” of the pending changes made to it. with Oz noting:
    • There is still a shiny rendering issues with muted avatars which has yet to be resolved
    • The account properties for materials have yet to be added. Testing for this in terms of the cost multiplier, etc., is in progress
    • However, the viewer could ship with these “as is” and then have them incorporated later
    • A further RC build is in progress and is expected to be made available in week #17
    • The favoured unofficial term for muted avatars at the Lab at the moment is “rainbow people”
    • It is hoped that this viewer will go to release status in “significantly less” than a month
  • A further update to the Bento project viewer is anticipated ahead of the project moving to the main grid, after which the viewer will progress through project to release candidate to de facto release over time
    • Work continues to try to resolve or improve some pre-existing issues with animation handling, etc., all of which may or may not be completed as a part of the Bento project
    • There is no definitive time frame as to when the project will move to the main grid, although the aim remains for this to occur in Q2 2016
    • See my weekly Bento updates for more information
  • The Oculus Rift viewer is reaching a point where it “almost” works
    • It now works with the latest SDK
    • Very precise graphics settings are required, and it is likely that it will be updated and issued with a notice it will only work decently with these graphics settings
    • There are still some UI issues to be dealt with
    • The Lab will be watching usage stats for this viewer closely once available
  • [14:22]  64-bit viewers: The Lab has been testing 32-bit builds against their updated libraries, which are now in a position to support 64-bit builds
  • [15:22] A contributed fix for issues around modifier keys on the Mac viewer has passed LL’s QA, and should be in the next Maintenance RC viewer to be released

Apple QuickTime

[10:52] As I recently noted, Apple have deprecated support for QuickTime on Windows, leaving some critical vulnerabilities unpatched, leading to advisories that windows users uninstall the package from their systems.

As the QuickTime SDK has tended to be a part of the viewer build process, there has been an ongoing discussion within the opensource-dev mailing list as to how to replace it. Currently, the Lab is testing what happens if the QuickTime plug-ins are completely removed from the viewer, and trying to handle media which used to be handled by the plug-ins directly by CEF. However, it is unlikely that a version of the viewer without QuickTime will be appearing in the immediate future.

Teleport Web Widget

[13:25] As noted in my last TPD update, there is a new web widget to handle SLurls and map URLs into Second Life from the web. The should be making an appearance soon via the wiki, and in things like the Destination Guide. There will hopefully be a blog post outlining the widget and how to use it appearing as well in due course.

The SL Viewer and RLV

[27:22] The RLV (restrained love viewer) extensions for the viewer have a mixed reputation. Initially conceived to help make certain adult activities more life-like, they have also been shown to have a range of much broader applications (e.g. enabling  “portal” like teleporting of avatars, controlling camera movement, etc).

Some of these types of capabilities have been mirrored through the introduction of Experiences. While the Lab has no intention of adopting RLV or RLV/a “as is” or in a manner that’s compatible with the existing RLV API, they are considering possibly folding some more RLV-style functionality into the Experience set of capabilities as a longer-term project.

 

Project Bento User Group update 12 with audio

Project Bento – extending the SL avatar skeleton
Project Bento – extending the SL avatar skeleton

The following notes and audio were taken from the weekly Bento User Group meeting, held on Thursday, April 21st at 13:00 SLT on Aditi. For details on each meeting and the location, please refer to the Bento User Group wiki page.

Note that this update is not intended to offer a full transcript of the meeting, nor does it present the discussion points in chronological order. Rather, it represents the core points of discussion to Project Bento, grouped together by subject matter were relevant / possible.

Bento Promotion

Troy Linden, the product team lead for Project Bento opened the meeting by offering thanks to all those who have participated in the project. The Lab is now preparing to deploy the project to the main grid, most likely some time in Q2 2016. In support of this, they want to hear from content creators who would be willing to submit avatars for use in Bento promotional videos and supporting documentation. Those interested in helping the Lab by providing content are asked to content Troy directly, indicating what they are producing, so a good cross-section of content can be demonstrated.

Skeleton Status and Viewer

From the TPV Developer Meeting, Friday April 22nd

It is believed the skeleton in now frozen, and the Lab would prefer not to add further bones / amend the existing bones. There will be a period of test (around two weeks) to ensure there are no further significant changes which must be made before the project progress to the main grid. Work is continuing on trying to resolve or at least improve issues which pre-date Bento but what have an impact on it (e.g. the various default animation issues discussed in these reports), although these are not considered blockers to the project moving forward, so they may or may not be all resolved over time.

Joint Offsets and Overrides

Partial Offsets

Note: see the forum thread discussion commencing here, and the three messages immediately following it, and further follow-ups  here and here (plus the two messages immediately following it) for additional background.

One problem people have encountered is when defining partial joint offsets – that is, having a mesh that specifies the override positions for some of the joints but leaves  other joints alone. This is seen as particularly useful in allowing different meshes to be mixed and matched to create an avatar look. However, there appear to be issues in how both the viewer and – possibly – Avastar are handling things.

The issues within the viewer have been identified as the viewer failing to handle  multiple root bones in a mesh with partial rigging correctly. For example, if a creator is trying to override the shape of both hands in a mesh without overriding anything else (and so no common root such as the pelvis is defined), the viewer currently applies the defined offsets to one hand, but not the other due to them having separate root bones. It is hoped a fix for this will be in the next project viewer update.

Flagging joint Overrides

Another issue is that currently, there is no means to flag whether or not a joint has an override on an individual basis. The current assumption is that all the joints that are skinned to either also have an offset defined, or none of them do.

The problem is how to let people specify individual overrides without changing the mesh asset structure as it is currently defined, as it would really be outside the scope for Bento (an example of this would be providing a custom attribute to specify offsets)

Suggested options are:

  • Treat certain values in the mesh asset as indicating there is no offset. There are issues associated with this. For example, if 0,0,0 were to be used, then joints would not have any offsets relative to the pelvis, leaving them all in that position, squishing the model
  • Use the default location for a joint offset as a kind of “magic” value, indicating that nothing is to be changed.

The latter is seen as preferable, although it is acknowledged it might not suit all cases or might cause more issues if using the default positions proves complex. Vir has therefore invited further discussion on the matter through the forum thread.

One other suggestion was put forward: using a true / false boolean to define the state of offsets on a joint by joint basis. However, this would again mean changes to the mesh asset structure and, if included in the mesh uploader as suggested in the discussion, a complex and potentially confusing update to the viewer UI.

Facial Sliders: Animation Translation vs. Slider Offset Conflicts

As noted in my update #11, there are concerns about the potential for animations which reposition the facial bones conflicting with the use of facial sliders to adjust the position of the same bones, particularly when using bone translations in animations. This could potentially make it difficult to make portable facial animations, as they can end up conflicting with facial bone positions set by the sliders.

In short:

  • When using rotations in an animation, the rotation will generally take its baseline from whatever offset is selected by adjusting the associated slider. So changing the size / position of a facial element with the sliders shouldn’t drastically impact the appearance when the animations are running
  • When using translations, however, their offset is taken as an absolute. This means that if the associated appearance slider only uses an offset to define the size of a bone – such as with the new ear-tip bones – changes made using the slider will be instantly overridden by the animation as soon as the appearance editor is closed (so if an animal’s ears are made larger using the sliders, then will instantly “snap back” to the size defined by the animation translation)
  • The problem should be limited to the sliders which only use offsets rather than scaling to achieve results, and these are thought to be a minority. However, further discussions will be had to try to determine how the issues might be remedied
  • Krystal Silverweb has offered some examples of issues on the forum thread Which continues through to page 58, at the time of writing), and Gaia Clary has added some further notes concerning the translation / rotation of joints and the use of the appearance sliders to the Avatar documentation.  See also discussions within the thread under the heading “Facial animations and appearance sliders compatibility….”

Vir is considering starting a best practices document on the use of animations and sliders, and is hoping that further testing can be carried out to see what works best, where limitations reside, etc., and that people will help expand this to provide practical help and support to others. This will likely be linked to the Good Building Practices for ease of reference.

Initial discussion on sliders and issues

Post-meeting discussion on sliders / offsets and animation bone rotations / translations between Medhue, Cathy and Elizabeth

Other Points of Discussion

Linking Bones to Create Snakes

Medhue Simoni referenced his observations in trying to link bones together to produce avatars such as snakes, where a large number of bones have to be linked to effectively produce a spine. The expanded into a broad discussion on the use of the “hind limb” bones, and the use of custom skeletons within 3D tools for the purposes of animating and constraining the SL skeleton bones.

Bones and Rigging

One problem with the volume of bones the skeleton is what to rig and when in creating avatar models. Following the core meeting a brief discussion was held with further explanations given on:

  • teeth bones: designed to ensure the teeth in an avatar accurately follow the movement / position of the lips; if the teeth are rigged to the lips, misalignment /warping can occur
  • Chin bone: to allow for easier adjustments to the head.

This also covered some of the thinking behind the linking of the facial sliders to the Bento bones.