Safarying

Thursday, May 11, 2017

Safari: Art and Science

          On average, how many minutes a week do you spend thinking about the Viewer you use to access Opensim, or SL?  I bet it's not many. Like air, or legs, we tend to think about the viewer only when there's something wrong with it, and rarely remember how much we owe to this free resource. But this week, the Safari went to XMIR grid to learn more about one such Viewer, Kokua. We followed up the tech talk with Gavin Hird by going over to Metropolis Grid to met up with Zonja Capalini and Ludmilla Writer, on Condensation Land, you can read about that in the next post. How to get to the places mentioned in this blog? The HG Address is given at the end of the post.
Gavin Hird
Pathfinder  Lester: *^applause!^*
Gavin Hird: Welcome everyone, I hope you are comfortably seated? "
Kokua OS - a viewer for OpenSim"
Wizardoz Chrome: (yes thanks :) )
Aime Socrates: large seats here... you turned me to a small creature
Wizardoz Chrome: ahhhh now i see a micro rabbit :D
Selby Evans: OpenSim needs a viewer
George Equus: Specialized to see small rabbits?
Gavin Hird: How many of you have heard about Imprudence?
Pathfinder Lester  raises hand
George Equus: me
Gavin: Did you use it?
Pathfinder.Lester: yes
Arielle Delamerlibre: yes,  loved it for a time
Cherry Manga: yes
Selby Evans: I used imprudence
Aime the tiny rabbit, sitting next to Pathfinder
Aime Socrates : of course! imprudence, was the best before the mesh mess
snowbody Cortes: yup
Bill Blight: Was around before that so yayyy Imprudence ..
Gavin: Since the day I found out about it; for me it was THE viewer to use in SecondLife.  It probably was the first viewer I used to access OpenSim too.  My OSGrid account is from December 26, 2008. Imprudence was launched just a few days before on December 15.
Cherry Manga: wmas gift
Gavin Hird: So that's how it all started
Pathfinder Lester: it was my first viewer for Opensim too
Gavin: There were two precursors for Imprudence to be created.  First the library that reverse engineered the protocol that Linden Lab used for communication between the viewer and their servers. Second that Linden Lab open sourced their viewer code in 2007. These were the two main events that made what we now call third party viewers possible.
Aime Socrates: may I ask a silly question? Why third part means ?
Gavin Hird: it means third party to the Linden viewer. From the introduction of Imprudence it evolved over the years picking up both features from the official Linden viewer, but also adding a number of features unique to it. It had what we now call the version 1 user interface with Pie menus, and multiple floaters, so you could have many groups open at the same time as an example.: The Linden lab introduced their version 2 viewer which was a total depart from the version 1 experience. In addition they added the simplified mode in an attempt to cater to first time users The simplified mode was rather short-lived because it was too limited in scope. So limited you had to switch to the full viewer mode to do anything sensible with it. It is a paradox that one of the biggest cries from some OpenSim groups is a simplified viewer that can run in a web browser.  I can say a lot about that, but not now...


