
The Emerald Viewer for Second Life is dead. If you find copies online, don’t download them. If you have an old copy, delete it.
The Emerald saga needs to be written. It is a story of “open source” gone horribly awry. It is a story that reflects horribly on the makers of Emerald, as well as reflecting horribly on Linden Lab for creating an official viewer so gimped that more than half of the players of Second Life preferred Emerald. Somebody needs to write the story to give us a detailed account of what happens when software development goes wrong. Unfortunately, I can’t write it. I only know the generalities and not all the dirty details. I’ve written about Emerald before, as well as about some of the crap some of the devs have engaged in, but I have not followed the whole story completely.
Let me give you the basics as I understand them. Back around 2007, Linden Lab released the source code to the main viewer as “open source” as a way to speed up development and squash bugs, and it was a success. They also opened up SL to be used by 3rd party variants of the official viewer. They also open sourced the LSL Libraries which included a program affectionately known as “copybot”. Many consider this last move to be a mistake as it resulted in many of the problems in SL today, but the release of the libraries also have given programmers insight into how SL works, leading to the development of Open Sim. Copybot is, in its official form, an extremely useful tool, and restricted by permissions, but being open source, programmers can remove the 2 lines of code that restrict permissions and be able to copy anything in Second Life except unmodifiable scripts. It is also not user friendly in its library form, so hackers started incorporating copybot as an easy to use “feature” inside of their third party viewers. One of the first to do this was a viewer called “Onyx viewer”. It included the unrestricted hacked copybot as a tool as well as a ton of other hacking tools usable in Second Life.
The author of the Onyx Viewer was Phox, aka Lonely Bluebird, aka a few other names. Despite it being an underground viewer someone took notice that the legitimate features were actually useful. A group of programmers including Phox all working on viewers got together to form Modular Systems, and created the Emerald Viewer, a feature rich alternative to the official viewer. The feature that made Emerald become popular as a third party viewer was of course bouncing boobies, but other enhancements with the radar, macros, built in animation override, and IM enhancements caught on with players.
Now some of the features that Emerald offered were not part of Second Life. They worked by accessing databases run by Modular Systems rather than Linden Lab. Anyone who used Emerald to log in to Second Life, also connected to Modular Systems. In the beginning the connection to Modular Systems seemed innocent enough, but some openly wondered if they were collecting data with these connections. Turns out they were.
Then Linden Lab released official viewer 2.0, and there was a nearly unanimous sentiment that it sucked. Support for the old viewer ceased at LL, leaving it up to 3rd party viewers to give the people what they wanted. LL answered back by requiring third party developers to register with LL and putting restrictions on what these viewers could and could not do. About half of the third party devs quit developing over this, and there was strong sentiment within the group developing Emerald to do the same. Linden Lab, sensing a backlash, revised their restrictions, and Emerald was back on board.
Over the summer, Emerald kept growing in popularity, more popular than the still buggy official viewer. Some reports suggested 70% of the people logging onto Second Life were using Emerald, and because Emerald had a feature allowing you to see other Emerald users, these reports were believable.
When the majority of the players in SL are using a 3rd party client, that is not a good thing for Linden Lab, no matter how you slice it. LL needed a way to reverse this trend and found it in a file called llkdu.dll, a proprietary file licensed only to the LL’s official viewer (due to patents owned by Kakadu Software) designed to speed up rendering of jpeg2000 files which is the format of every texture in Second Life. All other third party viewers use open jpeg to render. Emerald created their own called emkdu.dll and left it closed source, violating the GPL in which the third party viewers operate. Apparently in reaction to pressure from LL to open source the file, another notorious hacker involved in Emerald development, Fractured Crystal, did something amazingly stupid. He used an unknown exploit built into the Emerald viewer to create a denial of service attack on a rival developer’s website (the same guy that exposed Modular System’s data collections), bringing on even more severe wrath from Linden Lab. In order to try and save Emerald, Fractured Crystal quit the team. Other exploits have been discovered in the Emerald code as well, making the whole viewer look very suspect.
Linden Lab threatened to pull Emerald off the list of approved viewers unless changes were made, such as the removal of Phox (and two other known hackers) from the development team. The other two hackers quit, Phox refused. Instead, all the other legitimate developers quit the Emerald team and Modular Systems.
I should point out that all the details in the last two paragraph are not verified, and the actual details and time line are all a bit fuzzy. The only sources come from blogs set up by some of the other Emerald Developers like Jessica Lyons. I’d love to read a detailed blow by blow account of what has really been going on from both the Linden Lab perspective and the Modular Systems perspective. There was probably some good drama going on behind the scenes at both places that I can only speculate on.
Emerald is now officially taken off the approved SL viewer list, and as the only developer of Emerald left is a notorious hacker, it is advisable to stay the hell away from it. A lot of former Emerald users are also changing account passwords as a precaution.
An approved viewer with many of the same features as Emerald is Imprudence, which has been around a while and is the favored viewer of Open Sim for Macintosh (there’s a PC version too). Not yet approved viewers in development which are based on Emerald, minus the questionable code and features, are the Phoenix viewer and the Ascent viewer. I have not tried any of these yet, but with Emerald uninstalled, I will soon.
UPDATE: All versions of Emerald are now being blocked from logging in to Second Life. The Phoenix and Ascent viewers are now officially approved third party viewers. This blog post, has some more details on this whole mess.