To the best of my knowledge, this viewer was the result of over a year and a half of coding and testing. The overall layout was designed by Big Spaceship, the company that Linden Lab has outsourced their Web redesign — and the in-world viewer too. It’s not surprising, therefore, that the new viewer looks slightly like a web browser 🙂

As with all changes released by Linden Lab, this will split users in the usual two groups: the ones that are immediately fascinated by the new look, and the ones that will hate it with bitterness to the point of despair. There is no accounting for taste; expect many old-timers to write long posts about all the things they hate about SL 2.0. And, of course, for many, the hype and expectation was so great that they will feel disappointed. They might expect much more and blame LL for falling short on expectations. Again, this kind of reaction is unavoidable.

There will be hordes loving the new viewer, and furiously attacking the nay-sayers and the old-timers publicly on forums, blogs, and in-world events. There will be Emerald die-hard fanatics that will simply refuse to even consider downloading the new viewer. Even though the 1.X generation of viewers will be discontinued when 2.1 comes out (due in the summer), a large proportion of residents will simply refuse to learn how to use the new viewer and continue to use the old ones. I’m quite sure that the next few months will introduce heavy flame wars all over the SLogosphere, and we ought to be ready for it.

Why? Just because the new SL 2.0 viewer is so different. All the features of 1.X are there, and a lot of new ones have been scattered around the new user interface, but it requires relearning. It’s like someone finally switching from Windows to Mac OS X: it works pretty much in the same way, and you can do everything on a Mac that you can do on Windows, but the interface is utterly different. Even the argument that “it is much more logical, rational, and user-friendly” has failed to move more people to Mac OS X, so it’s naive to think that these very same arguments will convince every die-hard SL 1.X lover to switch to 2.0.

Ultimately, however, they won’t have a choice (at least until the released open source code gets incorporated on the third-party viewers, something that will take some time). And here’s why.

Goodbye invisiprims!

If we downplay the issue of the completely revamped user interface (more on that later), SL 2.0 actually just introduces two new technologies (a third one is expected to be released with SL 2.1, which will probably happen around the summer or so). Both address the way content is created in SL, although they’re quite different.

Eons ago, you could upload a fully transparent texture to your skin, and your avatar would disappear. Why was that a good idea? Since the avatar mesh is fixed (even though you can deform it, you cannot easily create a non-human avatar), this would allow avatar creators to simply “delete” the avatar mesh and work with attachments instead to create the shape you wished. This, of course, allowed invisible avatars to move around, which was a source of griefing, so not only LL made that a bannable offence, but they also changed the viewer not to render avatars invisible.

Soon, however, someone (allegedly Beatfox Xevious) found out a neat trick. A special, undocumented kind of texture could be programatically applied to a prim and render it not only transparent, but invisible (from the perspective of the renderer), and, when attached to an avatar, it would “delete” a part of its mesh and show what’s behind it. Dubbed invisiprims, these “magic prims” would not only be invisible, but render things behind them invisible as well. As we all know, these are invaluable for content creators to get properly shaped primmed/sculptied shoes (because Linden avatars have awful feet!), as well as allowing for some very creative non-human avatars to be created. Since invisiprims are not “perfect”, in the sense that they will behave strangely with alpha’ed textures showing behind them, the illusion of invisibility is not 100% accurate. It’s good enough for most purposes, though; while at the same time it doesn’t allow 100% invisible avatars, which apparently was enough for LL to allow them to exist. Invisiprims are, to a degree, slightly similar to the chameleon suit of the Predator movie series: they seem to “bend light” in a way that it appears to be invisible, but you can still notice that there is something there.

With SL 2.0, LL gave up on trying to prevent people from creating invisible avatars. I guess that the reasoning is that griefing happens nevertheless; and since invisiprims are useful, but not perfect, LL opted instead for creating a new “alpha layer” for avatars, where you can selectively “edit out” whatever parts of your avatar mesh you don’t wish to see… or make them slightly translucent instead.

Here is an image of myself without the alpha layer:

And here with a fully transparent avatar mesh:

That was easy and fun to do! 🙂

So what this mostly means is that content creators — think shoe designers and non-human avatar creators, and possibly even hair stylists — will very quickly get rid of the nasty invisiprims and just adopt this new technique. Just edit out our feet and you can fit any shoe to it 🙂 No more fiddling with special sizes or shapes. And, more important than that, this technique with the alpha layer will really work on top of every other alpha’ed texture. No more Predator-like shoes!

