Good-bye, meshes!

Well, with the untimely firing of Qarl Linden, following in the steps of Pastrami Linden, it seems that Philip didn’t really mean that meshes would “merely” be postponed. They seemed now to be completely gone from the drawing board and its existence at the ‘Lab relegated to merely another one of the hundreds of failed and/or incomplete projects. Worse than that, it seems that the only person at LL with a clue on how the renderer works is now Runitai Linden, who has to walk on the steps of giants.

It is really with great sadness that I see this happening. The reasons for meshes being so important, as hopefully you shall understand, are twofold. One is personal and related to my own line of work. The other is more generalist and affects everybody.

Good-bye, educators!

When Pathfinder Linden started to push educators and researchers into Second Life, he had quite strong arguments and incentives for bringing them to this virtual world. Second Life is relatively easy to learn (even though hard to master), compared to, say, doing 3D CGI animation. Assembling prims together is cheap and fast — and fun! — and anyone can do it. You can create your own “research lab” by just dressing up your avatar, get a few freebie chairs and desks, and start doing interviews for your thesis. The “virtual classroom” is probably the most well-researched environment in SL, just because it’s so easy to do it in SL — compared to the alternatives. And what are the alternatives? Engage highly qualified, professional 3D modellers to create detailed meshes, top-of-the-line CGI programmers (like Qarl Linden!), and video studios to do the rendering and post-production. All that to publish a paper or two or support a thesis. Too expensive! Only very few research institutions can afford that — sure, I know there are a few hundreds! — while thousands or dozens of thousands world-wide can just get a cheap (or even free!) plot in SL and do pretty much the same. In this world of underfunded research, SL was a blessing, and quickly eclipsed all other technologies, most notably OpenCroquet, which was the most serious contender, but, well, was a mess to set up…

Five years have passed. Research funds are hitting an all-time low — so low, in fact, that paying for tier, no matter how little that expense is, becomes a serious drawback. Training students to create content and programme it is not always easy; often, external consultants are required to bring the necessary know-how back into the universities, or they are forced to outsource all the work — at premium prices. SL is still cheaper than many alternatives — but not all. Thanks to Google Warehouse and similar 3D repositories of millions and millions of meshes — of dubious quality and origin, but, well, they are free, and that’s what counts — suddenly whole new alternatives become viable. Now researchers, even with little expertise, can just tweak around with the models using SketchUp, and if they need a “virtual world” — they can just upload those meshes into Unity3D, which is one of the most serious contenders as a SL competitor. Forget Blue Mars and any other “popular” virtual world wannabe that has sprouted in the past 2-3 years. No matter what they claim to be able to do, there is one thing they will never manage to compete with: price. Google Warehouse is free. Google SketchUp is free. Unity3D is “almost free”, and even when it isn’t, you can engage the company behind it to become partners and co-developers, and, thanks to a very bright team, Unity3D has understood that the way to beat LL is to do what LL is unwilling to do: cooperate, openly, freely, and with strong engagement and commitment.

Consider the contrast. LL is shy about collaborating with what they see as “customers” because… of favouritism. This makes them reluctant to be in frequent touch with their customers, except, well, announcing things from the top of their Ivory Tower. They might condescend to actually walk down to the front door — so long as it remains clear that they remain in the Tower, while the audience sits in the lawn. Pathfinder tried very hard to fight that corporate policy and engage with the educators and researchers more directly, promoting their work, networking them together — this was the reason, after all, why he was hired (he knew very well how the academic community works), and, strangely enough, was probably the reason why he was fired!

Now look at what Unity3D does. They start approaching academics with cool projects and tell them, “Why don’t you use all your meshes, grab some more from the free repositories, get in touch with other researchers to get access to their own meshes? We can help. We’ll put you in touch with others doing the same thing. We will work for you. We will be glad to be part of your project and work with you together”. They’re not stupid: universities might be underfunded, but they get grants. Not all get billions of US$ of funding, but… in most Western countries, presenting projects where you can show a company as “an industry partner”, bridging the gap between academia and the business world, is often encouraged and raises the values of how much funding you can apply for. Europe, in particular, is quite eager to fund projects with industry partners. Unity3D knows that very well — they get the glory of participating in research projects, and their brand name is associated with papers, thesis, and world-wide research, enhancing their reputation as a solid partner; but they also get grant money directly funnelled into their coffers. You see what that means? LL tries to squeeze universities dry of their meagre funding, and remain aloft and inaccessible because of their “no favouritism” policy; Unity3D are active partners which draw funding together for common projects — they become part of the solution, not part of the problem (the problem here being funding, of course).

