Posted in Developer Zone, Phoenix / Firestorm, Programming, Second Life, Viewers

Compiling the Firestorm Viewer

Last updated 09-Jul-2024


Extended instructions, tips, and ‘gotchas’ on how to compile and build Firestorm, a third-party Open Source viewer for use with Second Life by Linden Lab.

Includes both Firestorm for Windows and also Firestorm for Ubuntu Linux.

First published in February 2014, and regularly updated ever since.

NOTE: This article assumes that you are a competent software developer who is comfortable with C++ build environments and command consoles. Most people will have no need to build their own version of Firestorm from the source code.


Continue reading “Compiling the Firestorm Viewer”

Posted in Developer Zone, Programming, Second Life, Viewers

Adding new libraries to a custom Viewer

As part of my private build of Firestorm, the Open Source third-party viewer for Second Life from Linden Lab, I have added new library dependencies for something I am working on (adding metadata to snapshots).

This blog post details how I added them, making use of CMake and modifying various files.

I present it in the hope that it may prove useful to others.

Continue reading “Adding new libraries to a custom Viewer”

Posted in Emerald, General, Imprudence, Phoenix / Firestorm, Second Life, Viewers

Killer features (Imprudence & Phoenix)

What I like the most about Third Party Viewers such as Imprudence and Phoenix is that they are developed by people who actually use Second Life and so have features that, whilst they may not grab the headlines, are genuinely useful. As an aside, I think it’s pretty clear that the developers at Linden Lab who developed Viewer 2.x don’t, but that’s not the subject of this entry.

This is a roundup of what I consider to be genuinely useful features. It’s by no means an extensive or all-inclusive list.

Imprudence

Profile groups
When viewing your profile, groups that you have hidden from public view are shown greyed out, giving you an idea of how your profile will appear to others.

Communicate window
When new IMs come in, the title bar of the ‘communicate’ menu updates to say how many are unread. My friend Mariana actually ported this to Phoenix and submitted it as a patch and it was rejected as the person who rejected it didn’t see it as being useful, which was a shame as I think it is.

Group chat
You can suppress Group Chat for individual groups. This is just so useful for those busy groups where people just can’t STFU in group chat but you still want to receive group notices.

Radar
The client-side radar / Avatar List is very compact and hung off the bottom of the Mini-Map. I actually really like this as it is very compact and can be up all the time, unlike the Phoenix one which takes up too much screen space to be up all the time.

Phoenix

Intra-sim teleports even when there is a Landing Point
By this I mean teleports that take place within a sim, rather than when teleporting into a sim from another sim.
Sim Owners have long been able to set a Landing Point to dictate where you land when entering their sim. I can see the value of it, as it means people are forced to rez near a rules giver, or a prim notice, or a shop display, or the starting point on a tour, or whatever. But when you are already in a sim, is it still necessary? I don’t think so. In fact it is really, really annoying when you want to cam around a large shop (for example) and then TP to where your camera view is to get closer to a vendor board, or the like. Most Third Party Viewers allow you to double-click teleport, but often you fall foul of the Landing Point and get an unhelpful message saying you are unable to TP closer than where you are. Or, worse, you get zapped back to the Landing Point.
However, there is an option in Phoenix when using the LSL Client Bridge to use llMoveToTarget for double-click TPs and this zips you straight to where you double-click even if this sim has a Landing Point. It does this because llMoveToTarget is a script command used to move things around rather than a teleport as such, so isn’t restricted by the Landing Point rules. For me this is the killer feature as it is just so useful for enabling me to shop in a large store the way I want to.

Aspect ratios on textures
As I’ve blogged about before [link], Second Life stores pictures (textures) in squares, or rectangles made of squares, and unless the Aspect Ratio exactly matches that of the texture it’s going to be distorted. With most Viewers you have to stretch the texture till it looks right.
Phoenix adds a useful little drop-list at the bottom of a texture view to let you tell it what Aspect Ratio it should be. So for a 16:9 picture stored in a texture you can send it to a friend and, provided they are using Phoenix, tell them in IM “you’ll need to view that at 16:9”. They set the drop-list selection to 16:9 and ‘hey presto’ the picture looks right. Useful!

Profile pictures
This one has been around since the Emerald days. When there is a picture in a Profile (wherever it appears) you can pop it out into its own window and view it actual size (which will be bigger than it is being displayed at in the Profile). Of course the Aspect Ratio may then be wrong and you might need to refer to the above and also my blog post on Profile pic aspect ratios [link]

Prim manipulation – cut & paste values
One for the builders and tinkerers amongst us. Phoenix has a really useful feature where you can copy the size, rotation, etc. of a prim and paste it to another. It saves you having to individually highlight and copy each value for x, y & z and paste it into the same box on another prim.
It’s easy to miss this feature, but if you look next to the values you’ll see little buttons marked “c” for copy and “p” for paste.

Prim manipulation – linked prims
Following on from the above, there are also useful buttons for linking / unlinking prims when editing parts of a linked prim set. There is also functionality for moving through a linked prim set.

