Imprudence catch-up

imprudenceI’ve been meaning to run a catch-up on Imprudence since mid-April; my apologies to Onefang Rejected and crew for not doing so sooner.

My last report on Imprudence, back at the end of February, made mention of the fact that Onefang, who had been working on the Meta-Impy viewer (itself forked from Imprudence 1.4.0), had come forward with a stated goal of continuing Imprudence’s development and joined the Kokua / Imprudence team. After that, things went quiet as far as the rest of the world was concerned. However, this didn’t mean nothing was being done.

Recent Updates

In April 2013, the team released first experimental version of Imprudence 1.4, referred to as exp 0, the first major release of the 1.4.0 code which had been in beta status for a very long time.

The update included a lot of under-the-hood work with many bug fixes from numerous contributors, improvements to the build processes, code clean-ups, the removal of the Google translate option, updates to the grid list, port of inventory category capability from Cool VL viewer, addition of a MOAP radar, and security improvements to the storage of users’ passwords.

This was followed almost exactly a month later, in May 2013, by a further release – referred to as experimental 1, and which included further fixes and updates which built on the work released in experimental 0.

With both releases, Onefang took time out to address a range of questions on Imprudence, and roughly outline what the team hope to achieve. His comments were caveated by noting two important points:

  • There is a fair amount of catching-up to do, and it will take time for the team to get there, so people shouldn’t expect everything to be done at once
  • The team is small, and all of them volunteer to do the work. As such, it has to be slotted-in between real life obligations, etc. Therefore, progress may be subject to interruption, and users were (and are) asked to bear this in mind.

Looking Ahead

In terms of bringing Imprudence in-line with some of the major updates other viewers have / are seeing, Onefang had the following to say (as noted in his replies to comments following the exp 0 release – scroll down to read all of his replies in full). There are no time scales attached to any of the following because, again, the team are working on a volunteer basis and are subject to RL interruptions and obligations which may impact progress in one or more areas.

MOAP (Media on a Prim)

Robin Cornelius provided the team with the MOAP radar functionality, and subsequently with a working patch which includes most of what is required to get MOAP working in Imprudence, so the team hope to have this working “soon”.

Mesh Rendering

Currently, imprudence uses the “old” rendering code which cannot render mesh objects (boxes, cylinders and weird shapes result). Replacing this code is a major task and will take time to complete. As such, the aim for the time being is to catch-up on other code elements and come back and address the issue of render code update / replacement for a later date.

However, Onefang has been experimenting with code that bypasses the bulk of the old render code for meshes, and steps in at the last moment to add the mesh after the rest of the render is done. This approach has worked well as a proof-of-concept, and he hopes that if it can be shown to work “for real”, it will offer a possible interim capability for Imprudence to render mesh until such time as the rendering code can be properly overhauled / replaced.

Imprudence and mesh
Imprudence doesn’t currently support mesh rendering, as shown above with the LAQ mesh cottage (see inset for how it should look). BUT, while it may take a while for comprehensive mesh rendering support to be implemented, Onefang Rejected is looking at an interim solution which may allow Imprudence users to correctly view mesh objects in-world

Second Life Server-side Baking / Appearance

The team plan to make Imprudence SSB/A compatible in the future. This will not happen prior to SSB/A going live across the SL main grid (Agni), nor is it likely to happen any time immediately after LL have deployed SSB/A. However, Imprudence will be looking to support it as and when they can.

Grey people will be the order of the day for Imprudence users on Second Life once SSB/A is deployed - at least until the Imprudence team get SSB/A support implement, which they are looking to do in the future
Grey people will be the order of the day for Imprudence users on Second Life once SSB/A is deployed – at least until the Imprudence team get SSB/A support implement, which they are looking to do in the future

Materials Processing

Again, earmarked for inclusion in Imprudence, but not necessarily on the immediate horizon.

Other Things on the List

Obviously, the above is not the extent of the team’s plans, but tends to represent the items they are most asked about. Overall, the “to do” list includes a lot of work and covers things such a multiple attachment support, pathfinding support (NPC support for OpenSim), avatar physics, parcel privacy support, scripting additions, RLV/a updates, HTTP updates, and more.

Progress on Imprudence can be tracked through the project issue tracker.

Patience, Young Padawan!

Imprudence remains a popular viewer, and runs well on OpenSim. That OneFang and the team are committed to keeping the viewer going and bring it up-to-par with other viewers and both with OpenSim and Second Life is to be highly commended. It may take a while for some of the updates to reach the light of day, so some patience may be in order for those who’d like to continue / resume using it with SL in particular.

Related Links

6 thoughts on “Imprudence catch-up

  1. Hey –

    Your last post [Imprudence catch-up] was freaking awesome. I have gone ahead and added your stuff to my Feedly account. Please keep me updated if you post anywhere else.

    Keep rocking –



  2. It seems to me that the Imprudence team will have an awful lot of catching-up to do in order to bring their viewer in-line with current SL standards (media-on-a-prim, mesh, SSB/A, not to mention materials). For the time being, it seems it’s best suited to OpenSim grids that are technically where SL was 4 years ago.


    1. Hmm. Not even that. Please don’t get me wrong, I was a huge fan of Imprudence and have continued to use it on OpenSim grids even when it became obsolete for SL.

      But the truth is that these days OpenSim is not so far behind in terms of features (but only in terms of stability). Mesh support is awesome in OpenSim. Materials support has existed in some form since April, but because I don’t have a computer sufficiently powerful to see them, I have no idea how good it is (prims in OpenSim now have something called “dynamic attributes” which can be used to store pretty much any kind of metadata, and the clever core programmers are storing the novelties developed by LL on that). Sure, server-side baking is not yet implemented, at least AFAIK in the manner LL does it, but there are equivalent mechanisms in place which work quite differently, are compatible with all viewers (except, possibly, Imprudence…), and give satisfactory/similar results. Inventory retrieval works similar to what LL has done to SL (i.e. via HTTP calls). The tricks done by LL to get the objects “in front of you” to render first, a major breakthrough announced some weeks ago, has been in SL since, uh, 2009 I think, even though the implementation is quite different. There is no “direct delivery” to a folder in the sense of LL’s implementation, but there is something which can, with some devious tricks, be used in the same way: OpenSim users who use hypergrid teleports have a “briefcase” folder where objects (with the proper permissions) from other grids are stored, and there are clever ways to send new objects to that special folder.

      The big issue, for game designers, is the lack of the pathfinding functions, because OpenSim’s main physical engine — ODE — is totally different. OpenSim is moving to BulletPhysics instead, which should be far better in all regards (but ODE does a rather good job, IMHO). Still, OpenSim scripters actually create NPCs directly, either via LSL (there are functions for all that — no need to create ‘bots via the popular libopenmetaverse libraries…) or directly supported as an OpenSim module (meaning that you can incorporate all your AI work at the sim level and don’t bother with LSL).

      OpenSim’s LSL is 91% compatible with LL’s. Sure, there are a few differences, but they are so few that most people (except clever LSL hackers who use kludges and bugs for doing things never planned by LL) will not note a difference. And, of course, you can use C# to run your scripts and use external libraries and modules (that are loaded by the simulator) to develop way more complex things in OpenSim than you can do with LSL in SL.

      So, if we compare OpenSim feature-by-feature, it would be unfair to say “it’s SL from four years ago”. It just visually looks like that because obviously all top-of-the-line content creators in SL are… in SL, where they can sell their content to millions of users. That’s the main reason for the visual differences.

      Because of that, I also fear that Imprudence’s “catching up” comes too late. At their expected rate of progress, they will need some two years to catch up with enough features to keep it an appealing viewer for OpenSim, not to mention SL. And a lot will happen in OpenSim during that time! I’m afraid it might be a lost race.

      On the other hand, the next generation of LL viewers will push the OpenSim reverse-engineers to a new challenge. Soon, a lot of code that runs on the simulator will be pushed to the Havok-embedded features on the viewer (like they did with Pathfinding). When that happens, TPV developers will be stumped, because there is no (simple) way to replicate that in OpenSim. So SL will slowly start to get an edge on OpenSim, thanks to proprietary technology embedded in the browser 🙂 It might be possible to replicate some of that using embedded BulletPhysics and other libraries, but Havok includes so much useful stuff that it will require close collaboration with OpenSim-friendly TPV developers to replicate all of that. (Still, one might reason that realXtend used the approach of pushing most of the heavy-duty calculations on the realXtend viewer, while leaving the simulator just with the persistent data, and realXtend is allegedly still compatible with OpenSim.)

      Gah, I’m digressing. My point is that OpenSim, at this stage, is not “so far behind” SL. It’s actually very close to it. The difference is mostly the lack of content, not of features. And that means that any OpenSim viewer in 2013 should support pretty much all the range of features available in both SL and OpenSim, because people are using those features. I’m afraid that Imprudence simply lost the race.


      1. And here I thought that there were OpenSim grids that could accommodate Imprudence. It’s a pity that this viewer became obsolete. Oh well…


Comments are closed.