And, of course, they have the ultimate argument: “Use your meshes. Use the free meshes. Use them, reuse them.” In SL it means doing it all from scratch.

So there is the alternative… for some research institutions, they have already spent too much time (and money!) developing for Second Life. If there’s something academics hate, is to explain their funding partners that technology is constantly changing, so they have to waste more and more money just to move to the “next big thing”. In those case, universities and research institutes (yes, even the ones from companies like IBM!) just move everything over to OpenSim. It’s the same technology. Sure, the service is not great, but the extra goodies (more on that on a forthcoming article!) more than compensate for the lack of stability. And, of course, it’s free. Well. Almost free. You can always get a partner, like ReactionGrid, which are, in turn, partnering with IBM, Intel, Microsoft… and dozens of universities… and hundreds of K12 institutions. Yes, you got that right. By completely ignoring LL’s paranoid fear of children, they are actually able to engage a larger range of customers/partners, namely, the ones providing services to high schools… for them, SL never was a choice.

You might notice that OpenSim doesn’t have meshes, either, so, what’s the point? Think again. OpenSim is actually a more “neutral” server technology to allow hosting of different types of virtual worlds (although it’s true it started as a “Second Life clone”). For a long time it has been supporting realXtend, a separately-developed virtual world technology which has been around since 2008, and its first releases were about showing cool highly-detailed avatars and full mesh support. A new viewer, Naali, currently in its early stages of development, changes the whole approach — and it forges even closer ties with the OpenSim community. In fact, some OpenSim developers have for long delayed meshes because it was unclear how Linden Lab would support them. When it seemed that Qarl, Pastrami and the other LL devs were favouring COLLADA, this was an encouragement to get mesh support built-in into OpenSim. With the recent announcement that meshes would need “more careful thinking”, and the firing of the whole team that was developing them, I’m sure that this will mean a drastic change for the OpenSim developers. They won’t wait for LL any longer, since it’s pointless. They’ll get mesh support working in no time, and a viewer — be it Naali or any other — to fully support them. And then I’m sure they’ll get in touch with people like the Imprudence team, who have made it quite clear that their efforts would be to make a viewer more OpenSim-friendly, to incorporate mesh support on that viewer. Who knows… Qarl might even help them out, although obviously not by using the code he developed for LL, but starting the work from scratch, to prevent any legal issues.

In the short term — until Christmas or so — what this means is that I’m quite sure that OpenSim will start to support meshes more and more. They have good, strong incentives to do so: getting all the universities that are dropping SL as fast as they can, and preventing them to rush towards Unity3D. Companies like ReactionGrid have precisely the same attitude as Unity3D: they want to be part of the solution, not of the problem — they become research partners if that helps universities to make the transition, contribute code and help towards common projects, and supports them as best as they can. In the academic market, this is the kind of attitude that universities look forward to.

Also, expect universities to get together, raise funds, and deploy their own OpenSim-based grid using external funding. I have seen at least two attempts to do exactly that; I’m sure that there will be more with the same idea. Universities have cheap labour (great for 24h/7 support), lots of old servers, and, in many places at least, lots of cheap bandwidth. If they can persuade their draconian network administrators to open a handful of ports, they can provide OpenSim services to other universities. Remember how the Internet rolled out in 1990? NSCA funding to create an infrastructure where universities and research institutes would be the major nodes, and have industry partners to push it out into the corporate business — IBM, Microsoft, Intel, Cisco, Sun. Hmm. Sun is now Oracle, but guess what that other four are doing…

How can Linden Lab prevent universities from abandoning Second Life once and forever? First and foremost, drop the Ivory Tower stance. Become partners. Forget about “favouritism” — that makes only sense on MMORPGs, and SL is no MMORPG. This means assigning Linden employees to become co-developers with universities on their own projects. It means helping them to do their funding requests and contributing expertise — and free tier! — to them. In return, they’ll be part of the grant application and get some money that way, too. This is how collaboration between academia and industry works. And, of course, it means giving them what they need: meshes and free tier. If universities can’t get that from Linden Lab, they most assuredly can get it from Unity3D — and, more and more, from the many OpenSim providers.