Gavin Hird: The version 2 viewer was relatively fast replaced by version 3 where the simplified mode had been removed, and it was also more functional and not so confusing  – version 2 was a mess! Version 3 also dumped the Pie menu completely  The introduction of these Linden viewers cause a mounting pressure on the third party viewers to deliver on the new user interface.  While long lived viewers such as the Cool VL viewer and Singularity are more or less pure play version 1 interfaces,  Kokua took a different route and released the first version in April 2013, closely mimicking the Linden 3.5 version viewer. Imprudence continued with releases on the version 1 interface, but increasingly it started lacking features... The very last release of Imprudence happened in May 2013.
Pathfinder Lester: PIE MENUS 4EVAR!
Bill Blight: mmmmm pie
Aime Socrates: cherry or apple pie
Cherry Manga: chocolate
Gavin Hird: pie menus are effective if they are shallow but we have 6 levels deep pie menus too much clicking to get there
snowbody Cortes: RIP Imprudence
Gavin Hird: I actually logged on with it today so it still runs
Bill Blight: Long Live Kokua
Gavin Hird: but no mesh so the experience is a bit disappointing  The new follow on to Imprudence, Kokua had a number of goals as you can see on the chart. Most of these are as valid today as they were in 2012.  For the original Imprudence team, basing a viewer on the Linden version 3 interface and code was too much to swallow, and the original creator Armin Weathermax withdrew from the development team entirely. Actually most of the original developers left.  Armin later joined the Firestorm team where he reused much of the code for connecting to OpenSim in their viewer.  There has later been additions of some Firestorm code to Kokua, but 95% of the code is Linden code.  This is the case for all version 3 user interface viewers.  Singularity and the Cool VL viewer probably has less of it. Singularity maybe least, but that also means there are big problems, updating it to connect to and support new SecondLife functionality these days.  There as not been a macOS Singularity release since Sept 4, 2014 for example. After the initial release of Kokua it chugged along nicely with releases more or less in sync with the Linden releases while restoring and adding functionality for use with OpenSim. 
Juliette.SurrealDreaming: Hi Cherry, hello everyone
Cherry Manga: Hi Art, Juliette and Freaky
Gavin: When Linden Lab released a code bomb on everyone! This went on nicely til January 2016... MAJOR changes ahead!  It was not even pre-announced but just sprung on everyone in the release noted of a viewer version 4 development build.
Thirza Ember: those naughty lindens and their code bombs! who knew!
Gavin: As you can see from this and the next chart, the implications were rather extensive as it tapped into every nook and cranny of the internal workings of the viewer. Particularly the code that handles communication between the viewer and servers was touched. It turned out they had been working in silent on this for about 2 years, and the initial bomb was followed up with rapid release of other new functionality that almost completely overwhelmed the developers.  For us the impact was mixed. 
Thirza Ember: what is that Experience thing? Does anyone use that?
Gavin Hird: Nobody in OpenSim does,  it has no server support.
Freaky Tech: SL only, as of now
Thirza Ember: I tried to use it in SL, I couldn't understand how it works
Selby Evans: I have ignored the Experience thing.  Barely know what is does.
Gavin Hird: it is a little bit complicated Since we had such a large amount of Linden code in the viewer already, the changes were relatively easy to integrate into the viewer for compatibility with SecondLife. 
 The impact on OpenSim support was more dramatic as many of the changes they had done on the server side did not exist in OpenSim, and in many cases did not even make sense to implement here.  As we took on more and more of the code changes, we realized that the best way forward would be to split the code base into one  supporting OpenSim and one Supporting SecondLife.  I started the initial work to split the code in March 2016, and by late September the same year we released two viewers each focused on the two environments. One was simply just called Kokua and the other Kokua OS. So Kokua OS was born with a number of initial goals for it.
