2016 SL project updates 40 (2): TPVD meeting, Bento

It All Starts With a Smile; Inara Pey, October 2016, on Flickr It All Starts With A Smileblog post

The majority of the notes in this update are taken from the TPV Developer meeting held on Friday, October 7th. The video of that meeting is embedded at the end of this update, and references to it are indicated through the use of time stamps in the paragraphs below. My thanks as always to North for recording and providing it.

This is not intended to be a transcript of the entire meeting, which featured discussions of some situations specific to individual region rather than SL as a whole. However, key discussion points have hopefully been highlighted.

Server Deployment – Recap

As always, please refer to the server deployment thread for updates or changes.

  • Tuesday, October 4th saw the Main (SLS) channel updated with the server maintenance package previously  deployed to the three RC channels, which includes a fix for BUG-40565, introduced as a result of the deployment of the week #38 server maintenance package.
  • There was no planned deployment / restart for the three RC channels, although there should be a new RC package available for week #41 (commencing Monday, October 10th).

SL Viewer Updates

From 00:05 in the video.

The VLC Media Plug-in RC viewer updated to version 4.1.1.320331 on Thursday, October 6th, intended to fix a number of outstanding bugs, including setting the volume slider to maximum, causing the voice sound to cut out completely. This view has been performing well, with a low crash rate, so if this trend continues with the latest update it may well finally make it to release status in week #41 (commencing Monday, October 10th).

The Project Bento RC viewer updated to version 5.0.0.320160 on Friday, October 7th (see below for more).

Project Bento

There was no Project Bento user group meeting during the week, due to a timing conflict with the Lab’s internal monthly meeting. The next Bento meeting will be on Thursday, October 13th, at 13:00 at the Hippotropolis camp fire circle.

In the meantime, as noted above, there was a new Bento RC update, which includes the following additions and fixes:

  • Adds a scale locking feature to mesh upload
  • Optimisations should improve the frame rate in mesh-intensive regions
  • Probable fix for an intermittent crash.

The scale locking feature adds a check box which, if checked will lock joints against scale changes, and thus the sliders affecting the joint will no longer influence it. Leaving the box unchecked for the joint will allow scale changes. This might be useful for those wishing to produce (non-human?) avatars where it might be preferable to have certain parts of the body locked from slider-driven changes to prevent distortions / conflicts arising, without necessarily locking in the entire mesh against slider changes (e.g. the face could be “frozen” to prevent distortion, but body height or tail length, etc).

In addition to their brief Bento Hands preview first seen in July, Vista Animations have now produced a more details preview, with the beta version of the hands (with free update to the release version) available on the Marketplace for L$999.

64-bit Viewer and Viewer Build Process

[03:19] Work on the 64-bit viewers is temporarily paused as the Lab shifts over to their improved viewer build process, which will come into effect with the 64-bit builds.

The updated process involves changes to almost everything in the build pipeline other than the compilers. However the work is progressing well, and the Lab anticipates running builds using the new libraries from week #41, and the library repositories are already public for TPVs to examine and use.

In particular, the Autobuild environment has been updated to support platform-specific switches within the build scripts via a new option in the autobuild_source_environment command. The varsfile is a file containing template variable assignments to be modified based on the build type, so that all builds(library and viewer) use the same compilation and option switches. The variables file used by Linden Lab to build the viewer and its libraries is in the viewer-build-variables repository. TPVs are free to us this, or adopt / continue to use their own.

As noted, given the extent of the work, the Lab is avoiding updating Visual Studio and Xcode. Instead, they will be updated as a follow-on project once the current work is completed.

Snapshot 360

[08:49] The Lab is working on a new viewer capability – the ability to take 360-degree panoramic snapshots using the snapshot floater. I’ve covered this in a separate article, with key audio extracts.

Experience Force Sit

Rider Linden is continuing to work on this new capability (see my article here) which will allow for the scripted seating of avatars engaged in experiences (Project Espeon). In particular, the latest Maintenance RC allows avatars to use the stand button to stand (Server Beta Meeting, Thursday, 6th October).

2016 SL project updates 40 (1): server, viewer

Neverland - Calas Galadhon Halloween
Neverland – Calas Galadhon Halloween – blog post

As always, please refer to the server deployment thread for updates or changes.

  • Tuesday, October 4th saw the Main (SLS) channel updated with the server maintenance package previously  deployed to the three RC channels, which includes a fix for BUG-40565, introduced as a result of the deployment of the week #38 server maintenance package.
  • There is no planned deployment / restart for the three RC channels, although there should be a new RC package available for week #41 (commencing Monday, October 10th).

