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.


Fantasy Faire 2016: enjoy A Midsummer Night’s Dream

Ohterwolrd - Home to Litfest at Fantasy Faire
Otherworld – Home to Litfest at Fantasy Faire

To mark the 400th anniversary of the passing of William Shakespeare, Fantasy Faire is staging a special production of A Midsummer Night’s Dream, one of the bard’s best-loved plays.

Featuring the Fairelands Players, the play we be performed on the Litfest region, Otherworld, with live simu-broadcasts on Fantasy Faire Radio, and Radio Riel, and which will be livestreamed by Aview TV.

You can read about the cast and programme in full here.

Well-loved the play may well be, but not everyone is familiar with Shakespeare, so, what’s it all about?

In short: it’s a tale of love, magic, misunderstandings, complete with a hint of bestiality (all in the best possible taste 🙂 ), and a cast of thousands. OK, so maybe not thousands, but rather a lot, and keeping track of them can be a bit of a job,. So in summary, there’s:

The four Athenian lovers: Hermia, Helena, Lysander and Demetrius. Hermia and Lysander are in love, but Hermia’s father want her to marry Demetrius. Helena is Hermia’s best friend, and loves Demetrius, who only has eyes for Hermia. Got that?

The Fairies: Queen Titania, King Oberon, and his sidekick, Puck (there are others, but I’m taking the KISS approach here 🙂 ). Oberon and Titania are having a custody dispute over a human child. She wants to raise the boy, he wants the boy as a servant.

The Mechanicals (a group of local yokels): Peter Quince, Francis Flute, Robin Starveling, tom Snout, Snug, and the obnoxious Nick bottom. These lads are preparing to stage a play to mark the wedding of Theseus, the Duke of Athens to Hippolyta, Queen of the Amazons.

The court: the aforementioned Theseus, Hippolyta, assorted courtiers and Egeus, Hermia’s dad, who has determined she will marry Demetrius or face death, and has sought Theseus to see if he had persuade Hermia to do her father’s bidding.

The players during final rehearsals
The players during final rehearsals

And so to the plot.

Refusing to heed her father’s orders, Hermia runs away with Lysander and they hide in the nearby woods. Demetrius sets off in pursuit, Helena in tow.

Meanwhile… in the woods, the yokels start their rehearsals while Oberon a fit of pettiness, tells Puck to slip Titania a magic potion as she sleeps. This will make her fall in love with the first thing she sees on waking up, thus forgetting the human boy, whom Oberon can claim for his own. This Puck does.

Job done, Puck reports back to Oberon and is instructed to use the potion on Demetrius as well, so he’ll fall in love with Helena. Sadly, Puck has no idea what Demetrius looks like, and ends up giving the potion to Lysander, who falls in love with Helena. Trying to correct things, Oberon gives the potion to Demetrius, arranging for him to see Helena, and so fall for her as well.

So, suddenly Hermia is bereft of lovers and blames Helena, and Helena has two suitors when she desires only one, and determines both are mocking her. Meanwhile, both men, besotted with Helena, determine to settle things by the sword.

Oberon, somewhat annoyed by Puck’s mistake with Demetrius, orders him to keep the two men apart all through the night by leading them each a merry dance through the woods, impersonating Lysander to Demetrius and Demetrius to Lysander.

Despite having his hands full, when he chances on the company of players and witnesses Bottom being an ass, Puck cannot resist giving him a donkey’s head, leaving him shunned by his mates, so he wanders around the woods and happens upon the enchanted Titania, who chooses that moment to wake up, thus falling in love with him.


Having nabbed the boy, Oberon opts to put things to rights. Bottom’s natural head is restored, the spell is lifted from Titania, the Athenian couples are correctly united (Lysander and Hermia, Helena and Demetrius), and there’s a jolly triple wedding with Theseus and Hippolyta. Which all just leaves Puck to deliver one of Shakespeare’s famous monologues:

If we shadows have offended,
Think but this, and all is mended,
That you have but slumber’d here
While these visions did appear.
And this weak and idle theme,
No more yielding but a dream,
Gentles, do not reprehend:
if you pardon, we will mend:
And, as I am an honest Puck,
If we have unearned luck
Now to ‘scape the serpent’s tongue,
We will make amends ere long;
Else the Puck a liar call;
So, good night unto you all.
Give me your hands, if we be friends,
And Robin shall restore amends.

So… with that said… all that’s left is to enjoy the play.

Seats at Otherworld are liable to fill quickly, so don’t forget you can watch via the liverstream or – if you computer will allow – As you will be able to hear the audio on the Fantasy Faire Radio stream, you can actually watch the performance by camming in from Twilight Illusion (please do not use Echtra for this, as there will a role-play in progress)..

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.