Freaky Tech: could anybody explain what jelly dolls are for?
Juliette SurrealDreaming: jelly dolls are for lag - complexity impact
Freaky Tech: but by what means
Cherry Manga: jelly dolls are for high complexity avatars
Freaky Tech: how do those do that
Gavin Hird: it is actually ameans for Linden to reduce load on their servers
Cherry Manga: if you don't push the limitation, you'll see the avatars in purple, green, orange "jellies"
Selby Evans: Jelly dolls let you cut the load on your viewer and so avoid problems
Bill Blight: Jelly dolls are a pseudo avatar representation that turns overly complex avatars into single color blobs for people with their graphics set low. By calculating the avatar graphics complexity ..
Cherry Manga: you can see that on FS (as well as bento)... Bento works fine here in Opensim.
Thirza Ember: i thought it was a sex toy
Juliette SurrealDreaming: lol Thirza!
Thirza Ember: sorry Gavin, please go on
Gavin: You probably understand that undertaking such a cleanup is hard to combine with adding new functionality. Even removing the SecondLife specific functions and code is harder than it sounds because it has grown organically over a number of years, and untangling it is often very hard. Bits and pieces here and there may make or break other parts that seem unrelated.
Freaky Tech: grown organically is the friendly term for code chaos
Gavin: If you have used Kokua OS you will see there still exist a lot of references to SecondLife and Linden web pages and support functions. Most OpenSim grids don't even have these, and there is not much of a framework in OpenSim to replace them with. One good example is purchase of currency. The rapid code drops I have referred to has also added support for a generation 2 avatar rig to SecondLife that requires server support that don't exist in OpenSim.  Likewise OpenSim has support for VAR regions and Hypergrid that don't have any support in the Linden code, so that has been : shoehorned on top of it.  Finally many third party viewers have support for Marine Kelly's Restrained Life Viewer (RLV) functionality, but businesses and educational organizations don't want to touch a viewer with such support built in. 
Selby Evans: I like business viewer.
Gavin: We therefore have two branches with and without such support.  Maintaining RLV support is actually a bit of a PITA
Thirza Ember whispers: what is PITA
Bill Blight: Pain In The Ass
Gavin Hird: that code stomps everywhere :-)) ... do people use RLV a lot in openSim?
Freaky Tech: I know groups that do for general RP use, that is why it gets called Restrained Life Api and not anymore its original naming
Aime Socrates: donno what it is :)
Cherry Manga: to strip your bunny ears for example, Aime
Arielle Delamerlibre: ^^
Thirza Ember: I need a Restrained IM viewer
Gavin Hird: you can seriously abuse an avatar with it
Gavin: Our goal is, as for the initial Imprudence viewer, to support 3 major operating systems for the most recent versions.  This is getting more of a challenge, as there to an increasing degree is less commonality between Linux, macOS and Windows. In addition both Apple and Microsoft insist on code signing applications before they are even allowed to run on a standard system. In particular the macOS support in the Linden code has been dramatically bad, where sections of it has not been changed since 2003.  Since 2003, Apple has moved their hardware from PowerPC processors to Intel, launched the iPhone and turned out notion of a phone upside down forever. They have launched 10 versions of iOS and 9 major versions of macOS since 2003, which of course impacts how stuff is developed. Because of that, when macOS 10.11 was launched 2 1/2 years ago, the macOS version barely ran at all, and you had to use significantly outdated versions of Xcode to get it compiled. In order to ease the modernisation of the macOS version, the code supporting it has been moved to a separate repository and all. Windows and Linux specific code has been stripped out of it. 
Gavin: Perhaps the biggest challenge is at the moment we are only 2 developers working on the viewer.  Nicky Perian and I... Nicky more or less does all the SecondLife integration, testing and builds. I do the Kokua OS bit.  Apart from the complexity of supporting many operating systems and versions combined with the often poor documentation of OpenSim,
Gavin: there is another challenge, and it is of a different nature. OpenSim users more or less takes the viewers they use for granted. Almost like something they are entitled to.
Freaky Tech: took me quite some time to get through the whole mess
Arielle Delamerlibre: hm and you ever have to run behind the changes second life make?
Gavin Hird: Do you feel people take the viewers for granted?
Juliette SurrealDreaming: well i think we rely on the viewers, so why would we take them for granted?
Arielle Delamerlibre: the user will take viewers for granted  they dont think about it
Gavin Hird: the fact is that the code base for the viewer are significantly large for a typical build setup, there are close to 25000 files involved so the work of maintaining them is very big  just to make them run on new versions of Windows for instance is a struggle
Bill Blight: I think people take the devs for granted but not the viewers, I think they tend to forget the complexity of bringing a viewer to the table ..
Juliette SurrealDreaming: exactly Bill, we need to have a Dev Pamper Day
Freaky Tech: I went through the viewer code as well to extract important facts on the viewer - simulator communication... a lot of inheritance in the viewers
Bill Blight:  Like the  .. "Where's my Suitcase in Kokua" chant ... I love kokua but I just can't use it due to the suitcase, but don't scream about it .. (i use kokua on my home grid for building and , I think it presents the world much better)
Gavin Hird: we have released 2 versions of Kokua OS ...I would call them maintenance versions The suitcase is implemented correct in Kokua but some major grids don't implement it as it should be ... they probably would have to have a week downtime to convert their database for it to work as it should :-)
Thirza Ember: i'm n kokua with my osgrid avie, so no worries about suitcases  *omg... suddenly wondering if I am naked*
Freaky Tech: there are grids that do not implement suitcase at all, with all the problems when viewers request unnecessary folders on hg locations
George Equus: Glad I don't have the Suitcase any more, like having two Inventories, made a royal mess of it for me  :((
Bill Blight: Suitcase implementation seems to make HG travel much faster ..
 Freaky Tech: does not... it dumps an awful lot of messages in every hg locations log... I have analyzed too many logs of that kind
