SL project news week 43/3: viewer status updates

SL Beta Viewer

A new Beta version of the beta viewer was release on the 24/25th, (3.4.1.266251), which has more-or-less the same visible changes as the previous release, except that tcmalloc has been re-enabled as LL seek to determine whether stability issues have been improved or not. However, given the high crash rates experienced with the previous release, Oz Linden is requesting people take time out to give the beta a run. Speaking at the OpenDev meeting on Thursday 25th October, he said, “Run the beta viewer a lot. We think this one will be good, but it takes a lot of usage to find that out and things won’t get unstuck until we do.”

Tcmalloc has been re-enabled with the latest beta release, and this probably means that those using cloud storage such as Microsoft Skydrive and others (such as Cloud Drive – see FIRE-7520 – are liable to encounter issues using it.

The intent at LL still appears to be the complete disabling of Tcmalloc from the viewer code, however, the attempts to do so to date have only met with partial success – the “fix” for MS Skydrive, for example, apparently only worked for some instances, not all.

Commenting on the situation at the OpenDev meeting, Oz said that efforts to completely disable tcmalloc are “taking too long”. As a result, and to prevent work with tcmalloc from adversely affecting attempts to stabilise the viewer, the decision has been taken to move the work on tcmalloc to a separate branch of the viewer code for the time being, with efforts on the beta branch focusing on stability.

In the meantime, code releases remain blocked, pending confirmation the beta release has improved on previous crash rates (which were around 14%).

Mesh Deformer Viewer

As reported in part 2 of this week’s project news, a new version of the Mesh Deformer project viewer appeared over the weekend – 3.4.1.266081, dated October 20th. In addition, Darien Caldwell has made updates to the SL wiki page on the avatar shape XML format which are related to the project.

The updated shape selection options for mesh clothing and human shapes in the mesh upload floater, as seen in the latest version of the Mesh Deformer project viewer

The current thinking is at present that the latest version of the viewer requires wider testing, so if you are involved in mesh clothing / shape creation (humanoid shapes, remember), then you might want to download the viewer and try it yourself. Commenting on the JIRA (STORM-1716), Darien notes:

If people could provide feedback on the use of the custom base shape part specifically, that would be great.

Keep in mind the potential bone length problems outlined above: do these affect your creations negatively when used with custom base shapes?

And is the potential workaround of setting bone lengths to the defaults a problem for your workflow?

Those and any other issues, please post. Thanks 

Initial feedback from those who have tried the viewer have been largely positive, although the issue with custom shapes and certain sliders, as previously reported in these pages (and on the JIRA) remain. Darien has been looking a little deeper into the latter issue, which affects a total of eleven shape sliders, and seems to have found the potential cause:

“The bone length deformation seems to be performed in the function LLRiggedVolume::update(). The deformer is doing its processing before this is reached, and when creating the custom base shape, it’s never run on that custom base shape. So the bone length deformations aren’t included.”

Instead, the current  deformer code assumes that all joints in a shape have the same scale, and that the scale is uniform in all axes. This is fine for a standard shape, but doesn’t work so well with custom shape forms, and wouldn’t work were scaled bones within avatar shapes ever to come about. The solution for this issue is unclear; the current plan is for Darien to write-up her findings for LL, so that someone there can look into the code as well.

The problem: bone length deformation is performed outside of the deformer code, which in turn appears to assume that all shapes use the same, uniform scale for joints. When working with a default shape, neither of these issues present themselves in obvious ways. When working with custom shapes, however, the problems become very evident. In this image a tall, then shape is use to generate an upper body mesh (flesh toned). When uploaded and applied to the shape itself (shown in black), the discrepancies become clear. Had the mesh been correctly deformed according to the shape data, it should more closely match the original shape

Group Services Project Viewer

Baker Linden’s server-side Group Services code for handling very large in-world groups was rolled out to four regions on the main grid on the 25th October, as reported here. However, due to the issues with the beta viewer code as reported above, testing of the new code requires the Group Service project viewer. If you do manage any group(s) with more than 10K members, you may wish to download the project viewer and give things a test on the nominated regions (see link above).

The viewer is available in Windows, Linux and Mac flavours.

Related Links

New Group Services code now live on Agni

Large group loading: a familiar problem

The Group Services project is an attempt to improve the management and editing of large SL groups by replacing the current UDP-based service (which has capacity issues with the size of group lists it can comfortably handle) with a new HTTP-based service.

Oskar Linden has announced that the new code for handling large groups is now live on four regions on the main grid. His announcement reads in part:

These fixes were released to Magnum this morning, but then we found issues in llSensor() that required us to remove the code from a channel as large as Magnum. We have a very small qa channel called the Snack RC Channel that we put the changes on.

 – https://wiki.secondlife.com/wiki/Release_Notes/Second_Life_RC_Snack/12

You will need to be  a member of the group Second Life Beta to access them. You can join that group here: http://world.secondlife.com/group/19657888-576f-83e9-2580-7c3da7c0e4ca

The four Snack test regions are:

Currently, the viewer-side code required to use the new service is only available in a project viewer, which is available as follows:

The viewer side code, as I’ve been reporting in these page, is currently being held-up from more widespread use by crash issues impacting the SL beta viewer code. As such, TPV developers are being encouraged not to merge the code for the above project viewers with their own development viewer code for the time being.

In the meantime, if you manage a large in-world group with more than 10K members, you may wish to download your relevant flavour of the project viewer and try-out the new code on the nominated regions.

Related Links

Niran’s Viewer turns 2

NiranV Dean has been back working on Niran’s Viewer, and in doing so has lifted the viewer to version 2.0 with a number of initial Betas. On Wednesday October 24th, he made a final release, 2.0.2185, which he calls Niran’s Viewer Rebooted, given the amount of additional work put into it, which finally saw him bypass his planned 1.5 release.

As the last release of Niran’s Viewer in these pages was version 1.46, the following will touch on elements previously released in 1.47 – 1.49 as well.

Download and Installation

The download file remains an archive EXE, rather than an actual installer, and is just on 50MB in size. It will extract the files into a default directory Nirans Viewer in C:\Program Files. If you’ve had a previous version of Niran’s Viewer installed, it is strongly recommended that you remove it first, together with all cache and settings files. The viewer itself has no uninstaller, some removal is a matter of deleting the program folder. The locations for all three are:

  • Viewer: C:\Program Files\NiransViewer (delete this entire folder)
  • Cache: C:\Users\[user name] \AppData\Local\NiransViewer (delete this folder)
  • Settings: C:\Users\[user name] \AppData\Roaming\NiransViewer (delete this folder and all sub-folders inside).

First Time Running

Once you’ve made your initial keyboard camera preferences selection, the log-in screen features a new video from NiranV. I have to admit, I’m curious as to the music track and whether it is taken from something or original, as I rather like the keyboard arrangement in it.

Watch a video while entering your login credentials

You may get an anti-virus alert relating to the SLVOICE.EXE plugin – if you do, make sure that it is the plugin being referenced and clear it. The log-in splash screen is again liable to be something of a surprise to first-time users. There is no familiar splash screen feed from Linden Lab here. Instead, and providing you’re running flash, there’s a YouTube video NiranV has put together and which will play while you enter your log-in credentials in the panel to the right.

Note that Niran’s Viewer isn’t intended for use on OpenSim, so the other grids selection is limited to the SL Agni (main) and Aditi (Beta) grids. Once you’ve entered your you log-in credentials, you’re treated to a series of hints and tips as the viewer logs-in to Second Life.

Preferences Overlay

Niran’s alternative to the usual Preferences floater started appearing in version 1.46 of the viewer, where he referred to it as his “Skyrim influence”. It’s slowly been maturing through a number of releases since then, and with version 2.0, it completely replaces the old Preferences floater, which is no longer available within the viewer.

Accessed via the Preferences toolbar button, CTRL-P or NV->EDIT->PREFERENCES, the overlay does exactly what it says – overlays the in-world view.

Preferences Overlay with a submenu displayed

To the left of the overlay are the main options: Display, Audio Controls, Camera, Chat, User, Interface and Viewer. Depending on the complexity of the screens / options associated with this, clicking on one of them may display a panel directly, or may open-up a sub-menu of further options which in turn will open up individual panels on the right of the overlay.

Preferences overlay with an open panel

Please use the page numbers below left to continue reading this article

Catznip R7: the cat is back with a roar

It’s been a while since the last release of Catznip – mainly because the team has had a number of other projects and RL things to deal with, but R7 is now here, and it sees the viewer get an extensive update and overhaul, with new features, updates large and small and bug fixes galore.

Not only has the viewer itself been overhauled, but the Catznip team have been putting considerable effort into matters of support as well – which is where this review starts.

Catznip JIRA, Wlki and More

With the R7 release of Catznip, the team have moved away from Bug Genie and adopted JIRA as their issue reporting and tracking tool. As a part of this, anonymous postings to the tracker will not longer be allowed, and users will have to register an account. However, this does mean that the team will be better able to deal with specific issues and contact those logging problems with greater ease.

Release R7 also sees the formal arrival of the Catznip wiki, providing additional support, information, documentation and information on RLVa. The wiki is still under development, and (as with all wikis) is constantly evolving, so should be a bookmarked resource of anyone who uses Catznip as their primary viewer.

The Catznip wiki

The Catznip wiki, together with the Catznip blog can be accessed from within the R7 release, via the HELP menu. Similarly, HELP->REPORT BUG will open the Catznip JIRA in your web browser (or the built-in browser, depending on your preferences setting), rather than attempting to open the default LL Bug Tracker.

So, to the Release itself.

Download and Install

The Windows installer for Catznip R7, at 29Mb in size, is just a tad bigger than the official Second Life viewer installer. Installation for me was smooth and incident-free, as all Catznip installs have been in the past.

On start-up, the familiar viewer 3.x-based FUI is displayed, with button ranged to the left and along the bottom. As with most TPVs and the official viewers, Catznip forgoes the ability to place toolbar buttons at the top of the screen, which is no great loss. Sadly, R7 hasn’t implemented the ability to align buttons to the left or right at the bottom of the screen (which I’d personally love to see gain more widespread adoption among TPVs) or at the top or bottom on the left / right of the screen. However, this also doesn’t detract from usability in any way.

The following sections provide an overview of some of the more significant updates, starting with floater updates. For a complete breakdown of updates and features in this release, please also refer to the Catznip R7 release notes. Please click any images of floaters, etc., for an enlarged view.

Appearance Floater

The Appearance floater has received significant work, with updates to both the Outfits and Wearing tabs.

The Wearing tab has been significantly updated to make viewing, ordering, finding, and sorting worn items a lot easier. The main revisions to the tab are shown below.

Updated Wearing tab in the Appearance floater in Catznip R7

The Outfits tab has also been revised, with key elements shown below.

Updated Outfits tab in the Appearance floater in Catznip R7

In both tabs, FIND ORIGINAL will out the inventory floater with the original item for any link selected. Additionally, attachment point details are now included for all attachments shown in the Wearing tab.

Detaching Folders, Touching Worn Mesh

Catznip introduces two useful features – Detach Folder and the ability to right-click on worn rigged mesh items.

Detach Folder is a context menu option which allows you to remove an entire folder with a single click.Simply right-click on an attachment you’re wearing, and select Detach Folder from the menu, and the attachment and everything else in the same folder will be removed: other attachments, clothing, alpha layers.

Detach Folder (left) available by clicking on a suitable attachment; Context menu available for rigged mesh (right) when right-clicking on it

Inventory

The Inventory floater has received a number of updates with the R7 release, with new buttons, the ability to use separate search filters on different tabs, a new “custom tab” option, a revised cut-and-paste option, and more.

Catznip R7 inventory floater

Significant points of note with the inventory floater with R7:

  • The overall layout of the floater has been tightened
  • As shown above, the sort options have been moved from the gear icon button to their own button, simplifying the re-ordering of an inventory display
  • Custom tabs allow you to open additional inventory views in their own tabs and apply specific search filters against them
  • The right-click context menu for FOLDERS includes an option allowing you to open the folder in a new tab within the current inventory floater, or in an additional inventory floater instance
  • The right-click context menu for ITEMS includes an option to FIND ALL LINKS within your inventory for a given item (moved from the gear icon menu)
  • Cut & Paste operations work in a more file manager-like way.  works the way you would expect from file manager with cut are marked and moved on Paste
  • COLLAPSE ALL will not collapse top-level folders that are currently open
  • A SHOW RECEIVED ITEMS option has been added to the gear icon button. When checked, the Received Items panel will be displayed in the Inventory floater; when unchecked, Received Items appears as a folder within the Inventory floater.

Continue reading “Catznip R7: the cat is back with a roar”

SL project news week 43/2: SL viewer, mesh, and materials processing

SL Viewer News

Things are not looking good on the official viewer front. As previously reported, the crash rate for the 3.4.1.265898 beta release was unacceptably high when compared with the current release version.

A new beta candidate  – 3.4.1.266073 – was released late on Monday 20th October. As per usual, it will remain on the beta channel for a couple of days once released in order for LL to get a read on performance and crash rates. Some regression testing has started, with the beta code merged back to the viewer-development pipe, but work is really pending on confirming the beta code is relatively stable.

In the meantime, feature changes to the official viewer remain frozen, and even should the new beta release prove stable enough, it is going to take some time for LL to prioritize all of the pending updates (both their own project work such as the Steam updates, HTTP project, Group Services, etc., and contributed updates), start merging them into the code, testing them, and then releasing updates once more.

With regards to overall viewer stability, A series of crash fixes from Firestorm (officially viewed by Linden Lab as the most stable viewer connecting to SL) have been contributed to LL and are awaiting regression testing in order to confirm their effectiveness with the LL code.

Mesh Deformer

A new version of the Mesh Deformer project viewer appeared over the weekend – 3.4.1.266081, dated October 20th. This has the revisions Darien Caldwell has made to the uploader and custom shapes, although she is still waiting on feedback from Qarl on the matter of the sliders / bone armatures which are deformed by both the viewer and the deformer, as mentioned in part 2 of my week 42 update.

The new version should hopefully include a small bug fix when selecting the Default Male shape (which would act as if the Default female shape were selected).

Materials Processing

Materials processing: using a normal and diffuse (texture) map to generate a 3D effect on an in-world wall – coming to SL in the near future

Speaking at the OpenDev meeting on Monday 22nd October, Oz Linden indicated that the specification for the revised build floater in the viewer – needed to handle picking, rotating and offsetting normal and specular maps in the same way as can be done with textures (diffuse maps) at present.

The specification for the floater has been written in-house at LL, but the work is being undertaken for LL by a third-party viewer developer who volunteered to carry out the required work on LL’s behalf. This work will initially focus on getting a shell for the floater built, as there are a number of things that are being worked on within the viewer with regards to making parameters actually visible on surfaces.

Discussing progress at the Content Creation Improvement Informal User Group on Tuesday 23rd October, Geenz Spad outlined some more of the upcoming capabilities, as defined by the initial release specification document.

“We have normal maps with specular exponent stored in their alpha channel, specular maps will have environment masks stored in their alpha channel [so, for example, mesh won’t require seperate faces in order to have different levels of shininess on different parts of it], and for diffuse maps you’ll be able to select to some limited degree what its alpha represents (currently, none, alpha blending, alpha masking, and emissive mask).” He went on, “There’s a few additional knobs people will be able to mess with as well, such as specular exponent (combines with the normal map’s exponent map in its alpha), specular color (combines with the specular map’s color), and environment intensity (combines with the specular map’s alpha).”

However, custom environment maps – such as used with custom reflections – won’t initially be supported, as has been previously indicated. With the initial release specification now locked – but not currently open to public reading, that will occur nearer the time LL are ready to make a further announcement on materials – any additional functionality is being looked upon as being either for a further release or requiring a programmable system to implement.

Whether there will be further updates to the system remains to be seen, but it appears those involved in the project, both inside and outside of LL are reasonably confident there will be. “Materials is something that you can likely expect to receive several updates over time,” Geenz commented. “It’s something that’ll evolve from a fixed system into something a fair bit more sophisticated eventually.”

Related Links

SL project news week 43/1: Server updates and llHTTPRequest

SL Server Updates

A brief start-of week update with an important item on the LSL llHTTPRequest function.

Tuesday October 23rd saw an update to the main channel which should have minimal impact on things, “It’s a change that should make simulators run better on our new hardware,” Simon Linden explained at the Simulator User Group meeting on the 23rd.

Wednesday 24th, as previously indicated, should see the RC channels updated as follows:

  • Magnum should receive bug fixes together with Baker Linden’s Group Services project code (the viewer side of which is still blocked)
  • LeTigre should receive further updates for the new Havok code (which presumably include fixes for the crash loop situation Maestro reported in the Server Beta UG meeting (see above)
  • BlueSteel should receive, “Some more invisible changes that should help us deal with some problems like full disks that make servers very unhappy.”

Details on the deployments are, as usual, posted in the Second Life Server section of the Technology forum.

Third-party Web Caching and llHTTPREQUEST

Kelly Linden indicated that the updates to LeTigre in week 42 had some library updates. One of these updates was to the cURL library which changed its behavior specifically around caching.

Until now, outgoing requests on have a Pragma: no-cache header in them, because cURL added this to all requests, and thus ensured fresh data was returned. The change made to the cURL library on LeTigre means that this is no longer the case, so if the third-party web server has caching enabled, any outgoing llHTTPRequest might return previously cached results from the server, rather than fresh data.

Kelly noted that, “Systems that are most likely to be affected are those that frequently hit the exact same URL and expect the data to change. Maybe they are getting a counter or checking on something’s status, leading to problems with the likes of breedables dying, and so on.”

A workaround for this has been implemented for the llHTTPRequest in the form of a HTTP_CUSTOM_HEADER flag, which enables Pragma: no-cache to be specified manually.

While there have currently been no reports of this or similar happening so far, LL are continuing to discuss the potential impact. Further, it is expected that the , Kelly continued, “If anyone uses or develops systems they think *might* be affected please give them a try on LeTigre this week and let me know. Or if you know others that might, encourage them to test on LeTigre this week. Thanks.”

So, if you have created a product which uses an external web server for updates in the manner described above, etc. (or know anyone that does), you may want to test behaviours on a LeTigre region to see if your product is impacted prior to this change rolling out further across the grid.

SL Issues

Network Traffic and Sim Lag / Crash

This issue has been going on since the start of the month, and appears to affect regions with large numbers of people.

A bug report was raised on the issue (BUG-355), and has been imported by LL as a MAINT issue (MAINT-1682). However, there has been no feedback from LL as to the underlying cause, although investigations are continuing.