Project Bento User Group update 1 with audio

Project Bento extends the avatar skeleton, adding a significant set of bones (e.g. 30 for the face, 30 for the hands (both of which can be seen inaction in the image above of an avatar by Matrice Laville), plus bones for wings, tails, additional limbs and ears / antennae
Project Bento extends the avatar skeleton, adding a significant set of bones, notably providing facial expressions, finger movement, and better support for wings, tails, additional limbs, etc. (model by Matrice Laville)

Useful Links

The first public user group meeting for Project Bento took place on Thursday, January 7th 2016, marking the start of what will be a regular event, although the exact frequency, particularly in terms of day and time, may vary, at least initially.

The purpose of the meeting is to provide an open forum for more direct and real-time conversations between the Lab and content creators about Project Bento than can perhaps be achieved through forum posts, etc. This, and the reports which follow from it are intended to provide a synthesis of these meetings, together with relevant audio of discussions and feedback, where appropriate. My apologies for the quality of the audio in places; these was partially the result of recording over voice and also due to the audio strength dropping out on me quite frequently.

People arrive for the first public Bento user group meeting on Aditi
People arrive for the first public Bento user group meeting on Aditi

Translation vs. Rotation

As I’ve previously reported, there has been an ongoing discussion about providing bone translation rather than just rotation in order to better handle facial expressions (see BUG-1090, “[Bento] A formal method of bone-translating animations is vital for the creation of proper facial expressions”), with the initial disallowing of translations within Bento (where they had previously been possible by means of a workaround) being a particular point of contention.  Medhue Simoni was one of those particularly concerned at the lack of available translation capabilities, and as I noted in my coverage of the 100th Drax Files podcast, he has produced a fairly comprehensive video explaining the issue.

Given the amount of conversation that has been generated, it should not  be that surprising to learn that this was the first item up for discussion in the meeting. In particular, Vir announced that the Lab has revised its thinking on the matter pointing to a Bento forum posted providing more of the Lab’s original concerns. So with this change, animations using translations can now be uploaded to most regions on Aditi.

Vir on the rethink concerning allowing bone translations

So does this mean translations will be allowed going forward? Vir was cautious in his reply, noting that nothing about Bento will be finalised until such time as it goes to the main grid, so there is no definitive decision on the matter at present. However, based on the way things are going, it would seem likely that translations will be enabled and there is nothing the Lab currently has planned which might cause them to be disallowed. However, Vir did warn that were this to be the case, there may be bugs / limitations in how they work.

Vir on whether or not translations will be allowed going forward

Stretching and Scaling Bones

The current mechanism for stretching / scaling bones is via the shape slider, and Vir indicated that it is not likely that the Lab will be moving to support scaling in animations as a part of this phase of Bento, although they might revisit doing so at some point in the future (without any guarantee they would).

As a part of the explanation for why this is the case, Oz indicated that the Lab’s belief in approaching Bento was that for most non-human avatars and shapes, their expectation was that creators would do the basic repositioning of joints as a part of the mesh prior to upload, and then adjust them as needed, and so the need for translation  would be marginalised.

However, as several of those present at the meeting pointed out, effectively “baking” positions into a mesh in this manner prior to upload is itself limiting, and translations can help handle odd glithes in the avatar shape which can occur. Given this, and  the shift in stance on translation mentioned above, Oz indicated he’s very interested to hear back from people on what might be considered “best practice” for handling bone repositioning, scaling, stretching, etc.

Vir and Oz on scaling and stretching bones and the Lab’s initial approach to Bento

Avatar Deformation and Resetting

One of the things the Lab is trying to achieve through Bento is a means of more reliably providing a mechanism by which avatars suffering from deformations as a result of rigged meshes, complex shapes, etc., can be reliably restored.

One of the things the Lab would like to do is offer a consistent means of resetting avatars deformed by things like multiple joint repositions to a "default" state which includes adjustment to bones made via mesh and attachments
One of the things the Lab would like to do is offer a consistent means of resetting avatars deformed by things like multiple joint repositions to a “default” state which includes adjustment to bones made via mesh and attachments

As Vir noted in the meeting, the Lab has been working on trying to make mesh positions behave better, but there is still a lot going on under the hood, such as changes made by sliders or attachments or animations, or a combination thereof,, the initial values defined by the skeleton, etc.,  which can influence the overall shape / appearance in an unpredictable order which can leave someone in a difficult to resolve state.

In particular, and as stated by Oz, the Lab would like to be able to offer the capability that if a user experiences deformations as a result of running animations, they can be reliably reset to a default position that includes and joint position movements implied by any mesh attachments worn at the time the issue occurred (with the exception of those implied by animations).

To this end, he and Vir urged people to file bug reports on any issues of deformation they encounter when using the Bento project viewer (as well as any other issues they encounter), even if the issue has been previously encountered prior to Bento but has remained unresolved, and to provide specific examples of the problem with related models, etc., so that the Lab can use the project to attempt to investigate and resolve as many issues of this kind as they can. The Lab cannot promise that everything will be fixed, but by the same standard, it shouldn’t be assumed that just because something hasn’t been addressed thus far, effort won’t be put into trying to see if it can be resolved.

Vir and Oz on bug resolutions and seeking a means to consistently reset deformed avatars

Alternative  / Additional Bones

Another topic of discussion on the forum, and raised at the meeting was that of alternative and / or additional bones which might be added to Bento. Gaia Clary in particular offered up some suggestions. With that post, she includes a video demonstrating an advanced Face Rig for the Bento skeleton, aimed at speeding-up the creation of facial expression animations.

The topic of alternative / additional bones was also the second major topic for discussion at the user group meeting, with Vir noting:

This is a little different case to the translations case in that we don’t really want to throw it open so that it’s the case that everywhere all possible skeletons work, because it’s a fairly confusing experience to do that kind of thing. You can’t really see … other people can’t see your content unless they’re running the with exact same munged-up version of the viewer. You’ve got to in some edit the various XML files that define the skeleton and they you’ve got to share those. So we’re not really set-up to make that a seamless experience, and it’s not the typical use case we’re most interested in supporting.

However, he went on to say that the Lab does want to make it possible for people who do have alternative bone proposals to be able to test them out. This is likely to be done via one or two special test regions on Aditi, where creators will be able to upload content that reference whatever joints  they care to concoct. But, the warning is that it will be down to creators to manage the process of munging the skeleton files and tracking which files match which content, with the risk that anything that’s mismatched will generate content that doesn’t display correctly or is otherwise confusing.

The Lab will advise those in the Bento group when the regions are available and how they are flagged. In the meantime, Vir has also opened a JIRA report – BUG-11132 – specifically for recording requests for additional bones.

Vir on alternative bones and providing a means to test them

To this, Oz added that the Lab will look at all of the proposals for changes to the skeleton, including additional bones and modifications, however, he did warn that there are a few things people are requesting which may be difficult to do when considering back compatibility, such as with additional neck bones. However, the Lab is open to suggestions and ideas, although he feel it is important that examples are given within Second Life, rather than via other modelling tools / platforms – – hence the forthcoming additional test regions.

Rigging and Animating Joints

A question was raised concerning the total number of rigged / animated joints which could be used within a mesh. Vir responded that in terms of rigging, the upper limit per uploaded mesh is 110. This is due to individual meshes running in their own context, with a cap on the total number of transformations which can be defined within that context for each mesh before issues might start to occur.  However, in terms of a complete model, there is effectively no upper limit, so long as the individual .DAE files comprising the model do not themselves exceed the 110 limit; although Vir did warn that the more joints a model uses, the  greater the potential for it to have an impact on other people’s GPUs.

As a side note, the above is actually how the “classic” Second Life avatar works: it is defined in a number of parts (five or six), each of which uses around 15 joints.

In terms of the number of animations, he indicated that there isn’t so much a numerical limit beyond which people might experience issues, and that he believes that it is possible  to upload an animation that includes as many joints as is recognised as being “legal”, but again cautioned he hasn’t actually tested this, and that (again) the more joints there are, the greater the potential for a performance impact to be felt.

One area of possible confusion with the limit(s) is attempting to upload mesh models which  name more that 110 rigged joints, even if the number used is far fewer, with Vir noting that the uploader takes a creator’s word for how many joints are being used. So, if 120 are named, but only two dozen actually used, the uploader will respond as if the total is 120; it doesn’t carry out any verification. “If you’re actually only using three joints  to do anything to the vertices on the mesh, you should probably omit the others so it’ll go through better,” Vir said.

General Points

  • There are a number of technical issues the Lab is attempting to address. These are primarily code-related, and it has been suggested by Oz the core issues the Lab is looking at might be listed on the wiki pages for Bento
  • There is something of a performance premium involved in having extra joints (hence another reason for the rigging limit noted above). Lower-end GPUs in particular can struggle with rendering complex avatar forms with lots of joint and rigging. There is a check box included with the project viewer which allows avatars to only be seen using the “basic” skeleton which might help with performance issues whilst still rendering an avatar reasonably
  • Bento currently hasn’t been factored-in to consideration with Avatar Complexity. Joints, again as already noted, do have a cost, but precisely what criteria should be used (total number of joints, number of animated joints, etc), has yet to be determined
  • The next meeting should be on Thursday, January 14th. However, this is still TBC at this time. The meeting will, however, be on Aditi once more at Mesh Sandbox 2. Attendees who have be working on models using the Bento skeleton extensions are asked to bring them along for a little show-and-tell.

Videos courtesy of Medhue, Gaia Clary and Aki Shichiroji.