Bill Blight: I'd argue that point freaky , but at a later date ..
Artwork at the Conference center on XMIR
Gavin Hird: The biggest activity now is to be able to build 64-bit viewers for all operating systems,: which is a major undertaking,: again Linden is doing the bulk of the work but: there is a significant portion on our part too. Linden is about to release new version of the viewer, after which they will turn off their old infrastructure, meaning virtually all old viewers will no longer be able to connect to Second Life, at that point we will start removing SL code from Kokau OS
Aime Socrates: yes !
Gavin Hird: only viewers made the last 3 months or less will work
Juliette SurrealDreaming: that's huge
Gavin Hird: in addition they will change voice, there is a gaping security hole in the current voice server they use
Freaky Tech: that will hit all linux users,  it will break linux voice functionality, the moment vivox updates  so voice may stop working in all of OpenSim because of that
Xirana Oximoxi: I hate too much changes :)
Gavin Hird: to plug the hole an completely new client is out, and there is no Linux version of it
Cherry Manga: cool that we won't have to  follow LL and the devs will be free to add their own option, such as bunny bones after bento :)
Mal Burns: media is a problem these days - most OS viewers still using SLmedia now retired, just firestorm i think using chrome.vlc backbone - means we cant rely of all OS visitors being identically equipped to view in viewer
Arielle Delamerlibre: cool? wich viewer will work then in OpenSim... is he meaning of opensim so big for vivox?
Freaky Tech: I have to plan on alternative handling myself
Gavin Hird: unless vivox comes with a new opensim version
Mal Burns: vivox is actual voice - that should be OK so long as grids with free version dont excveed free capacity
Gavin Hird: most existing viewers will work in OpenSim  but they will not work in Second Life
Thirza Ember: we can ask them: nicely
Freaky Tech: I do not think so, only few paying customers
Arielle Delamerlibre: yeah thirza dress nice and ask
Thirza Ember: I can do that, I don't mind
Arielle Delamerlibre: *giggles I know
Xirana Oximoxi: when you get used to voice it is tiring to type all time ...
Mal Burns: darn - i don't do text - am voice person
Gavin Hird: old voice plugin for the viewer and server will stop working: when vivox switch their servers
Freaky Tech: exactly that moments needs a replacement SIP server for example
Arielle. Delamerlibre: grids can run a teamspeak server with region rooms maybe
Conference building on XMIR
Thirza Ember: I don't want to interrupt your flow... but I want to know more about the Kokua developers.. are they people who are using opensim, like you? with their own grids?
Gavin Hird: I have this grid to test it on, Nicky is usually to find on 3rd rock, but he is mostly dealing with the SL version now because of the enormous amount of changes. As you see from the chart, there is progress - we have done two releases.   Localization means translation of all dialogs and menus, this is hard unless you know the language pretty well, I manage to translate to German and maybe French, but that is where it ends.. there is a pretty hefty translation file for each of the languages: there is support for 8 different ones, here are our repositories: https://bitbucket.org/dayturn/kokua-opensim
https://bitbucket.org/dayturn/dayturn
http://blog.kokuaviewer.org
http://team-purple.sourceforge.net/wiki/Kokua/Downloads
https://sourceforge.net/projects/kokua.team-purple.p/files/Kokua-OS/