Personally, of course, I couldn’t care less if my own clients prefer OpenSim to Second Life — I see it as the same technology, just from different providers. Each has its advantages and disadvantages. SL has more features and is way, way more stable (no matter how much OpenSim has improved, it’s still eons away from LL’s stability). It also has round-the-clock support. Just last week I managed to crash three sims on two OpenSim grids (I won’t name the providers to spare them the shame) and these two sims were down… for a whole week. What did I do? Just rezz my hair 🙂 It’s not a big problem if a sim goes down if a sim crashes because you’re rezzing hair; but it’s certainly a problem if the grid operator never noticed it after a week. So if you need high reliability, and no matter how ironic that sounds, you need to go with LL. OpenSim, by contrast, is way cheaper — from zero (if you have cheap labour, which is often the case with universities) to small monthly fees (because a co-located server with a quad-core CPU and 4 GB of RAM costs around US$50-100/month these days, and that is enough to host 20-50 OpenSim regions and serving a million prims — even bandwidth costs can be minimised, since for some unexplainable reason OpenSim can serve exactly the same content at as low as one tenth of the bandwidth required by SL — I wish I knew why!), and it adds some nice features. Hypergrid teleporting across grids is way cool. Building is a pleasure, not a nightmare. Backups are easy and work almost flawlessly all the time — both inventory and items rezzed on the sim. Granted, getting groups, voice, and an economy to work requires some expertise and development, but once it’s in place, it’s almost as good as SL — except for small caveats. So the choice, from my own perspective as a developer, is really stability vs. low cost — the client decides. I’m just stumped if the client goes with Unity3D instead, because that requires a lot of highly specialised programming which my team cannot (yet) deploy… but, who knows, with more and more universities fleeing to Unity3D, it might force us to do the same.

State-of-the-art content with less lag

Ok, so if you’re not an university, why should you worry about all the above? Unity3D is just good for stand-alone virtual worlds, and that means “no economy”. OpenSim, by contrast, is even better than SL at creating multiple grid environments, all neatly interconnected, but there is also no trans-grid economy (although a few people are working on that!). But the most important point here is that you won’t be able to bring your friends and your content from SL into OpenSim (much less into Unity3D), so even if OpenSim starts to support wonderful meshes, why should you care? Your friends won’t be there. The events you like won’t be there. The content you love won’t be there.

Well, at this stage, since Pastrami and Qarl left Linden Lab, I guess that it’s fine to explain what they had in mind — since it’s quite likely that LL will never implement their ideas. They had a very cool model to assign meshes what they called prim equivalents. This is one of those synthetic metrics that means little (like the infamous Avatar Rendering Cost…), but it would prevent meshes from collapsing the prim-based economy. A prim is, after all, a mesh. A simple, untwisted prim has a precise number of polygons; twisted prims, of course, have an insane amount of polygons. So what the clever former LL developers had was a formula that, based on the number of polygons a certain mesh had, would automatically assign to it an equivalent number of prim equivalents, and these would be the ones counting towards prim usage in your land. Clever, right? And easy to implement. In effect, what that means is that if someone uploads a huge mesh that would replace a 1000-prim object, it would still take 1000 prims, and thus fairly compete with prim modellers — nobody would be “hurt” that way. And nobody would get an “extra advantage” for using a mesh, either.

Why would someone use a 1000-prim equivalent mesh then? Very simple: first, because there are shapes you simply cannot do with prim torture — that’s why sculpties look so great. But the biggest advantage is textures. Textures are the bane of Second Life, as they consume 40%-60% or so of all grid bandwidth — that’s why LL  finally implemented HTTP-based texture loading, and, allegedly, these will be stored on the Amazon cloud. Both Snowglobe (old) and the SL 2.X viewers fully support HTTP-based texture loading — and all 3rd-party viewers as well. I thought that only the sim server 1.42 (to be released next week) supported HTTP texture loading, but I was wrong: this morning, while jumping around several sims, I noticed that now the textures are being retrieved via HTTP! Just like Philip promised 🙂 (Of course, OpenSim has already implemented that feature a long time ago…)

