The slow death of Viewer 1.x, the half-life of the hypergrid, and other stories

Despite the popularity of third-party viewers such as Phoenix (formerly Emerald) and the disastrous design and usability problems of Linden Viewer 2.0, it has now become clear that Viewer 1.x is dying a slow death. The final release 1.5.2.818 of the Phoenix viewer is out, to be replaced by a new Firestorm viewer based on the 2.0 codebase, and there are similar plans for Imprudence to be replaced by the new Kokua viewer (whose name, I’m afraid, does not strike me as nearly as memorable – what’s wrong with Phoenix 2.0 and Imprudence 2.0 for names, rather than changing them just when they start to get well-known?)

This is, of course, a demonstration that the world of OpenSim grids, so dependent on the Linden codebase, is still very much semi-detached from development in SL, and interoperability will always remain a core issue.

One reason for this is mesh, coming soon (but we’re still not sure when) to a simulator near you. Look out, OpenSim and ModRex! Despite the latter’s support for mesh being far older than the Linden effort, ported back from RealXtend‘s version of the OpenSim codebase to a region module for OpenSim, it has never caught on. Although OpenSim developers seem to be working on mesh, it’s no longer clear if ModRex is the main plank of this effort. It still only works in standalone mode, not in grid mode. The pace of development on ModRex seems still to be incredibly slow, after an initial burst of activity, and it’s blog and web presence remains embryonic and dated.

The 1.x codebase can support some newer backported features such as Display Names (which is not likely to be complex code) but it will be increasingly difficult, and most likely impossible, to continue developing viewers that work for both OpenSim and SL without embracing the viewer 2.0 codebase. Incidentally, Display Names will not work on OpenSim, but apparently will on Aurora based-grids (see below). Hopefully, however, the terrible viewer  design will be completely ignored. Even the developer of Kirsten’s viewer, which rather slavishly avoids any affront to Linden Lab by providing direct support for OpenSim (which is a simple matter of using the open source grid manager code from the Hippo viewer), has been critical of the Viewer 2.0 design. I should say, in Kirsten’s defence, that it is not completely impossible to use the present version of the viewer with OpenSim.

Meanwhile, new forks of the OpenSim server codebase are appearing, notably Aurora, which provides a great deal of core functionality that users have been crying out for. The new Kokua Viewer (a separate project loosely associated with Aurora, previously known as Imprudence) will support some of these extra features. At present, things like profiles, groups, search and web interfaces have to be hacked together once per upgrade, and database changes leave all of these side projects struggling to keep up with the OpenSim codebase.

OpenSim developers, after their huge success with Hypergrid, have managed to undo their own work by fracturing the community into no less than three mutually incompatible and often unreliable versions of what is the most fundamental part of the open metaverse. At present, Hypergrid is barely working at all, and it is a major victory to teleport off one’s own servers. Yesterday I finally managed to reach OSGrid (though it’s misconfigured locally, so that one cannot leave) using a test grid running Aurora, although I cannot do so with any revision of OpenSim 0.7.1-dev on which it is based. Admittedly the latter is development code, but many grids are already running it, including OSGrid. People were astonished to see someone arrive from the outside: one said it had been a year since they had known it to be working! Obviously, some of the unreliability is down to local server configurations, which is an operational problem. But why keep breaking Hypergrid with every new release? Why does it have to be so hard? This is no way to help grow the open source metaverse.

It seems that the OpenSim developers do not seem to see the hypergrid as a priority even though it is what makes people compare OpenSim grids to the Web and its rich competitor SL to the once-mighty AOL. At present, documentation and communication about OpenSim remain amateur and patchy. Of course, the developers make the blinkered ideological claim that they are NOT a competitor to SL, but such claims are often made by those who are manifestly failing to capitalise on their obvious strategic advantages. However talented the OpenSim developers are, they are terrible salesmen. And they are convincing nobody. Their user base certainly is competing with SL, even if they personally, as developers, are not. Remember, the user is queen – or even king!

Get it together again! All this fine work needs a bit more coordination, no?

Meshes, third-party viewers, ModRex, and OpenSim

It was widely reported recently that Qarl Linden (also Qarl Fizz in civvy street, and Karl Stiefvater in real life), had been fired from his job at Linden Lab as a result of the restructuring/cost-saving exercise that they carried out earlier in the year. (It’s still not clear whether, after the announcement of his joining the Emerald team, whether he remains there, has transferred to Phoenix, or is no longer associated with either.) The importance of this is that he was the major developer behind the adoption of meshes in SL, which it appears has now been abandoned. Meshes, for those that don’t know, can do two things:

(1) Allow objects to be any shape natively, avoiding the halfway house that is sculpted prims. Sculpties appear first as blobs and then take their shape according to an additional texture which acts as a texture map. Instead, mesh objects could be imported from external 3D modelling software and other sources already on the Web.

(2) Allow avatars to be any shape, no longer necessarily relying on the crude controls created by Linden Lab, which survive from its early days. This allows shapes to be imported from external sources, and would allow far more realistic avatars, as well as all sorts of other shapes for avatars, including non-human ones. This is possible using ModRex and RealXtend with OpenSim.

At present, it is possible to use ModRex with OpenSim, but the majority of grids running OpenSim do not. Why? The main reason is that most third-party viewers, e.g. Phoenix (formerly Emerald), Imprudence, Hippo, Ascent, do not support meshes. You would have to download the RealXtend Viewer to do this. There is also an experimental viewer called Naali, which has been designed to avoid using any code from the Linden Viewer and thus avoid the GPL licence. However, Naali does not yet support multiple regions, which means that you can’t teleport out from the sim that you log into. So the best solution for most people remains the RealXtend Viewer at present, which is a heavily modified third-party viewer, based on the standard Linden code.

The problem with RealXtend is that it is only used by a handful of devoted developers and has not achieved any market penetration. There is little point using it with SL, which does not support meshes. Few people use it with OpenSim. Would it not be better to capitalise on the market penetration of popular viewers like Phoenix and Imprudence by enabling meshes in grids that support it? Naturally, this should not affect their performance in SL, or in OpenSim grids that do not enable ModRex. As the RealXtend code is under the GPL like the other third-party viewers based on Linden code, the necessary modifications to the code are already available to and reusable by the Phoenix and Imprudence developers.

Although the third-party viewers support OpenSim grids, it has not by and large been their focus. I’d suggest that they need to wise up to the increasing flow of users to OpenSim grids, which are now viable, stable alternatives to SL, some of which have currency and functioning economies. If the major viewers support ModRex, its development will become more of a priority for the OpenSim developers, and their eventual plan to make it a standard module for OpenSim will be realised quicker. The metaverse would, at a stroke, become far more attractive because of the ability to support modern, games-style graphics that meshes would deliver. For a long time now, SL and OpenSim have been visually old-fashioned, and thus they lose users to otherwise less sophisticated virtual worlds. If OpenSim supported a functionality that SL doesn’t, and yet the viewers that are used to connect to SL can support, there would be a strong impetus to implement it in SL too, in order to remain competitive.

In short, mesh support in Phoenix, Imprudence and other viewers, taken from the GPL RealXtend code, would dramatically increase the attractiveness of OpenSim, and probably SL as soon as the risk of being outdone by the competition drove them to follow suit. One ModRex becomes standard in OpenSim, content will be better, cheaper, and the metaverse will move into a new, more modern era. The revolution in content quality will be greater than what was offered by flexible and sculpted prims put together. While meshes are not available, other platforms will increasingly steal users away from OpenSim and SL. It must therefore be the biggest priority for OpenSim, if our way of life in the 3D metaverse is to develop, thrive and survive.