Just for this feature, LL will probably push a lot of new users to SL 2.0, as shoe designers all over the place are very likely starting to play around with their next-generation shoes, and require residents to use SL 2.0 to be able to use the new shoes. I can imagine designers to be even more excited than me 🙂

Linden Lab also added another layer for tattoos. This was something asked for years. It’s not just because of tattoos — it’s mostly for the ability to mix’n’match skins, tattoos, and makeup, which is hard to do today. Usually, skin creators will give you different choices, but you can’t mix’n’match them all; also, tattoos would have to be moved to a different layer (and hope that your favourite clothes designer offers you outfits on different layers too, so you can wear tattoos and your clothes). The new tattoo layer will simplify everything. While not so drastic as the alpha layer in terms of new impact, it means that rather a lot more choices will become available very quickly.

Both changes are interesting because they will work on 1.X viewers too. The wearer will need to use SL 2.0, but everybody around them with 1.X or third-party viewers will see the avatar properly “baked”. This will mean that you will be able to become the envy of the next meeting or party you go to, showing off new content, and just shrug away the envious looks by saying “I’m using the new viewer, that’s why I look so good”. Yes, I’m quite sure this is pretty much what LL had in mind… Another interesting side-effect is that, at least for a while, copybot-enabled malicious viewers will be unable to copy and reproduce avatars using SL 2.0 with the extra layers (granted, as the piracy arms race gets up to speed with the new code, this “protection” will be temporary). This will mean that content designers using those two new layers will, for a while, be able to sell a lot of new. redesigned content without fear of piracy. Even when copybotters will eventually figure out how to grab the whole SL 2.0 textured avatar, they will have no way to get at the individual layers.

Since the new features will be viewable by everyone, this will mean that there is little risk for content creators to heavily invest in them, as everybody will be able to see them in action. But of course the buyers will have to use SL 2.0 for being able to use them. This will push more residents to the new viewer without the fear of looking “ugly” to other residents that dislike 2.0 and don’t want to use it.

The new generation of interactive content

But of course the biggest revolution won’t come from those two avatar layers, but from the much-awaited Media On A Prim (MOAP) implementation. To give you an idea on how long we’ve waited for it, I’ll tell you a personal story. In late 2004 and early 2005, I was part of an educational project in SL which, at some point, really required information to be easily manipulated on a web server and streamed into SL. In January 2005 we contacted one person of the LL management team and explained that our project truly required HTML pages to be viewable in-world. We were told by that representative, and I quote: “This isn’t public yet, but we ought to have it working in six weeks… but don’t quote me on that” 🙂

Well, I can quote them now 🙂 It took not six weeks, but five years. Sure, we had a stop-gap solution with the µBrowser project, which displayed HTML and Javascript in-world on a static prim, using the Gecko engine (the one developed by the Mozilla Foundation and used by Firefox). While this certainly worked as a primitive way to render some Web content in-world, it wasn’t interactive. Flash was never implemented, leaving the whole range of videos out there impossible to show, and limiting us to watch QuickTime movies, which are rare to find (except on mobile applications). And worst of all, you were limited to one “media stream” per parcel, which could only be set by the parcel owner or by a complex setup of a group-deeded object.

A 12v solar panels system is the most commonly used type of portable off-grid systems and is used to power electronic items and devices that are also 12v. Such a system requires a number of things, such as a solar charge controller, an inverter, a battery bank or individual batteries, and solar PV panels.

The current implementation is short of a miracle. Goodbye Gecko, and hello WebKit — the same rendering engine that was originally behind the Linux Konqueror browser and currently powers Apple’s Safari and Google’s Chrome. It’s one of the only rendering engines that passes the very rigorous ACID3 test of standards compliance (Opera’s engine is the other one). It’s blindingly fast, too — mostly because Javascript is implemented quite differently than on older engines. It fully supports Flash. And, the most surprising feature of all that is that LL’s implementation gave us a fully interactive viewer: not only can you click on links and scroll the scrollbars, but you can fully edit text, too.

In fact, you have to test it to believe it. Even my short YouTube video above doesn’t convey the sense of wowness that you’ll get when using this for the first time!

MOAP is not tied to parcels at all, but to prim faces. So you can set any (or many!) prim faces to a web page; you can restrict the URLs that are viewable (so that residents cannot change it); and you can have multiple pages in the same parcel, all viewable and editable by all residents. MOAP doesn’t lag the sim at all — it happens client-side, and it’s as “efficient” as, say, opening multiple pages on your favourite web browser. My own tests showed that LL’s WebKit renderer is slower than, say, Safari or Chrome, but that might not be due to WebKit itself, but just the way the renderer has to place the output on a “distorted” surface via OpenGL. Then again, I might just be wildly speculating 🙂

