Behind the scenes with Bento in Second Life

Bento: extending the avatar skeleton
Bento: extending the avatar skeleton

Note: this is a compressed version of an article which first appeared in Kultivate Magazine’s January 2017 issue, and which here includes some personal feedback on being peripherally involved in the project.

There can now be few – even among those having only joined Second Life in the last few months – who cannot be aware of project Bento, the work to significantly enhance the Second Life avatar skeleton to better support mesh avatar models, how they are animated and how they might be customised. I was able to observe Bento almost throughout its lifespan. As such, I thought more of a look inside the project might be of interest.

Bento’s heart comes in the form of one person: Vir Linden. Despite the avatar skeleton being one of the most fundamental parts of Second Life which could if interfered with, cause all sorts of issues, Vir was convinced things could be done to make the lot of mesh avatar creators and animators much easier, and without putting additional stress on either the simulator or the viewer. So in early 2015, he started looking at what might be achievable.

Vir Linden, Senior Software Engineer at Linden Lab, and technical project lead for Bento
Vir Linden, Senior Software Engineer at Linden Lab, and technical project lead for Bento

By roughly April 2015 he felt he had enough information to put together a presentation he could put before senior staff at the Lab. Despite the ambitious nature of the project, potentially adding (at that time) 106 new bones to the avatar, the response was enthusiastic and positive. Troy Linden joined Vir from the Product Team, and Bento was born.

Initially, the work was in-house, involving Lab staff and the Moles. However, as the potential  for the project grew, it quickly became apparent that wider expertise would be needed to both give input to the project and help steer the development work. And so it was that a core Bento User Group came together, comprising Lab staff with expertise with the viewer, with the server, and – most significantly – content creators noted for their expertise in developing mesh avatars and avatar accessories (human and non-human), and the people behind the most popular tools for avatar creation and animation: Gaia Clary and Matrice Laville (Avastar) and Cathy Foil (Mayastar).

Like, Vir, Cathy, Gaia and Matrice deserve special recognition for their work on Bento. Not only did they embrace the project and work to update their products to support Bento, they also took on a lot of the grunt work involved in updating essential code used by the viewer to make Bento happen – and they were enthusiastic about doing so. If you make use of a Bento head and are adjusting things using the sliders, offer a word of thanks to the three of them: they’re the people who carefully went through the avatar files in the viewer to get as many of the sliders as possible working with the new facial bones for you to be able to do so.

Vir linden (foreground) and Matrice Laville at a Bento project meeting
Vir Linden (foreground) and Matrice Laville (in the top hat, left) at one of the closed user group Bento project meetings (note the fellow in the top hat to the right of the picture is Rider Linden)

Bento meetings initially took place at a small desert island on Agni, the Main grid. This sat on its own channel to ensure the necessary tweaks to the simulator end of things could be made to try out ideas and options and generally lay the foundations of the project. This work progressed over a period of just over six months until there was a good level of confidence that the project could be taken to the next stage.

This involved moving things to Aditi, the beta grid, and opening things to the public at large. The use of Aditi meant that more extensive testing of simulator and viewer changes could take place, more space could easily be made available for people to experiment, and more people in general could get involved. In time, these meetings would eventually move back to the main grid. It also marked the start of my ability to publicly report Bento progress on an almost weekly basis.

Bento enables much more flexibility when creating and animating human and non-human mesh avatars
Bento enables much more flexibility when creating and animating human and non-human mesh avatars

At the start of the public phase of Bento, the skeleton had stabilised with some 92 additional bones – 60 of which were evenly split between hands and head. However, as the work progressed, this number tended to vary for a time as the need for further bones was identified while some of the new bones were found to be redundant and could be removed. As the same time, additional use cases for Bento were proposed, with every effort being made to incorporate as many as practicable. There were even some fundamental shifts made in how Second Life functions so that more could be achieved through Bento.

An example of this lies with bone translations and rotations. In essence the SL animation system had always worked on the assumption that sliders only affect translation and scale whilst animations only affect rotation, allowing both to work cooperatively.As the animation system was not necessarily seen as an intrinsic part of Bento, little thought was initially given to changing it. However, during the public beta phase of the project, a strong case was made for allowing both translation and rotation through animations – and as a result, the necessary updates were made to the animation system to support this without potential conflicts occurring.

The Bento skeleton can also be used to create ridable avatar extensions, presents the potential for clothing such as gowns and cloaks to move more naturally, and for mesh hair to possibly be animated
The Bento skeleton can also be used to create rideable avatar extensions, presents the potential for clothing such as gowns and cloaks to move more naturally, and for mesh hair to possibly be animated