Nevertheless, take prim cubes as an example. Prim cubes have 7 textures — six on the outside, one in the inside. All have to be loaded and shuffled in memory and accounted for by the rendering engine. 1000 prim cubes will require 7000 textures. Of course most will share the same texture (notably, the one inside; only with prim torture will that “inner face” be “revealed” anyway), and this means bandwidth will be saved, but still… all those 7000 faces have to be accounted for. Allegedly, Havok 7 can also consider the linkset (the sum of those 1000 prims… assuming you could link them all together, which you can’t) as a single item and do its physics magic with it (note that even objects that are not set to physical will require Havok 7 calculation!); in practice, not only you can’t link all 1000 prims together, but I’m not sure about LL’s implementation. It might mean that each prim has a separate entry on the physics engine as well. All this means a lot of calculation — on the server side and on the client side, as all faces need to be accounted for occlusion, drawing distance, and lighting — prim by prim, a thousand times.

Contrast that with meshes: they only need two textures, one on the outside, one on the inside. They’re just one object for Havok 7. Simple, very simple. Sure, of course, being a mesh, it means a lot of polygons to calculate — but so are prims. Prims are meshes too! This means that all calculations that are made on polygons would be exactly the same, but a 1000-prim object would, at the worst case scenario, require 1000 separate calculations and item entries on the many internal tables, plus dealing with 7000 textures (even if most are all the same)… while a meshed object would be just one item, two textures, and that would be all.

Or consider the problem of 250-prim-hair — with heavily tortured prims, each containing a script to allow resizing and other cute features. With meshes, all that goes away. You have one complex mesh with enough polygons to describe the whole hair (and the usual tricks of having interpenetrating tortured prims to give it more “volume” wouldn’t be necessary… the mesh can describe all that pretty easily, if it’s well done). One script to allow for resizing. One (or two) textures to deal with. In fact, I can imagine that the reduction of both server-side lag and client-side lag would be so drastic, that in a year or so, non-meshed hair would be forbidden on most sims 🙂

And Qarl was allegedly also working on having meshed clothing, which would attach to physical points on the avatar, so that it can drape naturally… opening a whole new range of possibilities for avatar clothing. No more 50-sculpty-dresses for those frilly bits. No more 100-prim-boots. No more flexiskirts sticking out of the bottom of the chairs (even though my own free and open source script to deal with that helps to minimise the damage, it isn’t perfect, and the only fashion designer that uses it or a variant of it is Kunglers, whom I recommend 🙂 ). And, of course, meshed clothing is what all other virtual worlds use, even the most simple ones. With limitations, of course. Now imagine the fashion revolution this would bring! And in fact it would use far less resources than the current approach of using multiple sculpties to achieve a similar effect — if the avatar is on a static pose. Only with flowing meshes, draping from attachment points, fluid clothing that accompanies the avatar’s movements is truly possible (and also note that all this happens client-side anyway, so sims would not lag more because of that!).

The other reason is far more interesting. LL was considering to allow meshes to be uploaded only by Premium users. Now before you start yelling, consider what this means. The major problem that LL had with a free-for-all mesh upload was how to minimise the impact of CopyBot (which would be able to steal meshes as easily as any other asset), on one side, but also copyright issues with stolen meshes from elsewhere. Clever hackers would be able to crack popular games, extract the meshes, and upload them to SL. Not-so-clever ones would simply download content from Google Warehouse or similar mesh repositories, which are all unprotected, and nobody really knows how much stolen content is there.

To prevent this, LL would require all mesh designers to have some identity on file — and the simplest way to ensure that is to get them to become premium accounts. After all, it’s a premium service 🙂 But philosophy aside, it also makes things legally more interesting. By avoiding anonymity (just pseudonimity), LL could make copyright theft, at least on meshes, legally enforceable. At this point you’ll be grumbling and saying that anyone can steal a credit card, sign up under a fake name, and release zillions of meshes to the grid. Ah, you’d be right — but in that case, instead of a committing an illegality (copyright violation is not a crime), you’d be committing credit card fraud, which is a crime, and would be pursued anywhere in the world where the credit card company has offices — which is pretty much everywhere in the world these days. (Remember how Al Capone was finally caught because he did evade his taxes, thus committing a federal crime? This is a similar analogy: you can’t get in prison for violating copyrights, but you most certainly can get arrested for stealing credit cards)

A variant of this model is also possible (and was also under consideration): anyone could upload meshes and use them on their own builds, but to be able to sell them, you’d have to have a Premium account. So content pirates could still have fun on their own, but at least they wouldn’t be able to profit from it. On the other hand, anyone not willing to invest in SL, but also not really wishing to contribute to its economy, would still be able to upload meshes, have fun with them… but be unable to give or sell them to friends. They could still create gorgeous buildings for others to admire. It would be a compromise!