But the real revolution will be on the complete change of the interactive content inside SL. It’s not just about the ability to put web pages and Flash videos everywhere — a boon to educators, corporate meetings, and any kind of virtual presence that requires dynamic information to be displayed. It’s even more than that. All of a sudden, complex prim-based interfaces, for HUDs or interactive in-world devices, will disappear overnight. These interfaces are very hard to design properly, and even harder to debug; only a handful of talented programmers (which also have to double as designers!) in SL are really good at doing this kind of devices, and there is simply too much that cannot be done — like the ability to properly present dynamic text in-world (or on a HUD).

All these will be replaced by MOAP. Better than that: with proper web design, you can create HUDs that are really virtually undistiguishable from the UI (more and more parts of the viewer’s UI are HTML anyway). The font used on the new viewer is free and open source, so everybody will be allowed to use it and display pages that look exactly like an UI “extension”. Some of the most complex interactive elements that have driven programmers to despair now become a child’s play — like the Twitter-on-a-HUD shown on the picture, which took me all of 5 minutes (most of it spent in logging in!), but which is fully functional and allows me to post my tweets immediately by just clicking on the input box and typing away!

Now imagine all the lovely HUDs that have driven you to despair. I’m thinking of the most complex ones I’ve encountered, like Animation Overriders, or fitting my lovely BAX boots, or configuring Francis Chung’s series of fantastic vehicles. Not to mention the huge metaHUD from metaLife. All these will just take a good webdesigner, some clever Javascript programming, and a back-end server. Goodbye versioning — just send users a new webpage when you’re ready to update the HUD. Goodbye weeks after weeks positioning prims that pop up, slide up and down, disappear never to return, until your HUD is fully debugged. You just use standard web development skills and tools to get the page just right.

But in-world objects will naturally also benefit from MOAP. Games and interactive infodisplays are the obvious target, but just think of the possibilities of using them for in-world vendors, and for play this games is better to use the best gaming mouse you can purchase online. These days, most vendors are just single prims (because you need to have a lot of them!) pasted on a wall which contain the item for sale. Since you can directly buy content from a prim, this saves scripts (and lags far less than “multivendors”), even though the only way to track down sales is via the web-based Dashboard provided by LL. But the worst thing is that they expose content for the more sophisticated copybotters — these can grab content (at least clothes and skins) directly from the inside of single-prim vendors.

Now replace your vendor with a web page. It can show not only pictures of your clothes, but allow interactive selection to mix’n’match separates to create your own unique outfit, and sell them at a touch of a button — and show a few videos too. Does it sound too far-fetched? Not really. Just take a look at H&M’s Virtual Studio. A simplified version of that fantastic idea can be done with relative ease and be on display on a prim inside a shop. Then you just pay the vendor and you get the outfit delivered to you. But the beauty of all this is that it only requires a very simple script (to handle the payment and send it to an external web server) which will be inactive most of the time — handling the whole display happens between your viewer and the remote web server and effectively generates zero lag on the sim. No more texture loading and eternally waiting for them to appear. And, more important than that, there will be no items inside the vendor for content pirates to copy!

Add these two things together — the inability to copy an outfit directly from an avatar using SL 2.0, and the inability to copy items from inside an “item-less” vendor — and you can guess how quickly all shop owners and designers will jump on the SL 2.0 bandwagon. They will do so very, very quickly.

So forget about residents being “reluctant” to abandon their favourite old viewers or third-party viewers and be slow adopters. The drive will come from content creators, which will start designing a completely new experience for SL — one that the nearest competitor, Blue Mars, cannot even begin to imagine how to reproduce 🙂 Content creators might not be too “excited” about abstract cool features, but they will immediately understand the potential in terms of privacy, protection, low-lag solutions, and having an edge by making their shopping experience easier and way more fun — and they’ll just shun the non-SL 2.0 residents after a while, correctly assuming that anyone not wishing to buy from their SL 2.0-optimised shop are, well, at the very least, “suspect”. And even if you don’t like SL 2.0 at all, you’ll use it to shop at the top fashion designers, even if afterwards you’ll not use it for everyday use — but, over time, even this childish reaction of refusing to move ahead with the times will fade and disappear.