Bento also provided plenty of illustrations of the way in which things are so closely interwoven in the viewer can make issue resolution a little more complicated than it might initially appear. For example, it was discovered that quadruped avatars using the new bones frequently sank into the ground up to their ankles / hocks when seen by other users. The issue was traced back to how the viewer calculates the avatar’s position relative to the ground, and how frequently this calculation was updated.

The easiest solution appeared to be to allow the height offset calculation run all the time. However, this immediately introduced another problem: some avatars would suddenly appear to be bouncing up-and-down on the spot when they should have been doing something more natural, such as gently flexing their knees up-and-down whilst standing, (see below).

Before
Before the update: Aki’s wyvern flexes its legs to move gently up-and-down, which is the expected behaviour

aki-2
After the update: as an animation is acting on some of the bones used in calculating the wyvern’s position relative to the ground, its impact is added to the avatar’s overall position calculation, causing the entire avatar to move up and down as the height position is constantly recalculated

The problem turned out to be that because the height offset calculation was running constantly, any animated movement of any one of the bones used by the calculation (it uses a number running from the skeleton’s left foot to the top of its head), the calculation would simply incorporate that moment into the overall height calculation, essentially overriding the animation, and causing the viewer to repeatedly move the avatar up-and-down as its height seemingly changed with each calculation. Thus, what started as a relative straightforward issue and solution turned into a convoluted series of investigations.

Issues like this, together with the Lab’s desire to try to incorporate as may ideas and suggestions as was reasonably possible from content creators engaging in the project, is why Bento took so look to gestate. It was a constant and careful balancing act to try to incorporate as much as possible, testing and retesting against breakage / unintended outcomes, tweaking and re-tweaking the viewer. And of course, the more things were tweaked and improved, so at times would come the need to re-visit other aspects of the project and make further changes, such as the aforementioned work in hooking up the Bento bones to the appearance sliders.

Medhue Simoni takes the weight off his elephant’s feet at a public Bento User Group meeting on the Main grid
Medhue Simoni takes the weight off his elephant’s feet at a public Bento User Group meeting on the Main grid

However, things eventually reached a point where the current round of skeleton work could be regarded as complete, and the focus of the work narrow to fixing bugs and tidying things up. In turn, this allowed the project progress to a point where it could be declared “live” on December 5th, 2016, with the promotion of the Bento code to viewer release status. Since then, almost all of the currently maintained viewers have released versions offering Bento support, allowing almost everyone to experience Bento howsoever they please. But this is not necessarily the end of work on the SL avatar.

A number of ideas were put forward during the user group meetings which had to be placed outside the scope of the Bento project. They have, however, been accepted by the Lab as Feature Requests. This means that as ongoing work on Second Life and the viewer is sorted and prioritised, they may yet come to pass. This doesn’t necessarily mean there will be an immediate “Bento Phase 2” project, but the Lab is very interested in seeing what might form something of a follow-on project down the road.

With Bento supplying some 30 additional nones for the head/face and a similar number for hands, mesh heads can be better customised / manipulated than ever before
With Bento supplying some 30 additional bones for the head/face and a similar number for hands, mesh heads can be better customised / manipulated than ever before. Credit: Vista Animiations

While Bento is not the first time the Lab has engaged with SL users to bring about new capabilities within Second Life, it has perhaps been the most in-depth in terms of the overall scope of the work and the significant amount of input and effort content creators put into the project. This is something the Lab are the first to acknowledge, together with a desire to see similar types of project proceed along the lines taken by Bento in the future.

For now, all that really remains is seeing how Bento is adopted by Second Life users in 2017 – and also seeing what else might come our way as the year progresses. For me, Bento has been an educational experience, one I’ve thoroughly enjoyed. My thanks to the Lab for the chance to side on the sidelines from the early days and observe the evolution of the project.

3 thoughts on “Behind the scenes with Bento in Second Life

  1. Unfortunately, Niramyth never went this far with Aesthetic Body. He released a Bento head that can be customized but no animations/emotions UI and cancelled support in favor of future product made for Bento.

    Like

    1. That is one of the aspects with Bento that will need time to sort itself out: how far creators can / will go in adopting it (where it is relevant to them) and how ongoing support for “early” products continues in the wake of creators becoming more au fait with potential and pitfalls within Bento, and develop more capable products than they may have previously been developing / released in some form.

      Like

Comments are closed.