SL Viewer

The Maintenance RC viewer was rapidly updated on Tuesday, October 4th, after only having been released on September 28th. Version 4.0.9.320231 see the addition of a Project Espeon fix (“Experience permission dialogue should include “Sit your avatar””), suggesting this project is making progress.  Overall, this viewer includes over 70 crashes and bug fixes and improvements – refer to the release notes for the full list.

Excluding this update, the remainder of the current crop of official viewers remains unchanged:

  • Current Release version: 4.0.8.319463 (dated September 9), promoted September 15 – formerly the Visual Outfit Browser RC viewer
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
    • Project Bento (avatar skeleton extensions), version 5.0.0.319893, dated September 22nd
    • VLC Media Plug-in Viewer RC, version 4.1.1.319856, dated September 20th – replaces QuickTime in the Windows viewer with a media plug-in based on LibVLC
  • 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.

2016 SL project updates 39 (2): server, viewer

Vecchi Amici
Vecchi Amiciblog post

Server Deployment – Recap

As always, please refer to the server deployment thread for updates or changes.

  • There was no deployment to the Main (SLS) channel On Tuesday, September 27th.
  • On Wednesday September 28th, all three RC channels should receive the same new server maintenance package, which includes a fix for BUG-40565, introduced as a result of the deployment of the week #38 server maintenance package.

SL Viewer

The VLC Media plug-in viewer didn’t make the jump to release status as had been anticipated, but should remain the next in line for promotion.

A new Maintenance RC viewer did arrive, however. Version 4.0.9.320038, released on Wednesday, September 28th, focuses on assorted crash fixes and stability fixes, with over 70 updates and fixes included. This has the current official SL viewer list looking as follows:

  • Current Release version: 4.0.8.319463 (dated September 9), promoted September 15 – formerly the Visual Outfit Browser RC viewer
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
    • Maintenance RC viewer, version 4.0.9.320038, dated September 28th – 70+ fixes and updates
    • Project Bento (avatar skeleton extensions), version 5.0.0.319893, dated September 22nd
    • VLC Media Plug-in Viewer RC, version 4.1.1.319856, dated September 20th – replaces QuickTime in the Windows viewer with a media plug-in based on LibVLC
  • 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.

Render Cost Investigations