SL 2.0 is not (yet) for everybody?

Every time something changes dramatically at the user interface level, people will complain, and that is unvoidable. One should remember that SL 2.0 was carefully designed and reviewed by hundreds of beta testers, but there are still many bugs to fix (I’m personally surprised at how few I found), and some usability problems to deal with (my favourite bug right now is being ejected 500 m up in the air when standing up from a chair 🙂 ). Many features are “incomplete” — there are some severe limitations on the way you can drag and drop items from inventory to avatar profiles (or other inventory folders), for instance; and the group tools are clumsy at best. While SL 2.0 shines at chat, there are still some improvements that can be done. The rest is mostly getting used to a brand new conceptual interface, which has all the “old” tools (and quite a lot of new ones!) at different, not-obvious-for-veterans places. Obviously not everybody will have patience to learn a brand new interface. And some will simply hate it — like people refusing to use, say, MySpace or Facebook, because they hate their interfaces. These limitations are all unavoidable, and while LL can fix bugs and improve usability and functionality, when it comes to personal taste, they cannot work miracles. There is simply no way you can please everybody.

However, in the short term, I’m quite sure that it will be the content creators that will drive SL 2.0 into mass adoption. Some obvious use cases will immediately profit from it: corporate and academical use of SL cannot live longer without MOAP, and so all their users will change over almost overnight, since it doesn’t make any sense to keep using textures on slideshow presentations, when you can simply stream something like SlideShare instead. All kinds of virtual presences that require professional display of highly interactive, media-rich content will simply forget that 1.X exists — the few residents that refuse to switch over will be simply ignored. Voice support has also dramatically improved, with more echo cancellation, and a way to deal with natural pauses during a conversation that might make push-to-talk obsolete. Role-players will naturally want a much more feature-rich HUD environment which will finally allow them to put all the extra stats and skills very easily on the interface, and make SL look much more like a commercial MMORPG. Furry communities, or any other community that has very intricate avatar designs, will love the new alpha layer and definitely require members to use SL 2.0 and take advantage of the new avatars that will soon be available and very popular. The rest of the world, of course, might delay their switch to 2.0.

On the medium term, since Linden Lab already released their source code, the more reputable third-party viewers will slowly start to incorporate the radical new features, while possibly keeping a different interface for the old-timers. I have obviously no way to know how much code LL has changed from 1.X to 2.0, and how this will affect the adoption of the new key features on the alternative viewers. But the good news is that LL will implement a series of new resolutions regarding the use and distribution of third-party viewers, and I quote:

To apply to add a viewer to the Viewer Directory, the software developer must be a Resident in good standing, and self-certify that the viewer complies with the Policy on Third-Party Viewers, which prohibits griefing, fraud, theft of passwords, and infringement of intellectual property.It is important to note that we will not tolerate malicious viewers that violate our policies.

This is a first step to limit the damage created by the easy piracy used by some of those viewers; of course it will not utterly prevent them, just make them harder to find and to use without fearing to get banned.

To make it even harder… we’ll have to wait until SL 2.1 is released 🙂 This might happen around the summer, at which time the 1.X series will be unofficially unsupported by LL. It contains an even more niftier feature, which, as a side effect, will render piracy of some content utterly impossible. And unfortunately I cannot say more about it — except that if there are good reasons to get familiar with SL 2.0, it is now the time for doing so, while it’s still in Beta and LL is open to suggestions to improve its usability.

For me personally, the only point where SL 2.0 did not exceed expectations (which it did in every other aspect) is on helping new users to get familiar with SL more quickly. I think that chat, voice, and landmarks will certainly be very easy now to use on SL 2.0, even for someone that has never logged in before. Inventory needs a lot of small fixes to become as easy to use; groups even more so. Building, at least for me, became harder — yes, the options are all there, and some are more cleverly designed, but I don’t think it’s simpler. As for the daily tasks of a self-proclaimed “power user” like myself, they will just take some rethinking to remember where the options are (and use right-click on the user interface much more, where all those new nifty features have been “hidden”!). But I’m used to changes of interface. Others will be more reluctant to change, even if it’s for something better designed, just because they’re attached to something familiar, and the first impression on SL 2.0 is a feeling of being utterly lost. This will change quickly as you start using it. Enjoy the experience of being a newbie again, and, within a week, you’ll be totally unable to go back to the “old” viewer 🙂

That’s what happened to me when I finally got used to the way the Mac OS X user interface works 🙂 Once you get used to it, you’ll never want anything else again…