LL Announces Normal and Specular Map Support

YAY! Normal maps!

LL has just announced that they’ll soon be introducing support for normal and specularity mapping. This is really, really, really, big news! There’s already some great blog write-ups on what these are and what they can do by Nalates Urriah and Inara Pey. (Go read them! I’ll wait.) Hey! What was that sound? That was the sound of hundreds of mesh content creators coming to a screeching halt as they wait for these features to be rolled out! Which is a good thing… their content is gonna look even more awesome now.

The big question for me is how and when OpenSimulator will get the materials feature.

On the server side… probably nobody knows yet. I’m guessing it won’t take too very long, but OpenSim developers will need to wait to see how LL is implementing this on their end before taking any action. OpenSim had mesh support almost immediately after LL’s initial mesh implementation hit their beta grid. Hopefully we’ll see similar interest and action taken by one or more OpenSim devs.

On the viewer side, we’re faced with the little problem of the Havok sub-license. LL’s official viewer is no longer able to login to OpenSim, and the Exodus viewer, which is in charge of the viewer side implementation of the material system, has just signed onto the Havok sub-license, making it also unable to login to OpenSim. What I’m hoping is that this will be a non-issue, and other viewers like Zen or Teapot often pick up the necessary code for features like this very quickly. Once these or other viewers do so, users on OpenSim based environments will be able to create better looking and more efficient content.


Linden Labs Removing -loginuri Option From Viewer

Quite recently, people have started to notice that the development and beta builds have removed the command line option -loginuri. This is a pretty important and useful option. It allows a viewer that lacks a comprehensive grid manager to login to any grid or simulator they choose. It’s also useful for things like using a proxy with the viewer. Projects that try to make SL more useful for the visually impaired, for example, might make use of a proxy between the viewer and grid.

So the big question is, is this by design or by accident? Nebadon Izumi of OSgrid went straight to Oz Linden to find out, and gave me permission to share some of the conversation here.

[10:07] <nebadon> OzLinden : ping
[10:09] <OzLinden> pong
[10:10] <nebadon> are you guys really removing -loginURI support from the viewer?
[10:10] <nebadon> or is that just a mistake?
[10:10] <nebadon> cause latest Dev and Beta viewers get an error if you try to use it
[10:11] <OzLinden> that was deliberate, but there is a related bug that I'm working on now
[10:12] <nebadon> ok so it will eventually be back?
[10:12] <OzLinden> no, I don't believe so
[10:12] <nebadon> why is it being removed?
[10:13] <OzLinden> part of cleaning up grid handling - it really doesn't serve much useful purpose
[10:13] <nebadon> sure it does
[10:13] <nebadon> it lets us connect to opensim
[10:14] <nebadon> this essentially kills all support for OpenSim
[10:14] <OzLinden> which our Havok license does not allow

That seems pretty clear. Oz says it’s gone for good, that there’s no good reason to keep it around, and that having Havok client side trumps the open-source utility of the viewer. If you disagree, do let LL and Oz Linden know how you feel.

Imprudence is OpenSim’s IE6

No more Imp!If you’d asked me just a year ago if I’d tell people not to use Imprudence on OSgrid, I’d have thought you were joking. Never was there a better viewer for OpenSimulator; Team Purple made a significant effort to make quite certain that OpenSim support on Imprudence was second to none. It has been officially endorsed by OSgrid admins and offered as a premier download on OSgrid’s download page. For the vast majority of regions on OSgrid, usage of Imprudence 1.3 or newer easily accounts for at least half of all visitors. People are used to using it, and it fits like a very comfortable glove. I was, and still remain, a very vocal cheerleader for Imprudence as a stellar example of a third party viewer that was done right, with the utmost professionalism.

The problem is, it’s old. Imprudence hasn’t seen any updates at all since September of 2011, the last actual full non-beta release was 18 months ago now, and no new updates are anywhere in sight. Development on it currently seems moribund. Even if it comes back to life, the backlog of improvements necessary to once again make it a first class viewer in terms of features has grown quite long, and will just keep getting longer. There have been 38 (thirty-eight!) official releases of the LL viewer since the 1.23 code-base that Imprudence is based on.  That’s an awful lot of bug fixes and refinements. And that’s not taking into consideration non-official third party features that have since been created.

It has gotten to the point where Imprudence is holding us back. There have been some very nice features introduced that some content creators are hesitant (or just unable) to embrace because they fear that Imprudence users won’t be able to use them. Some new features make life quite a bit easier for users in terms of managing inventory, clothing, or privacy. A few examples of just some of the major features are:

  • Shared media (web integration and javascript)
  • Multiple attachments per attach point
  • New attachment points for the neck and root
  • Multiple wearables
  • Mesh support
  • Deferred lighting and shadows
  • Ambient Occlusion
  • Depth of Field
  • Display Name support
  • Parcel Invisiblity
  • Direct Delivery

Some of these are a bit SL-centric. Display names and Direct Delivery are unlikely to come to OSgrid or OpenSim very soon. And a few of these, like multiple attachments per point are not yet supported by OpenSim, but should be soonish.

