Last updated 21-Jul-2023
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.
Just a very quick one.
I logged onto SL recently and noticed that sculpts and meshes weren’t rendering properly unless I zoomed in, and I remembered that there is a debug setting to fix that and it must have got reverted for me at some time.
The fix is as old as the hills, but I thought I would note it down here simply so I can easily find it again. If it helps someone else too then so much the better.
Go to Advanced -> Debug Settings (or use Ctrl+Alt+Shift+S)
(If the Advanced menu is not enabled then enable it with Ctrl+Alt+D)
You need to set both the RenderAvatarLODFactor and RenderVolumeLODFactor settings.
A value of at least 4 is recommended, whilst 6 is better.
[Last updated 12-Feb-2022]
Hello! And welcome to another of my little tutorials that have been born from a conversation I had in-world and thought might be useful to someone.
This time it’s to do with getting round within a sim and also keeping up with someone who is doing it. Or, to be more specific, the trials and tribulations of my hubby as he tries to keep up with me when I’m shopping!
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.
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.
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.
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.
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.
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!
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.
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.
A lot of people who have made their own picture for their Profile find that it appears squashed or stretched. There is a very good reason for this and it is fairly straightforward to work around. The aim of this post is to try to explain how.
Before I go any further though, do bear in mind that this whole tutorial is all to do with 1.x Series Viewers (ie. official Viewer up to 1.23.5 and most Third Party Viewers such as Imprudence, Phoenix, Emergence, and the like) since Linden Lab in their infinite (lack of) wisdom changed it for Viewer 2.
The key thing to remember with textures (which is the name Linden Lab uses to refer to anything that looks like a picture, which includes snapshots) is that they are always square or else rectangles made up of squares. And those squares are always powers of 2. So a texture can be 256×256 pixels, 512×512, 1024×1024, 512×1024, 512×256, etc. – you get the idea. The maximum size allowed in any one direction (in Second Life) is 1024.
If a picture does not fit into one of these combinations then it is stretched or squashed accordingly, and this is where the deformation comes from.
You would think that you should be able to just take a snapshot in-world and use it, however this is not the case because the Profile picture, and the picture used in the Picks section of your profile, have specific aspect ratios which are clearly defined by Linden Lab [link]. For your Profile pic this aspect is 4:3, and for a Profile Pick this is 16:9 (for 1.x Viewers. For 2.x Viewers LL changed it to 1:1 and 8:5/5:3 respectively. Don’t even get me started on why the Picks have two aspect ratios in the 2.x Viewer).
If you’re unsure what I mean by “aspect ratio” then please refer to [this link].
Unless you can somehow capture your in-world snapshot at something close to the correct ratio, then it’s not going to look right.
(I should note at this point that the RL pic in your profile has a 1:1 ratio, which since it is square is so trivially easy to do that I won’t mention it further)
So, how do you get it right? Well, provided you are happy to do a little bit of simple post-production then it is quite easy.
In order to do it you’ll need a photo editing application such as Photoshop, GIMP, Paint.net or even an online service like Picnik. All except Photoshop are free so don’t be worried if you don’t have one of them. I’ll leave it to you to choose what to use. I use GIMP myself, because it is almost as powerful as Photoshop but is free and Photoshop is very expensive. However, if you are a beginner then paint.net is a lot easier and more intuitive.
First you’ll need to take your snapshot in Second Life. Take a snapshot, but instead of saving it in-world, save it to your hard drive.
In v1.x viewers then this can easily be done with the Snapshot dialog, assessed with the “snapshot” button on the bottom toolbar (or the Ctrl-Alt-S keyboard shortcut if you’re using Windows). There is a radio button under ‘Snapshot destination’ at the top of the dialog, one option of which is “Save to your hard drive”.
You can also use “Snapshot to Disk” from the File menu.
Save the snapshot to somewhere that you can find it again shortly.
If you already have a snapshot in-world which you want to use then it is possible to save it locally and use it. Provided it has full permissions, you can open it and then choose “File -> Save Texture As” from the top menu (which is slightly counter-intuitive as you might reasonably expect it to be a menu on the window of the snapshot itself)
Now fire up your photo editing software and open the picture you just saved (regardless of which of the above two methods you used to create it).
Select the crop tool and fix the aspect ratio. In GIMP this is a checkbox on the crop tool and an edit box to specify the ratio. Your mileage my vary.
For a Profile pic you’ll want 4:3 and for a Pick you’ll want 16:9.
Don’t worry at this point what the final image size is because we will be resizing it.
Crop the picture to the correct ratio. It’s up to you how you want this to look, and it depends on your picture, but do remember that when someone looks at your profile the picture can look quite small. So, for your main profile pic at least, I find it is best to close crop and get your face quite dominant in the picture since your Profile picture is meant to be about you. However it’s entirely your call, of course.
Now, this is the important bit; the trick that this whole entry is about is coming up. You want to resize the picture so that it looks squashed, so that when SL uses it and stretches it, it regains its correct Aspect Ratio. Sneaky, huh?
You can do this in one step, but I like to do it in two steps as it makes more sense to me.
Resize your picture, preserving the aspect ratio. You’ll want to set the height of the picture to be either 512 or 1024 and let your software work out the width.
You’ll notice that the picture still looks right. Which is what we want.
Now the sneaky part – size the picture again but this time turn off keeping the correct aspect ratio. In GIMP this is a little icon of a chain between the height and width. Now set the width to be the same as the height. Do not change the height.
Your picture will now look squashed. Don’t worry, this is fine!
Save your picture – I’d recommend to a different filename.
Now, we need to get the picture back into SL as a texture.
Fire up your SL Viewer and, when ready, upload your edited picture (it’s under the File menu). It will cost you L$10 to do this. It’ll probably end up in the Textures folder of your Inventory.
Finally, edit your profile and drag the texture (ie. your uploaded picture) onto the appropriate picture box of the profile. Or, alternatively, double-click on the picture box and browse for it.
Hopefully your picture will look correct again – it will have been stretched out to the correct aspect ratio again. If it has not you’ve probably used the wrong ratio for the wrong box. Remember, for your main picture it should be 4:3 and for a Pick it should be 16:9
Also, bear in mind that it will only look right on 1.x Viewers since Viewer 2 uses different ratios.
That’s it! I hope that this was useful to you.
This post has been superseded. Click here for the updated post.
I’m sadly well aware that very few people read my blog and that even fewer have the technical ability or desire to build their own Viewer from the source code, but I know there are a handful and this is for them.
Firstly there is a LOT of pain. Lots of getting all the right libraries, support tools, resources and the like before you even begin to struggle with compilation errors.
Mariana Latynina is blogging about compiling under Linux64, and has tried several code bases including Phoenix
And Forestaurora is blogging about Phoenix under Windows
You can see from there quite how much work is involved in getting a compile done. Surely it has to be easier than that?
(Oh, and a ‘hi’ to Tonya as she’s probably the only person who will read this post and even then only because I’ll point her at it. LOL)
Update: The guys at Radegast have the right idea. Ok, it’s not a full Viewer, but even so it’s the kind of thing we’d like to see:
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.
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.