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.

Idea(s) for viewer functionality

I was putting on a top today that needed to use the “pants” layer (trousers to us Brits) for the part below the waist, leaving me with no shorts. This is not as mad as it may first appear: the lower part of a “jacket” layer uses the top part of the same space on the avatar surface. Without this, a lot of shirts have to be much shorter than desired, and curtailed with a sharp line.

It’s a great thing that we now have a new “tattoo” layer, which solves a lot of problems for me, as a tattoo user who used to have to face the choice of wearing underwear (particularly important where, say, bra straps should ideally show) or tattoos but not both. Or worse, if a particular top was only in the “undershirt” layer, which made wearing it with tattoos impossible. Happily now solved. But I have found that it doesn’t solve every problem.

Going back to my dilemma today, it would have been nice to have the flexibility of wearing the shorts on the “underpants” layer, even though they default to the “pants” layer. But you can’t change this unless you have the original texture and full permissions to re-make the item, and you need modify rights to be able to know the item’s particular settings. It’s all very long-winded.

It would not affect permissions or property rights in any way if you could, for example, choose to override the default position for wearing clothing. That is to say that “pants” and “underpants” are the same layer but one has a higher priority. If you chose the ordinary “Wear” method or double clicked, you’d expect the default behaviour. But why not add “Wear As” in the viewer? You could limit it so that you could only choose equivalent layers, to preserve the creator’s intended use of the item if they chose “no modify” rights. So “pants” could be worn as “underpants” and “underpants” as “tattoo”, and “shirt” could be worn as “undershirt” but not as “pants”. There might be some small issues: for example, “jacket” has an extra lower section that doesn’t exist in “shirt”, so that part would have to be ignored when rendering on the “shirt” layer. But even so, it would give the wearer some useful extra flexibility with arranging clothing layers, at no real cost. Of course the default layer would not be changed.

Could this be done easily in 3rd party viewers such as Imprudence and Emerald? I’m struggling to see why it couldn’t, although I do wonder if LL would take a view, since they might think it undermines the creator’s intended use of their clothing layers slightly. I would take the view that, with sufficient protections as indicated above, it would have exactly the same visual effect as intended by the creator.

As an aside, I notice that lots of items, although they are worn on the correct layer, do not have the correct icon. I’ve no idea how this came about, but some have a generic icon and a few even have the wrong icon for the layer that they are worn on. Is this just with legacy items or is it still occasionally happening? Does anybody know why it occurred/occurs?

As a second aside, the skirt layer is so lame. It renders quite weirdly, but worse still it is quite unlike the shape of a real skirt. The sliders are less than useless. And worst of all, there is a visible gap between the top of the skirt and the skin, even on minimum sliders, so that it appears to hover around the waist from certain high angles. The need to create prim skirts out of unrealistic strips (akin to grass skirts) and script them for sitting to approximate something just about realistic is also a very primitive workaround for SL’s dated clothing physics. Sitting is a perennial nightmare, as one simply doesn’t know what will happen in the case of any particular animation. There will always be some issues here, for example if the legs are wider than a skirt could reasonably accomodate. Still, this should not be such an appalling problem.

Oh, and my feet still sink into the ground.