Now, these days, almost all professional content creators use sculpties — from hair designers to shoe designers, furniture designers to weapon designers. They might not use many sculpties, or just a few for effect, but it’s hard to come across a professional content creator that does not use any sculpties at all (at the very least, they’ll outsource the work!). This means that all of them would get content protection by discarding sclupties and using meshes instead. Meshed content that gets pirated can always be tracked down to a Premium account! There would be no doubts about whose alt they belong to. While this is not fool-proof, and is not a replacement for a more thorough DRM solution, it nevertheless is a good compromise.

So good, in fact, that if I were LL, I would not restrict myself to protecting professional content creators 🙂 I would forbid selling content by anyone who has not a credit card (or similar authentication mechanism) on file. Basic accounts would still be able to roam the grid, buy content, use products and services, transact L$ among other residents, but they wouldn’t be able to put content for sale, or to transfer their objects to any other resident. But I guess I’m just too radical 🙂 After all, lately, people have been worrying less about content theft, and more about LL’s (and SL’s!) future…

What is the biggest issue with meshes? To be honest, the major problem is that amateurs would be left out of the fun — at least for a while — since creating wonderful meshes with anything less than Maya, 3DS, or Blender is hard (and the first two have licensing costs of thousands of dollars; Blender is free and open source), and learning any of those tools is way beyond an amateur’s abilities. Gluing prims together is very simple by contrast. Now, I have no pretension to know how much amateur content is sold in SL compared to professional one, but I’m sure it’s pretty high. High enough for Philip to have dropped the whole project.

Instead, I think that LL should consider rethinking their building interface. A lot of the professional modelling applications have a modular approach: to create the final mesh, you can not only poke at it and twist and deform it, but add or subtract shapes from it. The SL building interface could achieve something similar: you’d assemble an object made out of prims (subtracting prims would be a must!), then click on a button, and “meshmerise” it. You could keep a copy of the original prims as a reference, so you could tweak it again and create new meshes. A few clever applications already do that for sculpties! They’re not perfect, but you can achieve some good results that way — good enough for amateurs with patience. I always wondered why LL never included that in the building tools. But I agree that sculpties were just a “temporary” measure, introduced in 2007, until the work for full meshes was finished…

On the other hand, that would be a nice challenge for 3rd-party viewers to implement 🙂 Let’s face it, between having bouncing boobs and a cleverer avatar radar, or a built-in mesh creator, which feature would make more people switch over to a 3rd-party viewer? 😉


Both for academia (and business) as well as residential users, the lack of meshes is slowly impossible to endure for much longer, specially because the alternatives — Unity3D for academia/business to do stand-alone virtual worlds; OpenSim for pretty much everybody — either directly support them or their support is going to be more aggressively pursued, now that LL abandoned it. There is no 3D virtual world out there without meshes, even if some mesh support is very limited. It’s also true that no virtual world allows in-world building to the degree that Second Life/OpenSim allow, but that’s no excuse for not giving a “mesh builder” as part of the SL viewer. While LL kept the promise of implementing them — and periodically leaking videos made from special viewers fully allowing meshes, which have been around for over a year and a half — residents would patiently wait for LL to finish their work. The excitement around the possibility of having meshes attached to special avatar attachment points to create a new fashion revolution was well worth waiting a few months longer. The promise to introduce a simple, but efficient, way of dealing with content theft was also welcome. All these ideas were worth waiting a bit longer to mature, and stalling all work at OpenSim’s own mesh implementation was worthwhile. We held our collective breaths for a little while longer and patiently wait, like we always have done in the past.

With Philip’s announcement that meshes “need more thinking”, shortly followed by kicking out every qualified programmer who had a clue on how the rendering engine worked (except for Runitai, at least for now…), the message changed, and was quite clear: Linden Lab isn’t going to implement meshes, ever. Meshes will go the way of all other unfinished and abandoned projects, which LL keeps piling up, like avatar puppeteering for example — yet another waste of talent, time, and huge costs. I was personally appalled with this announcement, since I was fervently believing that Philip would at least take the opportunity to set some things straight at the ‘Lab, and, after the announcement of desiring a “leaner”, downsized LL, one would assume that the first thing to do is not to waste precious developer time and abandon projects midway.

But then again, I should read more Dilbert:

And my favourites:

Print Friendly, PDF & Email
%d bloggers like this: