INI Files and Associative Arrays in LSL on OpenSim

I have a dirty little secret. As much as I love building and tinkering and just plain messing around in-world, something I haven’t done nearly enough is script with LSL. It isn’t because I can’t. Although I relegated programming to a hobby years ago now, I once wrote software for a living. Picking up the basics of LSL really isn’t a challenge. The problem is that I just don’t like it. It’s… very awkward. It’s fine for a small, simple script, but once you try to do anything really large it gets unwieldy to the point where I just want to bang my head on the desk. I have a whole laundry list of things I wish LSL did better, but this post isn’t really about that. Instead it’s about one way I make my life a bit easier. Or about killing two birds with one stone.

Continue reading


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.

Cloud Party Content Creation with Blender

Cloud Party has drawn a lot of interest lately, and anybody who’s visited has rubbed elbows with plenty of people from the SL and OpenSim communities. No wonder, as these are people who already have a lot of experience with VW content creation and the associated tools. The Cloud Party team has made good on efforts to provide better documentation over at their forums. There are some nice video tutorials in the section of the forums for building, but unfortunately for me and other Blender users, they tend to be very focused on the use of Maya. As much as I wish I had US$3500 to shell out for what is, by all reports, a marvellous bit of software, that just isn’t gonna happen.

Happily, it’s not actually difficult at all to translate the concepts shown in the video tutorials to Blender, as anyone who’s ever worked with rigged mesh will immediately understand what’s going on and what they need to do. There are likely differences in export options and quirks in Blender’s Collada exporter that will need to be addressed, but these are not massive barriers to content creation with Blender.

Cloud Party has provided resource files for the male and female avatars and the associated armatures, but these are highly Maya centric, and will not load in Blender right now. Some experienced Blender users have stepped up to fill the gap, and you can find .blend files for these resources in the comments on this forum post from Jean and AshasekayiRa. I won’t provide direct links to the files here, as they may see changes and updates to better conform to the official Cloud Party avatars.

In other Cloud Party related news, this new virtual world has of course incited much blab in the blogosphere. You can find a round-up of quite a few blog posts on the topic at the Swedish Avatarium, and Gwynneth Llewelyn has written a nice thoughful piece on her blog.

UPDATE: Nebadon Izumi pointed out a great blog post on the Cloud Party Bugle that has a video tutorial with instructions on how to make a hat in Blender and get it into Cloud Party. It also includes links to .blend files for the male and female avatars.


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:

A Look At The Cloud Party Beta

Wagner James Au’s blog has a story up now about a new virtual world named Cloud Party. It’s currently in beta, and requires a Facebook account to get the most out of it. It seems the ex-Linden Cory Ondrejka is involved, and boy does it ever show when you give it a whirl. Anyone who’s ever rezzed a prim in SL or OpenSim will recognize the prims you’ll see littered all over the area where new users arrive.

If you want to try it out without having to sign up for Facebook, you can do so by directly visiting the Cloud Party website. You won’t be able to build unless you sign in with Facebook, but you’ll get a good look at it the other features.

Cloud Party’s CEO Sam Thompson was there while I visited, and offered a few bits of info to visitors about the platform. They would like to have authentication options other than Facebook, but their small team means that using Facebook is simplest right now.  Right now navigation isn’t too bad from what I saw, but it is a bit limited, and Mr. Thompson says that that’s on their short list of things to do. There are currently no plans to open source the platform, and while the platform is extensible via server-side javascript, support for external developers is not a priority. The terms of service also seem to take a very dim view of any efforts to reverse engineer the service. A marketplace is in the works, although the terms of service currently prohibits commercial use of the service. Mr. Thompson indicated that right now, Facebook credits are equal to Cloud Bucks. There’s currently a maximum of 25 avatars allowed per instance at the moment.  Sam said that the main reason for it was to keep framerates reasonable until they’ve had a chance to get level of detail properly engineered. No decisions have been made yet on how land will be charged for. Local chat can be heard by the entire island you’re visiting at the moment. You can’t sit, but Sam says animations are extensible, and I was able to interact with some objects, such as opening the gate on a castle.

My personal impression is that this is a bit SL Lite. That’s not a criticism… this is extremely accessible for your average user. The client appears to be completely HTML5 and WebGL driven, meaning that you need only use a browser to access it. (I used Chrome.) They had a pretty nice tutorial available to get you started and up to speed on the basics. There’s a “cell phone” in the upper right hand corner of the screen that gives you access to various options like your appearance, building, navigation, etc. Moving around is pretty point and click. Left click on the ground, and you go there. Right click on the ground far away, and a menu will pop-up that lets you teleport to that location. Chat is easy enough to use, and even let’s you emote with the “/me” command. When you look up into the sky you’ll see some floating spheres containing islands. These appear to be the equivalent of the regions we’re so used to. Click on one, and some info will appear, along with the option to visit that island. It will be interesting to see how well this metaphor works when there are thousands of islands available. I suspect only “featured” islands will retain such prominence at some point.

The name of the service, Cloud Party, kinda makes me want to groan… the cloud is a term that’s been abused so badly at this point that it is hard not to shake my head a tad. For some people the Facebook requirement is going to be a very big turnoff as well, temporary as it may be.

I also can’t help but note that the service appeared to crash during my visit. I was told via a red pop-up message that the connection to the service had been lost, and to wait until it was restarted. I dutifully did just that, and the world reloaded. Other visitors confirmed that the same thing had happened to them at the same time.

Should SL be worried? Probably. Even if the feature set isn’t as advanced, the immediacy of being able to click a link and use this world is a pretty big deal. I think this is likely to give LL a kick in the pants. The fact that it relies so heavily on things like HTML5 and WebGL also means that this is a real contender in the mobile  and tablet space. Not only do you not need to download a client in the first place, but any updates will be completely transparent and automatic. On the other hand this feels so much like SL in many ways. It’ll be interesting to see how Cloud party makes choices for its service that are more than superficial things like islands rather than regions, or reacts to content creators who want to take their prim creations with them to other places. I’ve already seen one user wonder aloud whether they would be able to take their SL stuff with them. It is also hard to determine what the maximum quality of the graphics will be yet, and how quickly browsers will enable bigger, better, and more. LL’s dedicated viewer has the advantage of being capable of a lot more in the eye-candy department right now, and could do even more if LL chose to make the effort. It can also handle colossal amounts of objects in a scene, as evidenced by Nebadon Izumi’s recent success to populate a region with a million objects.

Should OpenSimulator be worried? I’d say no, not as long as Cloud Party remains proprietary and tightly tied to large social networks. OpenSim offers cost, extensiblity , and  freedom advantages that you can’t get anywhere else. But being free of LL’s viewer wouldn’t be a bad thing, and so long as it offers the same abilities as a viewer, a web based client would be a pretty welcome addition to OpenSim’s toolbox. There have been some stabs at this in the past already, but I don’t think any of them used HTML5 and WebGL.