Gavin Hird: you can copy them from chat now too: everything is in the repositories ...there is a blog and download page, plus there are almost daily builds in the last sourceforge link not every day, but many times per week
snowbody Cortes: hg clone in progress ;)
Thirza Ember: A personal question - how did you get involved in this project and why did it appeal to you?
Gavin Hird: that was in 2015, because Nicky asked for help to build the macOS version  because he was no longer able to build it with the tools he had.
Thirza Ember: You have a MAC, Gavin?? Are people in Scandinavia allowed to have computers that are not Linux?I did not know that!
Juliette.SurrealDreaming: in your opinion what is THE best viewer to use for OS?  right now?: i'm on pc windows
Cherry Manga: (depends on your needs Juliette)
Juliette SurrealDreaming: lol.. oh too many needs Cherry :P
Freaky Tech: and for whatever reason on your system's drivers
Arielle Delamerlibre: and what do you think is the  'must have' Argument for Kokua viewer?
Gavin Hird: I would say KokuaOS of course, but also have a look at the Cool VL viewer, Henry does good things with it
Juliette SurrealDreaming: ok great, thank you
Flidais Merlin: what would make me change from Firestorm?
Gavin Hird: It is a personal preference I suppose, at the end of the day.
From there, the conversation took a turn and soon we were talking lag...
Arielle Delamerlibre: overwhelmed browser then?
Gavin Hird: and what renders the browser content? the exact same GPU as renders the viewer
Freaky Tech: try to load some of other regions in browser, they are easily overwhelmed
Gavin Hird: but with extra overhead
Selby Evans: html5  and webGL
Gavin Hird: and what renders html5 and webGL?  the same GPU but with extra overhead
Freaky Tech: WebGL ends up on OpenGL harness which ends up on the graphics card: a lot for security and so on is there on the browser...: not to have one page access another
Bill Blight: It is a misnomer that there is no viewer, the Browser becomes the viewer, and it still using the backend hardware, drivers and architecture, just addressing it differently and with more limitations ..
Selby Evans: Don't think of Web-worlds as replacing our virtual worlds -- they don't
Arielle Delamerlibre: agree selby
Gavin Hird: most of the content in the browser is now sandboxed with limited access to resources
Freaky Tech: Selby but it has been advertised that way quite commonly, and now it is said to be not?
Bill Blight: Yeah I think a web viewer is great, for introducing people to the worlds, and getting their "feet wet" .. Then the need to move on to more powerful tools ..
Arielle Delamerlibre: good idea Bill
Selby Evans: I say not -- and I am in a web-world everyday
Freaky Tech: I am also thinking to depart the close relationship on LL progress

....and the it was time to move on to our second destination, on Metropolis, with Zonja Capalini and Ludmilla Writer, to talk about art. You can read about that in the next post 'It Takes Two'.
Gavin Hird: thanks for stopping by everyone
George Equus: Very good presentation
Selby Evans: useful info, bye all...
Arielle Delamerlibre: thank you Gavin it was very interesting
snowbody Cortes: ty so much Gavin
Flidais Merlin: thanks for the presentation Gavin
Mal Burns: Tks Gavin
Bill Blight: I love me some Kokua ...  I really do ..
George Equus: Might just tip me over the edge and try a new viewer  :)
Gavin Hird: you sure can, but also follow the blog and other announcements we make
Freaky Tech: If you like Gavin, I stay a while to offer you a chat,  I am adding quite a few capabilities that are not existing on OS as of now, AISv3 I found out holds an interesting solution to solve one particular nasty problem on HG stuff,: that relaying through sim is quite commonly picking up lots of traffic
Gavin Hird: please do Freaky
   

HG Addresss:
XMIR grid conference center:       grid.xmir.org:8002:barcola 
(this is a private grid and may not be accessible at all times)








3 comments:

  1. I am sorry that I had to miss this safari.Lots of good information. Thanks for posting so much of it

    ReplyDelete
  2. Thanks for visiting, and for this wonderful log and photos :)

    ReplyDelete
  3. It was almost like I was actually there reading over the blog! Thanks! sorry I missed last Wed... was ill. I'll definitely be at 3rd Anniversary Party, so looking forward to it! Congratulations! Big HUGS ♥

    ReplyDelete