Catznip R9: the cat gets the cream

catznip logoCatznip released version R9 of their popular v3 viewer on Friday May 9th, and marks their biggest single update so far. As the team move towards a shorter, faster release cycle, it is likely to be the last of the really big updates we see coming out of the door from the team. In the future, things are liable to appear in smaller and more focused releases.

The complete list of changes can be found in the release notes, and I refer readers to that document for a full list of updates and changes, and any necessary specifics on code contributed to the viewer (if applicable).

The following is intended as an overview of some of what I feel are the more major / interesting / visible changes to be found in the release.

Chat  and CHUI

R9 sees Catznip get the best of CHUI and extras from the Catznip team that should help to present users with a chat  / IM conversations.

Catznip R9 chat takes the best of CHUI and adds Catznip's own tweaks, and the return of popular elements
Catznip R9 chat takes the best of CHUI and adds Catznip’s own tweaks, and the return of popular elements

One of the more noticeable elements is the ability to range tabs either vertically or horizontally. Given that many people do appreciate chiclets, considerable effort has been put into restoring the chiclets following the inclusion of the CHUI code.

Given the extent of the updates resulting from the CHUI merge and the team’s efforts to present a flexible, friend chat UI, Preferences > Chat has been extensively updated.

Preferences > Chat has been revised with expanded options for managing all aspects of chat and IMs
Preferences > Chat has been revised with expanded options for managing all aspects of chat and IMs

These changes are apparent from the moment Preferences > Chat is opened, with six new sub-tabs appearing in the panel. Three of these – Translation, Auto-Replace and Spell Checking – replace the button which access these options in earlier releases. The remaining three tabs – Chat, IM & Groups and Logging – are entirely new to this release, and all include options for configuring chat and IM notifications, behaviour, appearance, and more (some of which have been inherited from the old Preferences > Catznip > Chat sub-tab, which has been removed from R9, being surplus to requirements).

The IM & Groups sub-tab helps with configuring chat / IM behaviour, appearance, etc.
The IM & Groups sub-tab helps with configuring chat / IM behaviour, appearance, etc.

Additionally, the spelling checker has been updated to support German, French, Italian and Polish.

Building Updates