Autocomplete for names in chat
Finally, a useful little feature for open chat. If you type part of someone’s name you can hit the tab key and Phoenix will try and complete if for you based on who is in chat range.

It’s a shame that Phoenix is now in a maintenance phase, with no planned new functionality, because I would love to see the features I mentioned for Imprudence brought into Phoenix. However, I have it on good authority from one of the Lead Developers that this is not going to happen.

Posted in Imprudence, Opinion, Phoenix / Firestorm, Second Life

Is Imprudence withering on the vine?

I like Imprudence. I’ve been using it for 3 months now and I feel very attached to it. But I think the time is approaching when I’m going to have to look to other Viewers, with Phoenix as a prime candidate.

Why is this? Well, one reason is that there is a show-stopper of a bug in v1.3.0 which is forcing me to continue to use an earlier Release Candidate (RC3) as it directly affects my photography.
Imprudence v1.3.0 was released in early October (ie. 2 months ago) and around a month ago this bug was fixed, along with Jacek commenting that it should provoke an immediate v1.3.1 due to the severity of it. However, this has not happened and I’m unwilling to adopt a beta release to get this fixed.

However, for me, the writing is on the wall for two very significant reasons. One is that there have been no releases at all for several weeks, not even Experimental releases, suggesting that the development team are spending all their time on Kokua (the new Viewer based on SL 2.x) at the expense of Imprudence. And the other is the thorny issue of Multiple Attachments.

The developers of Imprudence have always been quite bullish about multiple attachments, stating that they would not support Emerald’s “hacky” multiple attach point code, not even to properly render avatars being run by people using Phoenix (despite it being easily added to Imprudence by simply updating a single XML file as it turns out) because they were going to support the “proper” Multiple Attachments of SL 2.x by back-porting it.
Well, a couple of days ago a new version of Phoenix was released that supports just that, whilst Imprudence still does not.

This, to me, says that Phoenix is still actively being developed and supported and Imprudence is withering on the vine and is not. It also feels as rather an egg-on-face moment for Imprudence (in my humble opinion).

As I said, I really like Imprudence, but I feel like it is being left further and further behind by Phoenix and eventually I’m going to have to jump ship.

Sorry, Imprudence. It’s been nice knowing you.

Posted in Emerald, Imprudence, Phoenix / Firestorm, Second Life, Viewers

Viewer usage in Second Life, post-Emerald

As I wander around Second Life at the moment, I’m keeping my eyes open for what viewers people seem to be using. Not in a clipboard and notebook way, just getting a feeling.

Before the Emerald scandal, an awful lot of people would have been using Emerald. In fact, up until the point it was blocked there were still a significant number of people using it.

Now that Emerald has been blocked, I was expecting to see a marked increase in the usage of Phoenix and Imprudence, with possibly the odd Emergence from people who don’t realise it is a dead-end choice.

Instead, I’m seeing a handful of Imprudence, the odd Phoenix and a handful of “LGG Proxy” (which I assume is Emergence). And, amazingly, I’m still seeing the odd Emerald (which surely shouldn’t be allowed?)
Everyone else displays no Viewer tag which either means they are using an Official Viewer or else have suppressed transmitting their tag. I know a number of friends who do the latter so this is obviously skewing my results.

I am left with the feeling that public confidence in Third Party Viewers has been severely knocked and people are returning to the Official Viewers in droves. I’d be interested in hearing other peoples’ comments on this.

Posted in Emerald, Phoenix / Firestorm, Privacy & identity, Second Life, Viewers

Emerald Viewer to be Blocked From Second Life

Just posted on the Second Life blog:

As of 10am PT Wednesday, September 8, the Emerald Viewer will be blocked from logging in to Second Life as a result of violations of our Policy on Third Party Viewers. Residents who have been using any version of the Emerald Viewer will need to use a different Viewer to access Second Life. You can download the official Second Life Viewer, developed by Linden Lab, here. Or you can learn more about alternative Viewers, developed by third parties, here. There are several new Viewers listed in the TPV Directory, so there are many alternatives available to you.

We take Residents’ privacy, safety, and security very seriously and will take action to enforce the policies that help protect it. As our CEO, Philip Rosedale, has blogged about, we recently removed the Emerald Viewer from our Third-Party Viewer Directory due to violations of our Policy on Third-Party Viewers.

Since then, we have been in communication with the Emerald development team and have requested several changes in order to remedy violations of our policy, including changes necessary to meet our privacy requirements, and to address GPL license violations. Unfortunately, the team was unable to comply within a stipulated time frame. As a result, we have decided to block logins from the Emerald Viewer in order to protect our Residents. All versions of the Emerald Viewer will be blocked from logging in to Second Life as of tomorrow at 10am. Please be aware that attempting to circumvent our blocking to access Second Life with a banned Viewer is a violation of the Policy on Third-Party Viewers and may result in the loss of one’s account.

[Source: Second Life Blog]

Well, this isn’t a huge surprise. And given the number of people I see still running Emerald, it’s probably for the best. Yes, some will moan but I think LL have little alternative but to do this.
And now that Phoenix (Emerald without the bad stuff) is available then I don’t see what the big issue is.