Other features people will point to as being too slow. This is, frankly, complete nonsense. Windlight suffered from the same claim, with just as much substance. If you disable shadows, AO, and DOF in a newer viewer, what you’ll wind up with is a Windlight capable viewer just like Imprudence, only with a newer, faster, improved renderer. The only real technical reason for a user to be unable to run a newer viewer that I know of is that since the 2.7.1 codebase, SSE2 support is required in the CPU. But this has been supported in all AMD and Intel CPUs since about 2003 (nearly a decade!). If a user’s computer is that old, it is unlikely that even Imprudence barely runs. And if you happen to think mesh is too slow, then you really need to read the article written on Raz’s Blog that clears up a lot of the myths that keep circulating. Mesh is often much faster than an equivalent prim build for a number of reasons.

Things like deferred lighting really, really improve the experience. Content creators are stuck designing for an out of date look. Lights are much brighter, numerous, and more effective in newer viewers. They make a major impact in an environment in terms of ambiance. Shiny also looks different, and much, much more realistic on my opinion. Imprudence actually has some support for this if you know where to look, but it has a very old and out of date version of shadows and lighting, and it’s not at all stable. The viewer renderer has improved immensely since Imprudence’s last release, not just in that it can make things look better, but it terms of speed and stability.

I’m a little puzzled at how anyone could not want multiple attachments per point. Once you use this, you wonder how you ever lived without it. Justin Clark Casey has begun work on supporting this on a development branch of OpenSim, and Imprudence won’t be able to use it.

What’s more, LL has made it clear that soon any 1.23 based viewer is going to be obsoleted by plans to redo how avatar baking is done over in SL. Right now, baking is done on the viewer, which is then sent to the simulator and then relayed to other avatars. LL plans to instead do avatar baking server-side in an attempt or increase reliability and efficiency. You will still be able to use a 1.23 based viewer, but be ready to see everyone as gray. It is a safe bet that OpenSim will soon follow suit in an effort to retain compatibility.

I really understand the love Imprudence gets from users of OpenSim and OSgrid. It deserves that love! But it’s holding us back, and it’s old. It’s time to start exploring the many available alternatives, a few of which include Singularity, Firestorm, Zen, or Teapot. Yes, these are different from Imprudence, and make for a change you’ll have to get used to. But Imprudence is the past. It isn’t joining us in the future. Change in this circumstance is good, and we’ll do ourselves a favor to fumble just a little but with an interface that’s a bit different until we’re accustomed to it. The fumbling won’t last long, and in just a little while you’ll wonder why you waited so long.

Kokua Beta-1c Available

Kokua Logo


Another Kokua beta is available! This is meant to address  a crash to the desktop issue that was occurring when attempting up do any mesh uploads, possibly caused by an attempt to introduce a more efficient use of threads. You can find a more technical explanation of this over on a post on the opensim-users mailing list.

As usual, you can provide feedback, bug reports, and feature requests on Kokua’s Redmine Bug Tracker. There’s also a thread on the OSGrid Forums where you can discuss Kokua with a developer.

You can download the latest beta from Nicky Perian’s Bitbucket, or you can use one of the links below.

Zen Available

Zen ViewerZena Juran has released a new binary of the Zen Viewer. This happened two days ago, and I’m a little late to the party on announcing it here, but hey… better late than never, eh? Anyhow, you can find The Zen viewer at Zena Juran’s Bitcucket, or you can grab the installer via the link at the end of this post. Remember, the Zen Viewer is currently only available for Windows.

Changes in this release include:

  • Consolidated various libraries to a single location.
  • Updated the HACD library for mesh uploads.
  • Updates the OpenAL library for audio.
  • The Grid Manager has seen some changes and updates.

You can grab the Windows Installer here:

Zen Installer

Kokua Beta-1c Available

Kokua Logo


A new Kokua beta version is out! This one bumps the code up to a more recent merge with LL’s viewer code. Nicky Perian tells us that he’s been assured at TPV meetings that 3.3.3 contains a lot of fixes that prevent crashes. Remember, you can help test Kokua and report bugs or feature requests on Kokua’s Redmine Bug Tracker. You can find the downloads at NickyP’s BitBucket, or you can make use the the following links:

Kokua Viewer 3.3.1 Beta-1a Available

Kokua Logo


A new beta release of the Kokua viewer is now available. Due to an intransigant wiki, the downloads are currently available at Nicky Perian’s BitBucket.

Just as with the last release, you shouldn’t expect every whistle and bell in Kokua at this point. But you can help Kokua get to the point where adding your favorite features becomes easier by testing this release and providing feedback at the Kokua Bug Tracker.

Changes in this release include:

  • The 32 and 64-bit Linux tarballs now have libminizip.so included.
  • The 32-bit Linux build now has a more current libndofdev.
  • The 64-bit Linux tarball now has links to some specific libraries.
  • A fix from Firestorm for VWR-29014 resulting in bad avatar bakes with ATI cards.
  • Better large address aware support.
  • Mesh uploads are capped at 64 meters on SL. This has been raised to 256 meters on Opensim.
  • Mesh upload now has a shortcut (CTRL-ALT-U).
  • HTTP Inventory now defaults to off.
  • The Grid manager now assigns “localhost” to

love that there’s now a shortcut for mesh uploads. But if there’s any conflicts with existing shortcuts on your operating system, do be sure to file a bug report.

HTTP Inventory fetching works fine on OpenSimulator 0.7.4,  which is the cutting edge release. But many production grids are using OpenSimulator 0.7.3, and you’ll want HTTP Inventory disabled on those grids or you’ll have odd inventory behavior. Justin Clark-Casey just added a corrected implementation of HTTP Inventory to 0.7.3-postfixes today, so hopefully those grids can upgrade and correct that issue.