Perhaps the most obvious change to Catznip R9 is the arrival of Materials Processing. However, there are other updates as well, including:

  • Windows only:
    • Drag-and-drop textures directly onto a prim face using local textures as the backing store
    • Drag-and-drop uploading of textures
  • Added a “Selection Options” pop-out to thebuildfloater,  grouping all selection related viewer options and including:
    • Select Only Copyable Objects (also added to Build menu > Options)
    • Option to prevent turning towards a newly selected object
  • Option to prevent the avatar’s arm from pointing at a newly selected object
  • Added copy/paste of the different types of texture parameters with three possible scenarios (always on a single object):
    1. Copy all texture faces (which may or may not be identical) => pastes the texture data on matching selected faces
    2. Copy one texture face => pastes the texture data on all selected faces
    3. Copy several texture faces => pastes the texture data on matching selected faces
  • Added pipette for the different types of texture parameters.
  • The Build floater with Selections Options pop-out (l) and Materials (r)
    The Build floater with Selections Options pop-out (l) and Materials (r)

    Camera and Movement Floaters

    The updated Camera and Movement floaters
    The updated Camera and Movement floaters

    Both the Camera and Movement floaters have been refined so they are transparent, rather than opaque, and are more compact. The Camera floater also has a revised layout.

    A slider in Preferences > Colors allows you to adjust the level of transparency / opacity of both floaters.

    Inventory Updates

    This release sees a number of inventory related updates and changes, including:

    • A significant speed improvements when filtering inventory
    • Open in Inventory check box added to the Buy Contents floater + UI layout cleanup
    • Texture tooltip added for inventory items
    • Copy Outfit List to Clipboard is now available when right-clicking any outfit folders in your inventory
    • Option to clear the current inventory filter rather than create a new inventory floater when the shown item is currently filtered
    • Inventory will always show the “Received Items” folder if the inventory’s panel contents are filtered (with a non-default filter)
    • Empty system folders no longer hidden by default (Advanced > Debug setting DebugHideEmptySystemFolders set to FALSE)
    • New option to control how offered inventory is handled while marked as Do not Disturb
      • Pop up a chiclet as normal (default)
      • Auto-accept the offer
      • Auto-decline the offer.

    Notecards / Scripts / Text editors

    These see the following features added to the R9 release:

    • Recovery support for unsaved notecards (embedded items are not preserved)
    • Texture tool tips for embedded notecard items
    • Use the current selection (text, etc.) as the default search string
    • Highlighting of occurrences in the target editor when using the Search/Replace floater
    • New keyboard shortcuts to the script editor menu
      • F1 opens the LSL reference
      • Shift+F1 opens keyboard help
      • Ctrl+G opens the “Go to line” floater.

    In addition, the following behaviours have been revised:

    • When you Go To a line in a script editor, at least three lines above/below the target line will now be visible
    • Case-insensitive search is now enabled by default for notecards, scripts and text editors.

    Preferences

    As well as the updates to the Chat tab, this release sees a number of other updates in Catznip’s Preferences which form a part of ongoing work to overhaul Preferences.

    The Sound and Media tab has been completely overhauled, with new sub-tabs for volume controls and streaming, Sound Alerts, and Voice Chat.

    The Sound Alerts sub-tab panel on the revised Sound and Media tab in Preferences
    The Sound Alerts sub-tab panel on the revised Sound and Media tab in Preferences

    Continue reading “Catznip R9: the cat gets the cream”

    Lumiya 2.6.0: fine-tuning the engine for F1 performance

    lumiya-logoUpdate May 13th: Lumiya 2.6.1 is now available. This includes a fix to prevent the client crashing when rendering megaprims, improved mesh download speeds and reduced lage when walking.

    Alina Lyvette announced the arrival of the latest release of Lumiya on Friday May 9th.

    Version 2.6.0 marks the arrival of support for Fitted Mesh and some pretty impressive under-the-hood changes which greatly enhance Lumiya’s performance in the areas of memory use, bandwidth utilisation and 3D rendering – and I found the improvements really are noticeable.

    Feature Updates

    Fitted Mesh Rendering

    The Fitted Mesh support is perhaps the most visible update in terms of new features. I only carried out a quick series of tests, but found the FM demos I had from back when testing the SL Fitted Mesh viewer (I’m ashamed to say I’ve still not actually started using any mesh clothing myself…) worked just fine when rendered by Lumiya.

    Fitted Mesh on Lumiya: renders perfectly
    Fitted Mesh on Lumiya: renders perfectly

    I did experience slight issues with mesh clothing failing to render when worn, something I don’t remember occurring back when mesh support was first released. Should this happen, a quick fix seems to be hopping out of the 3D view and back again.

    Request Teleport

    Another feature update with this release is the Request Teleport option. This can be accessed by:

    • Selecting the person you wish to teleport to from your Friends list, or IM
    • Tapping the MORE option
    • Tapping Request Teleport. This opens the Request Teleport message screen where you can enter your request text (or leave blank, if you prefer). Tapping OK will close the message window and send the teleport request
    • If the request is accepted, you will receive a teleport offer, as per usual; if the request is declined, you will not receive any feedback (which is how Request Teleport is handled in the viewer and not a result of Lumiya failing to receive a notification).
    Request Teleport: now in Lumiya
    Request Teleport: now in Lumiya

    Avatar Interaction

    Lumiya 2.6.0 makes it easier to interact with nearby avatars when in 3D view by applying a long touch to the centre of an avatar. This may take a little practice, but when used, will call-up a menu allowing you to initiate an IM session with that avatar, examine them, etc.

    Using a long touch on a nearby avatar will
    Using a long touch or the Drag to Select option on a nearby avatar will allow you to ineract with them via the displayed menu bar

    If you have problems using the long touch method when selecting an avatar, don’t forget you can also use the Drag To Select option in the top left corner of the 3D view and drag that down to point to the avatar in question.

    Under-the-Hood

    The under-the-hood changes in 2.6.0 range from fixes for known crash issues through to better support for transparency in the 3D world view and new notification sounds (courtesy of Lhasa Mencur) to some really quite significant performance improvements.

    The latter include a reduced memory footprint together with much improved bandwidth usage, both of which see Lumiya operate a lot more smoothly (not that it was ever particularly clunky). Much has been done to the 3D rendering performance and management as well.Also these combined mean it should be much easier to run  Lumiya on lower-end system, and for those on high-end devices, to have more of the bells and whistles turned on. In my case, for example, these improvements make it a lot easier to run with High Quality Textures enabled by default on my Nexus 2013 HD.

    Feedback

    Lumiya has always offered tremendous value for accessing Second Life while on-the-go with a suitable Android device. Even allowing for trying to maintain compatibility with older versions of Android, Alina consistently pulls-off some impressive miracles with the client, and 2.6.0 more than demonstrates this. While the added features may seem minimal (even though mesh support represents considerable work itself), the performance improvements evident in this release are astonishing.

    Obviously, with a fairly high-end Android device running Android KitKat and a quad-core Qualcomm Snapdragon™ S4 Pro, 1.5 GHz / Adreno 320, 400 MHz combination, I stand to benefit the most from the improvements in rendering, but even so, on my old Samsung Galaxy S2 with Android 4.1 Jellybean and Dual-core 1.2 GHz Cortex-A9 / Mali-400 combination, things were still noticeably faster.

    For those who require access to OpenSim and are Android users with a decent CPU / GPU combination and a reason screen size, Lumiya stands head-and-shoulder above the rest. For those wanting mobile access to Second Life and have limited screen size, it also beats SL Go hands-down in terms of convenience of use, even if it lacks the full rendering capabilities of the latter.

    Related Links

    SL projects updates: TPV developer meeting, Friday May 9th 2014

    A TPV developer meeting took place on Friday May 9th. The core items discussed in the meeting are reported below, with timestamps in the relevant paragraphs indicating the point at they are discussed in the video embedded here. My thanks as always to North for the latter.

    SL Viewer Status

    [00:35] As noted in part one of this week’s updates report, the de facto viewer was updated on Tuesday May 5th with the promotion of the Interest List viewer (version 3.7.7.289461). The viewer contains what’s being referred to as a number of “non-trivial” merges, as the team responsible for the viewer took the opportunity to clean-up “a lot of old and unpleasant code”, and this “touched on a lot of things”. As such, it may be a while before this code filters into all TPVs.

    [01:27] On Thursday May 8th, the SL Share-2 RC updated to version 3.7.8.289775 (download and release notes). This viewer includes the ability to upload Tweets and snapshots to Twitter and / or snapshots to Flickr, and to use pre-set filters on images being uploaded to either service and / or to Facebook, and to create your own filters.

    The remaining viewers in the release channel (Sunshine / AIS and the Maintenance viewer) and the Zipper project viewer will be updated in week 20.

    [02:11] There are two or three other viewers which are expected to be appearing in the near future. One of these contains a number of Snowstorm contributions (such as STORM-1831, currently awaiting two minor bug fixes), Baker Linden’s group ban work should be generating a viewer soon (see below for more), and there is a viewer which contains a series of memory leak fixes which is currently in QA.

    Group Ban List

    [03:40] Baker reports he has two “major” bugs and three or four “minor” bugs still to deal with; however, it doesn’t appear is if these are going to stop the viewer arriving as a project viewer. As noted in part two of this week’s report, the repository for the code has already been made public, and TPVs have been invited to pull code from the repository if they’re in a position to do so (the group ban viewer is built to LL’s 3.7.8 code base).

    Obviously, and again as noted in part two of this report, the code will not be usable on the main grid until such time as the server-side changes have been deployed, and this isn’t likely to happen for a couple of weeks or so, so don’t expect it to be appearing in release versions of any viewers for a while.

    The server-side code is available on a channel on Aditi (DRTSIM-234 14.05.05.289712 – which includes the Morris region where the Server Beta meeting is held and now includes the BUG-5929 fix), and there may be a grid-wide Aditi deployment of the server-side code. If this is the case, it will likely be confirmed via a Server Beta group meeting.

    One aspect that has not been looked into as yet is ensuring that when someone is ejected / banned from a group, they are also ejected from group chat. Currently, due to the way the back-end services operate, if someone has the group chat window open when they are ejected from a group, they can continue to chat / spam into the group chat up until the point where they close the window. Commenting on this, and given that Simon Linden has been working on the chat service, Baker has indicated that he’ll look into things with Simon and see if this problem cannot be resolved.

    Leap Motion Integration

    [12:18] In November 2013, Leap Motion approached Linden Lab about integrating their gesture controller into the view.  Due to the amount of work the Lab had on its plate, the work was handed-off to TPV, with members of the Firestorm team working with Leap Motion to get things integrated.

    Since that time, the work has been subject to a number of hiccups – including the need for Leap Motion to update their software. As it stands, the work is slightly stalled as the Firestorm team no longer have the resources needed for the work, so a call has gone out to TPV developers who are willing to take a lead in bringing this work to fruition.

    Third-party Library Work (Webkit et al)

    [26:14] Monty Linden is continuing his work in cleaning-up the third-party libraries used within the viewer build process. This work has been focused of late on Webkit, which is used for a number of tasks, such as powering the built-in web browser and to display profiles, and is used with Media on a Prim (MOAP) and many in-world televisions. However, Monty has more recently been working on the COLLADA DOM library as a means of “taking a break” from Webkit. He describes this as the “last big one” on his list.

    Despite still having to finish-up with Webkit, Monty is already in a position of being able to use a windows version of the viewer which makes use of his updated and cleaned-up libraries, although he emphasises the work is not ready to enter prime-time use as yet.

    Continue reading “SL projects updates: TPV developer meeting, Friday May 9th 2014”

    SL projects updates 19/2: group bans, miscellaneous items

    Server Deployments Week 19 – Recap

    There were no server deployments!

    Group Chat

    As noted in part one of this report, the group chat updates were deployed to the back-end chat servers on Monday May 5th. The changes to group chat should be subtle, and may not be observable to many. Additional analytics are included in the code, which should provide further pointers on what else may need addressing going forward.

    Group Ban Lists

    Obligatory Baker Linden shot :)
    Obligatory Baker Linden shot 🙂

    Baker Linden’s work on adding the ability to ban troublemakers / spammers, etc., from groups with open enrollment is now getting relatively close to becoming available.

    Baker has recently closed what is believed to be the last of the server-side issues, BUG-5929. This meant that if the name of the group owner was accidentally added to a list of people to be banned from a group, the ban process would fail, with no-one in the list either being added to the ban list or banned from the group (although other than the group owner, anyone selected for banning would be ejected from the group).

    The expected behaviour would be for all those named (other than the group owner) to be added to the ban list, with those who were already members of the group also being ejected and banned. Baker’s fix is to ensure this is now the case, and it should be available shortly on Aditi for testing (channel DRTSIM-234 14.05.05.289712 – which includes the Morris region where the Server Beta meeting is held).

    Viewer-wise, a project viewer with the new code is expected to appear very shortly (it was running through the build process during the Server Beta meeting on Thursday May 8th). This should be added to the Alternative Viewers wiki page when available. The repository for the code has now been made public, so TPVs can start looking at it – but again, given the status of the viewer as a project release, don’t expect the code to immediately start popping-up in TPVs.

    HOWEVER, it may be a while before the new group ban functionality can be used on the main grid, as there is an initial back-end host code update required prior to anything being deployed to any simulator channel. According to Maestro Linden, the Lab will likely want to run those updates for a week to check for any unexpected regressions prior to putting any simulators on a group ban RC.

    In the meantime, the group ban capabilities can be tested on Aditi either using the project viewer (when available) or the existing test viewer.

    Other Items

    “Welcome to the Hotel California” – BUG-5961

    Trying to leave a group with a large membership list can prove problematic if the memebrship list takes time to load
    Trying to leave a group with a large membership list can prove problematic if the membership list takes time to load

    An old issue recently came to light once more with BUG-5961 (originally entitled “I cannot leave a group that I joined”, but with the description subsequently updated by Maestro to “Viewer attempts full fetch of member list before allowing user to leave group” in order to better reflect his findings following investigation).

    It’s not actually clear if this is a one-off situation, or possibly more widespread, as the bug report is specific to the group “Akeyo”.

    However, Maestro’s thinking is that the problem is linked to the download of the membership list, which even with the Group Services fixes introduced in late 2012, can still take time to complete with some larger groups.

    Essentially, you cannot leave a group until the membership list has been loaded, as the viewer must check to ensure that when leaving, you’re not the last owner of the group. Should the membership list take time to download, this can lead to a temptation to click the Leave button again, causing the download to start-over, resulting in the list not loading, thus preventing you  from leaving it (hence the Hotel California quip, which I admit I stole from Maestro!).

    The Lab is looking into this issue further, although it may be a while before any resolution is found. One workaround in the meantime is to run a client such as Radegast, which handles groups slightly differently to the viewer, and use that to leave the offending group.

    Restore to Last Position

    Restore to Last position was a popular feature which allowed anyone to take content to inventory and then re-rez it later at the same position. While there were issues with the capability (such as using it to rez an object in a different region, with a different topology to the one where it was originally taken back to inventory resutling in an object to “vanish”, as it rezzed underground or something), it was broadly seen as beneficial.

    However, it was also subject to exploitation, which is why the server-side behaviour for it was changed by the Lab some time ago such that the function will only work if you have rezzing rights at 0,0,0 in a region. If you do not, any attempt to use Restore to Last Position will fail with a notification that you don’t have the required rezzing permissions. The viewer-side code for the capability was also removed from the SL viewer, although TPVs have retained it.

    A further issue with the capability has been with No Copy objects. If Restore to Last Position is used on these when the user doesn’t have rezzing rights at 0.0.0 in a region, they not only fail to rez – they also vanish from inventory, requiring a relog in order to get them listed again.

    However, BUG-5955 “Restore to Last Position (used only by TPVs) causes content loss” highlights a problem where at least one type of No Copy object can be permanently lost from inventory if Restore to Last Position is used even in a region where the user has rezzing permissions at 0,0,0. Not even a subsequent re-log sees the item reappear in inventory.

    Given the unpredictable nature of Restore to Last Position, the Lab is considering removing or blocking all support for it viewer-side until such time as a fix for issues can be found / it can be made to work more predictably in all cases.

    As an alternative, and given the function’s popularity, it has been suggested a restriction preventing its use on No Copy objects should be implemented. The Lab may be taking this under consideration. This is the option Firestorm have indicated that they intend to implement with their upcoming release (which may as a result be delayed until the code is implemented and tested).

    “Project interesting” viewer reaches release status

    On Tuesday May 6th, the Lab announced the “Project Interesting”  viewer has finally made it to a release status with the arrival of version 3.7.7.289461 of the viewer as the de facto release version.

    Available since mid-November 2013 as a release candidate viewer, this release represents the last stage in the current work on improving interest list functionality, the code which controls how the data relating to your in-world view is handled by both the server and the viewer. This includes what is sent to the viewer, what is retained by the viewer for reuse and things like the order in which objects are rendered when you log-in to SL or teleport (so that the “interesting” objects which are closer to you or which are particularly large should render first, for example).

    To mark the viewer’s formal release, the Lab has re-issued a video by Torley Linden, originally released when the viewer first made it to release candidate status, which neatly encapsulates the key updates contained within the viewer, and how they relate to server-side changes which have already been implemented.

    Related links

    SL projects updates 19/1: SL viewer, group chat and miscellaneous things

    Server Deployments

    There are no scheduled simulator deployments this week to either the Main or RC channels, and so no associated rolling restarted expected.

    SL Viewer

    The Interest List RC finally made it to the de facto release viewer with its promotion on Tuesday May 5th (version 3.7.7.289461). This leaves just three RC viewer in the release channel at present: SL Share 2 project viewer version 3.7.7.289497; Sunshine / AIS v3 RC  version 3.7.7.289441; and the Maintenance RC viewer version 3.7.7.289405. Please refer to my Current Viewer Release page for up-to-date information on all viewer releases.

     Group Chat

    Simon Linden’s optimisation work for group chat was deployed across all of the back-end chat servers on Monday May 5th. while these should see some improvements in group chat (particularly in sending / receiving chat and moving between regions), Simon does warn that these optimisations are not expected to “fix” all of group chat. However, he will continue to work on further improvements as well.

    Other Items

    New Starter Avatars

    Ebbe Altberg used one of the upcoming new starter avatars at the VWBPE conference in April (image: Strawberry Singh)
    Ebbe Altberg used one of the upcoming new starter avatars at the VWBPE conference in April (image: Strawberry Singh)

    During his appearance at the VWBPE conference in mid-April, Ebbe Altberg appeared using one of the new starter avatars. At the time he did, it was hinted that the new avatars would be appearing relatively imminently. However, almost a month on and they have yet to officially appear, although there is some speculation they’ll do so in May.

    these new avatars are said to take advantage of some of the latest features in SL, which is being taken to mean that some / all are full or partial mesh. This has in turn raised questions as to whether it is wise giving new starters full mesh avatars, given they may not work with freebie items often offered to or picked-up by new starters.

    LSL Functions for Materials

    While there is no confirmation any work is being carried out on this (except, as Simon quipped, “perhaps in a parallel universe or something”), the Lab is still sounding out how and where such calls would likely be used, and the frequency with which such calls would be made.

    The option of having scripted control of materials has been debated often, and still remains a desired item among builders and scripters. However, some of the concerns still remain – notably, have such capabilities might end up causing performance issues, deliberately or otherwise. Much has already been written on how rapid map flipping on multiple objects could deliberately impact performance and potentially result in viewer crashes, plus there are already animated mesh elements available which can also have a significant impact on viewer performance (some types of animated mesh tail can reportedly overload a viewer on a 32-bit system with out-of-memory errors in a matter of seconds), so there are also concerns that were this to be combined with the ability to change textures via script, they could (even unintentionally) have further dramatic impacts on performance.

    One way around this would be to throttle the rate at which material maps can be changed via scripted command. What is interesting for the moment is that the Lab appears to have not completely closed the door on scripted control of materials, but is considering options and informally seeking feedback on potential use cases.