This was first raised at the TPV Developer meeting on Friday, September 23rd, and again at the Bento User Group Meeting on Thursday, September 29th (although it is not Bento specific.

Vir Linden is leading an investigation into rendering cost and land impact of items (worn and in-world). This is as a result of JIRAs filed on the LI cost of various items not being correctly assessed, etc. It is not clear if any changes will result of the investigations, particularly where legacy content is concerned, but equally, it might be that some adjustments can be made to the rendering cost formulae. In particular, the Lab is interesting in learning about problematic content and JIRAs filed on LI  / rendering calculation issues (such as BUG-37631). Speaking at the Bento meeting on the subject, Vir had this to say:

 

 

Project Bento User Group update 28 with audio

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

The following notes and audio were taken from the weekly Bento User Group meeting, held on Thursday, September 29th at 13:00 SLT at the the Hippotropolis Campfire Circle. and chaired by Vir Linden. For details on the meeting agenda, 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, grouped together by subject matter were relevant / possible, whilst maintaining the overall context of the meeting.

RC Viewer and Scale Locking

The next release of the Bento RC viewer should be appearing soon. When it does, it will have a couple of updates:

Slider Scale Locking

At the last meeting, Vir requested feedback on the proposed ability to effectively make joints in a mesh “slider proof” by overriding the scale as well as position in uploaded mesh models, as seen in the proof of concept viewer put out at the start of September.

The option has now received positive feedback, and will included in the next RC update. It will comprise a check box which, if checked will lock joints against scale changes, and thus the sliders affecting the joint will no longer influence it. Leaving the box unchecked for the joint will allow scale changes.

Performance optimisations

There has been one noticeable “hot spot” of viewer performance degradation as a result of all the new Bento joints. This has been sufficient for the Lab to make some changes which should help improve FPS for users when in a region with a lot of rigged mesh.

Going to Release

The question on when Bento will reach a release status tends to come up at every meeting, and the answer remains the same. Bento’s promotion to release status is dependent on a number of factors, including:

  • The viewer’s crash rate compared with the current release viewer and other RC viewer in the release channel
  • Whether exposure to a wider audience of users uncovers non-bento bugs or regressions which require additional fixing
  • Relative priorities between Bento and other projects.

However, there have been few Bento-specific bugs raised against the RC viewer, and while it still requires time as an RC as changes are still being made, Vir’s hope is that it will be weeks rather than months until the viewer is promoted to release status (bugs and other priorities allowing, as noted.

Joint Position Locking

A joint’s position can be locked from slider influence by setting a custom position for it. However, the slider’s influence isn’t completely disabled, as a change to scale can still have influence. For example, if the scale of a parent join is changed, it can influence where a child joint appears, even if the child has a custom position set (hence one reason for the scale locking. However, there has been a suggestion that joint position locking may not be working smoothly, so Vir is interested in hearing about situations where this might be the case.

The question was asked in joints could be locked from within Second Life – that is, after upload. the short answer to this is no, as it would require a significant amount of reworking which falls well outside of the scope for Bento.

My company of wolves: wearing the "Morgan" avatar, my Alt attends the Bento meeting, under the protection of two Bento wolves (designed by Medhue Simoni) - that's Whirly on the left, and Medhue on the right)
My company of wolves: wearing the “Morgan” avatar, my Alt attends the Bento meeting, under the protection of two Bento wolves (designed by Medhue Simoni) – that’s Whirly on the left, and Medhue on the right) – see the addendum below for more info on the wolves.

Animation Priorities And Formats

As all SL animators know, the platform supports two animation types: .BVH and .ANIM. The differences between them, in essence, is that .BVH is a format which pre-dates Second Life. During the upload process, an attempt is made to process the .BVH file to make it more efficient. The .ANIM format is more of an internal format for Second Life, and bypasses all the processing common to .BVH files; all the settings are already baked in, including the priority.

Generally speaking, the priority in which animations play is based on their priority; those animations with a high priority than other will take precedence in playback. If to animations with the same priority are called, it can be indeterminate as to which may play first. There have been some proposals to make this more deterministic, but it is a non-Bento effort, if it is being actively pursued.

However, if using the .ANIM format in Blender, it is possible to set the animation priority on a per joint basis, prior to exporting for upload to Second Life – although it is not clear if the Second Life .ANIM format supports a per-joint field for prioritising animations. Also, all of the options available in the .BVH uploader for Second Life are available for .ANIM files from within Blender / Avastar, and can be set from there prior to export.

Maya also has a native .ANIM format, but it is important to note that this is not the same format as the Second Life .ANIM file, and it is not  compatible with Second Life.

Other Items

Mixing and Matching Bento Parts

One of the aims with Bento is to allow users to mix and match Bento parts. So, for example, if you have a Bento elephant, you might in theory be able to get a set of Bento wings and add them to become a flying elephant. To achieve this, a Bento mesh no longer has to define positions for all the joints in the skeleton – only those it actually uses need to be defined.

However, this still means customers must be aware of the joints being used by different mesh models to avoid potential conflicts. Again, if the elephant mentioned above uses the wing bones to animate its ears, that’s going to conflict with the use of wings using the same bones  – and yes, I’m avoiding Dumbo and his ear-flapping flying for the purposes of this example! 🙂 ).

One way to avoid this might be for creator to document the joints they’re using in their mesh models when selling them (e.g. in the Marketplace listings, on their vendor boards, etc). But quite how this might work in practice remains to be seen – and will largely rely on the community to consider matters.

MayaStar Update

Cathy Foil has reached a point of getting all the sliders working with the all of the bones, although some are not yet working properly. She hopes that MayaStar will be updating a in the next couple of weeks. She also reminded people that Aura Linden is, in her own time and unpaid, writing an exporter for MayaStar for .ANIM files. This will be provided as an open-source project.

Bento Follow-up?

After the main meeting had finished, Cathy Foil indicated that she and Matrice had discussed a possible follow-up for Bento with Vir, which he was positive about. This would be to add a further appearance slider which would allow an avatar to be correctly / proportionally scaled larger or smaller.

This would apparently be a relatively simple addition, although work would also have to be put into correctly scaling walks, runs and flying to avoid things like Mach 5 tinies roaring across a region because the scale of their steps remains unchanged (the upper and lower limits of avatar size would also need to be defined). Given the potential benefits of such a slider – more efficient land use as avatars could be more easily scaled down to make use of smaller spaces, etc. -, it could also be a useful task for one of the few remaining slider slots which are available.

The discussion included the idea of using animations or even a file (/script) to define avatar scale, with Cathy indicating that animation scaling was ruled out early in the project on the grounds of cost, and that Vir was unsure of a way to easily allow file-based avatar scaling.

Next Meeting

Due to the Lab’s monthly internal meeting, which conflicts with the Bento meeting, the next Bento User Group meeting will be on Thursday, October 13th.

Addendum

Those interested in the Bento mega-wolves by Medhue can now obtain them through the Marketplace, and read about them on Medhue’s blog. You will require a Bento-enabled viewer to render them correctly. With thanks to Whirly for the pointer.

Additional Links

2016 SL project updates 39 (1): server, viewer

The Shire; Inara Pey, September 2016, on Flickr The Shireblog post

It’s once again a light start to the week.

Server Deployment

As always, please refer to the server deployment thread for updates or changes.

  • There was no deployment to the Main (SLS) channel On Tuesday, September 27th.
  • On Wednesday September 28th, all three RC channels should receive the same new server maintenance package, which includes a fix for BUG-40565, introduced as a result of the deployment of the week #38 server maintenance package.

SL Viewer

Unless something untoward has happened with the latest RC version, it is anticipated the VLC Media Plug-in viewer will be promoted to de facto release status this week. A new maintenance RC is also anticipated. In the meantime, the current batch of official viewers remains unchanged from week #38:

  • Current Release version: 4.0.8.319463 (dated September 9), promoted September 15 – formerly the Visual Outfit Browser RC viewer
  • Release channel cohorts (please see my notes on manually installing RC viewer versions if you wish to install any release candidate(s) yourself):
    • Project Bento (avatar skeleton extensions), version 5.0.0.319893, dated September 22nd
    • VLC Media Plugin Viewer RC, version 4.1.1.319856, dated September 20th – replaces QuickTime in the Windows viewer with a media plug-in based on LibVLC
  • 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.

Experience Scripted Sits

As per my blog post of September 23rd, Rider Linden is working on a new scripted sit capability for Experiences. The new LSL functions form Project Espeon (after the Pokémon character), and Rider has produced a proposal document on the new functionality, which can be read  in PDF format. The capability can also be tested on ADITI (the beta grid) in the following regions:  Leafeon or Umbreon or Sylveon, with test content is available on Leafeon. If anyone testing them has suggestions or feedback, please raise a JIRA against Project Espeon.

SL project updates 38/2: TPVD meeting, avatar and object rendering

Revenland: the castle and town
Revenland: the castle and town – blog post

The majority of the notes in this update are taken from the TPV Developer meeting held on Friday, September 23rd. The video of that meeting is embedded at the end of this update, and references to it are indicated through the use of time stamps in the paragraphs below. My thanks as always to North for recording and providing it.

This is not intended to be a transcript of the entire meeting, which featured discussions of some situations specific to individual region rather than SL as a whole. However, key discussion points have hopefully been highlighted.

Server Deployment

There was no update on the Main (SLS) channel on Tuesday, September 20th. On Wednesday, September 21st, all three RC channels should receive the same new server maintenance package, containing further “minor internal changes”.

SL Viewer

VLC and Project Bento RC Viewer Updates

On Tuesday, September 20th The VLC media plug-in viewer updated to version 4.1.1.319856, while the Project Bento RC viewer updated to version 5.0.0.319893 on Thursday, September 22nd. In both cases, the updates were primarily intended to bring the viewers to parity with the de facto release viewer code base.

It is hopes the VLC media plug-in viewer will be promoted to the de facto release status in week #39 (week commencing Monday, September 26th).

64-bit Versions

Clarifications was given at the TPV meeting that the 64-bit version of the official viewer will be Windows, Mac and Linux, with the 32-bit version of windows continuing, Mac and Linux moving purely to 64-bit. Active development of the 64-bit viewer is expected to resume in week #39, with the intention of getting the viewer out and available sooner rather than later.

Autobuild, Public Sources and Viewer Building

Part of the 64-bit viewer work involves viewer build infrastructure changes. These include updates to how public sources should be built and to the viewer Autobuild process. In particular, these updates allow the viewer library files to all be built using the same compiler switches regardless of build system. The wiki documentation for viewer builds will be updated to reflect these changes, and there may be a presentation on things at the next TPV Developer meeting. There is a separate file for controlling the compiler switches, so if TPVs and self-compilers wish to build their viewer with different compiler settings, they can swap this file with their own.

Viewer Blocking

As per the Lab’s recent blog post, all official viewer versions older than 4.0.5 have been blocked from accessing Second Life. Users on such viewers will be required to update their viewer to a more recent version. This has been done to encourage users to keep up with the numerous changes and improvements being made to the viewer.

That same blog post indicated that the Lab are discontinuing support for Windows Vista and for Mac OSX versions below 10.9. The Lab is doings its best to maintain back compatibility wherever it can, but where the underlying technology loses support, etc., then it is not possible for the Lab to continue maintaining support either (the more recent versions of CEF, for example, do not work on Windows Vista).

Crash Rates

The recent changes to the viewer code are said to be significantly reducing the crash rate for the official viewer, and it is hoped this will continue with further improvements to the code and through the coming availability of 64-bit versions of the viewer.

Maintenance RC

The next Maintenance RC viewer could be appearing in the early part of week #39.

Avatar and Object Rendering Investigations

[12:12] Vir Linden is starting to work on a new project (concurrent with Bento) involving digging into avatar and object rendering, and land impact. The work is due to an accumulation of issues raised concerning rendering costs by users, and the investigations at this point are focused on what might be improved and what cannot be (due to issues like backwards compatibility) .

This will involve taking “a bunch” of representative / problem cases, and try to take a set of carefully defined measurements of what the real impact is during rendering on a wide range of systems. It is hoped this will allow the Lab to adjust the formulas used to make a reasonable generalisation in the rendering cost of things, and whether or not objects are being reasonably accounted for in those calculations.  At this point in time, it is not a given that anything will chance – simply because it has been a long while since the Lab took a similar “deep dive” into rendering, but there is a “good possibility” changes will result from the investigations.

Avatar Rendering Calculations

[14:54] Avatar rendering calculations were expanded upon by Oz in terms of what happens now, and what the intent was behind things.

The viewer, providing it is using LL’s code unchanged, sends to the simulator a report on what it believes is the rendering cost of all the avatars it can “see” in a region.  The simulator then averages the reports from the various viewers, with heuristics to remove excessive values at either end of the scale, back to everyone in the region.

Right now, the viewer decides how to render each avatar it its view purely on its own per-avatar calculation, using the full dataset for each avatar. However, by using the average value calculated by the simulator, it should be possible for the viewer to start making decisions on whether or not to render avatars in a field of view based on that average (compared with its own Max Complexity setting), without having to wait for the full data on each avatar to be received. The viewer-side code to allow this has yet to be written and implemented, but may form a future project.

[18:34] The other aspect of avatar complexity calculations is that the viewer sends to the simulator a single bit of information for each avatar it can “see”, on whether or not the avatar is rendered as a Jelly Doll. The Simulator then counts how many viewers are reporting on each avatar, and how many of those are rendering that avatar as a Jelly Doll. This information fed back to that avatar roughly once a minute to generate the pop-up notification we see in the top right corner of the viewer window.

Due to the nature of the system, the updates can be delayed, or include out-of-date information. For example: data on avatars who have left a region isn’t immediately discarded by the viewer, but is held for a certain amount of time. Similarly, when changing outfits, you get an immediate update on your complexity (as it is a local calculation), but the number of those who are not rendering you fully is delayed by around 90 seconds while your updated appearance is sent to other viewers and they respond to the simulator with their information on whether they are rendering you fully or as a Jelly Doll, and the simulator feeds that information back to you.

Complexity Variances

[25:15] As noted in my Avatar Complexity updates, the complexity value assigned to an avatar can differ by up to 2K in value between those looking at the avatar. There are a number of reasons for this, including differences in the rendering capabilities of the systems viewing an avatar, and level of detail seen / distance. While it is not a high priority, the Lab is considering tuning how complexity is calculated (such as removing the LOD / distance factors from the calculations).

There are two significant bug reports for issues with the current viewer-side avatar complexity calculations:

  •  BUG-37642 – an avatars complexity value can double or triple following a teleport or relog without changing its outfit. This appears to be triggered by certain outfits / attachments.
  • BUG-37631 – wearing a rigged mesh with any amount of transparency applied to it results in a 4 times higher complexity value. This appears to be due to x4 multiplier used in the Mesh/Rendering Weight calculation for an alpha being applied to the entire avatar complexity calculation, rather than just the vertices using the transparency.

BUG-37692 – llRezObject() and llRezAtRoot()

[39:30]  BUG-37692 has been raised at a number of recent UG meetings, and is seen to be causing a wide range of issues, notably for weapon systems used in combat environments.  The Lab does not currently have a response for the issue, which will be looked at during the next triage period, on Monday, September 26th.