SpotOn3d releases browser plugin for OpenSim

There have been several attempts over the past year to create a viewer for Second Life and OpenSim based virtual environments that would run in a browser. I’ve tried to write about them all, from Linden Lab partnering with GaiKai to provide a server-side rendered and streamed experience of SecondLife to Tipodean using the Unity 3D web player to render OpenSim.

Every time I saw one of these I thought — if you have to download and install a plugin, why not just wrap the full viewer up as a plugin and install that? Well now SpotOn3D has done almost exactly that:

Voila – Second Life in a Browser

It isn’t designed for accessing Second Life. It is mainly designed for embedding on Facebook pages along with Facebook user account integration to drive more adoption of SpotOn3D grids and worlds.

What they have done is to create a browser plugin which launches the full SpotOn3D viewer as a separate process, and ensure that the viewer draws it’s rendered frames onto the space that the plugin has reserved for it in the browser window. This means that the full viewer (based on the 1.23.5 Linden code base) is running, giving you the full experience. Even voice works.

The fact that the viewer is running as a separate process is useful — it should mean that if the viewer crashes it won’t take out your browser (provided that the plugin has been written to cope with the sudden disappearance of the viewer process). The plugin has been created using the FireBreath open source toolkit for creating cross-browser plugins, although it seems that right now there are no hooks for communicating from the page to the viewer other than to launch it.

To try it, head to http://3durl.com/world and install the plugin. After installation you get a choice of two grids

Choosing a grid after plugin install

If you don’t have an account you’ll need to create one, then return to that page and use the account info to log in. Then the viewer will launch magically in your browser. The viewport is fixed size unfortunately right now, but it works perfectly. There is a degree of sluggishness (I assume there is an overhead of sending mouse/keyboard input to the viewer process from the plugin) and overall everything felt somewhat slower than running the client natively. However, there’s no denying that it is a full SL viewer-in-a-browser.

Arriving in SpotOn3D... in a browser. Yep, still in the browser. (Image by Neil Canham.)

So just what has been achieved here, other than an interesting technical feat? Right now the drive seems to be to try to hoover up some of the Facebook herd. Reduce the barrier to entry for the curious. I can see that having some value, if you have a business model requiring lots of users, as SpotOn3D does I think. But those users must have a great initial experience.
If you make it a few clicks to get in, the user will have little commitment and hence will just as easily flit off somewhere else. And if this thing takes off, SpotOn3D could get hit by hundreds suddenly dipping their toe in the virtual water – how will the grid cope? Is it going to load balance them off to copies of the sim? Will there be staff on hand to greet them all? It will be interesting to see how this plays out.

It is important to realise that having the viewer launched as a plugin does not bring with it the advantages that a true ‘browser’ based viewer would have. The full viewer is still running, requiring relevant permissions to install it, and all the same firewall requirements that the full viewer has. This is not going to help with adoption of immersive environments in enterprises, other than maybe providing a foot-in-the-door (“Oh, yes, it runs in the browser”).

I guess I should mention Kitely in the context of creating easy to access OpenSim virtual worlds. In fact there’s not so much difference between the approaches. Kitely installs a plugin, but their plugin launches a separate client rather than embedding it in the browser. However right now their account integration with Facebook is already done, and they give you your own region that spins up on demand.

So how did I log into SecondLife with it? By accident when trying to work out how to “close” the embedded viewer — I wasn’t sure that closing the browser tab would log me out so I used the viewer menu to log out – and there is a lovely grid drop down and manager, so you could connect it to any SecondLife or OpenSim server. Bear in mind that the SpotOn3D viewer isn’t in the SL 3rd party viewer directory. And why not just launch the full viewer?

My home location in Second Life. Did I say this was in a browser?
(Article reprinted with permission from KnowSense.)
neil.canham@hypergridbusiness.com'

Neil Canham

Neil Canham is CTO and partner at vComm Solutions GmbH and an experienced agile software developer and mentor. He was also a co-founder of Flying Island Limited, and is interested in the ways that collaborative 3D immersive environments might help companies with managing and training dispersed teams.

  • Neil —

    Thanks for the report! I just used the viewer to log into my company grid and OSGrid — also by accident. I mityped my SpotOn3D password and got the standard Hippo login screen — where I added the grids I wanted to visit.

    From a practical standpoint, this is just the same-old, same-old Hippo viewer. Same firewall issues, etc…

    But from a psychological perspective, it's GREAT. It runs in the browser. It was, for me, very quick to load, and easy to use and pretty darn responsive!

    I can definitely see Kitely using this to package up the Imprudence viewer — with the Whisper/Mumble voice plugin pre-installed — and deploy it to their on-demand grid.

  • P.S. Hypergrid teleports work great, too. At least, on hypergrid-enabled grids. 🙂

  • Hi Neil,

    Just one small correction, Kitely doesn't just give you one region that starts on demand, we give you as many worlds as you want. Each world is officially 1 region but we have 4-region worlds already running on Kitely, e.g.: http://www.kitely.com/virtualworld/Maria-Korolov/

  • Hi Maria,

    This type of viewer "embedding" is quite simple to do. It can be achieved by passing the viewer frame buffer to the plugin and having the plugin pass mouse and keyboard input back to the viewer for use when generating the next frame. It is also possible to proxy all the communication to/from the viewer to/from the server via the plugin to make it easier to bypass Firewalls (using a similar approach to what I proposed for the HTML5+WebGL based solution, see: http://www.youtube.com/watch?v=3t2s47TAiI4 ).

    This type of plugin/viewer combined application may, however, require relicensing the plugin as GPL which is what SpotOn3D may be forced to do with their plugin solution. for more details, see my various comments at: http://nwn.blogs.com/nwn/2011/07/opensim-in-faceb

  • Umm wait a minute guys. I read this is not open source and is patent pending and copywritten and the investor owner is, I think a lawyer who deal with this kinda stuff – ip and patents and stuff. How are you going to use it for your stuff and not get in trouble?

  • Hey Iian, you pointed to this linux journal to say SpotOn3d had to open source their plugin, but here is the article you point to says that plugins are not derived works,even if they look at the source code to make them. It sounds like a contradiction to me.
    http://www.linuxjournal.com/article/6366

    3) Derivative works are not going to encompass plugins and device drivers that are designed to be linked from off-the-shelf, unmodified, programs. If a GPL-covered program is designed to accept separately designed plugin programs, you don't create a derivative work by merely running such a plugin under it, even if you have to look at the source code to learn how.

    The guy that wrote the article you pointed to is Lawrence Rosen is an attorney in private practice, with offices in Los Altos and Ukiah, California (www.rosenlaw.com). He is also corporate secretary and general counsel for the Open Source Initiative, which manages and promotes the Open Source Definition (www.opensource.org).

  • Hi Shammy,

    I'll combine/copy/paste an edited form of my comments from the New World Notes site as they apply to your comments as well. I am not a lawyer and this is not legal advise, this is me interpreting published legal articles as a layman who has been following open source cases for many years:

    The plugin they created is not a plugin into the SL viewer (the GPL licensed code), it is a plugin into a browser that interacts with the SL viewer. If the viewer they use is GPL licensed then even a plugin into the SL viewer itself would need to be open sourced under some conditions. If the viewer is LGPL licensed then a plugin into the viewer may be free from such requirement.

    The fact that the plugin is a completely separate program that does not use GPL code does not automatically release it from the requirement to be GPL if it is "combined in a way that would make them effectively a single program". The problem is that not that they looked at open source code (GPL), the problem is that the way the plugin and the viewer interact may potentially fall under the definition of a combined program that does require them to release their plugin under GPL (it is hard to tell without knowing the exact mechanism they use). The GNU FAQ specifically mentions such combined work as potentially requiring to be GPL licensed as well:

    "However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program."
    http://www.gnu.org/licenses/gpl-faq.html#GPLInPro

    "By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program."
    http://www.gnu.org/licenses/gpl-faq.html#MereAggr

    The fact that the plugin also works with other programs does not by itself release it from needing to be released as GPL if the GPL program that it is combined with was changed in order for it to work, even if those changes to the GPL code were released as GPL.

    Copyrights are irrelevant as no one is copying their software without permission. The question is whether they need to release its code as GPL so everyone can use it.

    A patent pending is not a patent granted. They claim to hold provisional patents (and imply they have issued ones), they need to provide the relevant application/issue numbers. The open source community will very likely be able to find prior art (if it works as I've stipulated above then it exists). Due to extreme work load, patent reviewers only spend about 20 hours per patent application. Even getting a patent issued doesn't mean it is valid. I wouldn't wave "we have patents" for something that is plainly obvious as non original to anyone with some history in software development (at least in the implementation I suggested above).

    "Distributors under the GPL also grant a license for any of their patents practiced by the software, to practice those patents in GPL software." – if they combined GPL software with proprietary software, in a way that many will consider as an attempt to circumvent the intentions of the GPL license, while attempting to limit the recreation of the proprietary portion of the combined application using patents, they will most likely be violating the GPL portion of the software and lose their legal right to distribute it.

    SpotOn3D claim they support the open source community while leveraging the work of said community for financial gain without contributing their own improvements back to it (OpenSim), while at the same time claiming that their IP, that in this particular manifestation leverages GPL code (the "embedded" viewer), is patent pending and therefore closed off to free reimplementation by the open source community. This can make many open source activists quite upset. I'm not part of the Free Software Foundation ( http://www.fsf.org ) and I can't speak on their behalf but I believe that if this gets sufficient coverage the FSF may wish to go after SpotOn3D for violating the GPL – they tend to take such exploitative conduct quite seriously.

    Again, I am not a lawyer and they may be completely in the clear and have no obligation to open source their code, however, based on the information that they did provide and their responses in the comments to the New World Notes article, I would double check my legal standing if I were them.

  • Thanks for the correction Ilan.
    Shammy, I'm not right now suggesting anyone should go out and use this seriously in any way other than the way SpotOn3D intended it to be used. I'm interested in the technology and the implications of that technology if any for virtual worlds in general.

  • Whatever, the woes of patents – and I think I saw there is a patent pending – it's quite an amazing achievement regardless. If it were so simple I am surprised no one came up with it sooner. I got the plug in which basically downloads a version of Hippo viewer with SpotON3d's features added and the launching plug in for the browser, in my case firefox. I had to register a name with SpotON3d which was fine and I logged into their grid with no trouble at all. I even got freebies and tried everything. It was great!

    Then I logged out (not quit which takes you back to the SpotON3d page) so I got the splash screen up and accessed the grid list. I added loads of grid addresses including my own Open sim then even went to Nova grid which is Aurora Sim. Perfect! it worked great but, of course, Hippo has not the features needed for Aurora's variable regions. So, I went to second Life and it was perfect there too. It finally froze when I started building and moving large prims around linking. Camming worked fine for me.

    So, I think this is the beginning for sure of the 3d web. It certainly felt like it but I didn't actually try Hypergrid. I forgot that but I will later. I think SpotON3d could do well with this if no one can come up with an alternative. but they will probably get a lot of users after the plug in who don't stay on their grid. But they should gain some from it.

    If Kitely had something similar then really they would be flying away with it I think. So, it will be interesting to see how the legal part turns out.

    I will be writing something up for my blog later with pictures of my walkabout.

  • Hi Shammy,

    Just to demonstrate that what SpotOn3D created is not original and that there is prior art preventing them from patenting anything that can hinder the open source community or Kitely from reimplementing this into our own plugin please see:
    http://nwn.blogs.com/nwn/2007/10/viewing-induali…. – Where inDuality, an IBM-backed startup, offered the fully-functional Web-based Second Life viewer integrated into a web page via a plugin in 2007.
    http://mashable.com/2008/07/08/vivaty-scenes/ – Where Vivaty integrated a virtual world via a plugin into Facebook in 2008.

    There are other examples that prove that SpotOn3D's claim for having a valid patent pending that could prevent others from creating a similar solution to be very unlikely. Again, if they have a patent pending by all means provide the link to the patent application so we can determine if what is claimed is indeed original and deserving of a patent.

  • Hi Gaga,

    This has already been done by the IBM-backed startup (now no longer in business) inDuality almost 4 years ago (I provided the link in a comment that has yet to be approved because it contained links, it will appear when Maria approves it, in the meantime you can Google "Viewing inDuality: IBM-backed startup debuts fully-functional Web-based Second Life viewer").

    This should really be easy for the Imprudence team to implement using FireBreath for the cross-platform browser plugin solution. I've already outlined how this can be done in a previous comment.

    The only thing that needs checking is if SpotOn3D's claim to having a VALID provisional patent holds any water. I suspect that existing prior art would indicate otherwise. If they believe I'm mistaken they can easily prove me wrong by providing the application number so we can check what they are claiming and whether prior art exists for it.

  • Ilan —

    I tried this out at length last night and the psychological benefits of this are immense. However, there are no practical benefits for existing OpenSim users and I don't know whether Imprudence developers will bother with it or not — after all, it does nothing to improve the experience of existing OpenSim users (just slows them down a little bit).

    The main beneficiaries of such a plugin would be grid operators and hosting companies. And the single biggest beneficiary would be Kitely itself. I know you guys want to keep your Amazon-related secret sauce proprietary, but if you guys helped create this plugin you could have it use a customized version of Imprudence that would:

    * Have Whisper/Mumble already installed
    * Wouldn't interfere with folks' other Second Life viewers
    * Could automatically send a request to your Website when folks are doing an in-grid or in-bound hypergrid teleport
    * Warn ppl when they're visiting a region that charges visitors per visit
    * If they don't have a Kitely account, or are out of credits, tell them that they can't visit particular regions until they fix this — and send them to relevant webpage
    * Show their Kitely Credits balance in the viewer and automatically send them to website for transaction confirmations (though OMC is also able to do this, with just a server-side module)
    * Automatically take them to Kitely website if they want to search for anything

    Yes, this will mean that your competitors will have access to a Web-based viewer — but some do anyway (SpotOn3D) and the rest will anyway if you wait for Imprudence to develop it on their own (and you may be waiting a long time)

    Meanwhile, you'd have the complete package — instant on regions, low pricing, Facebook integration, Web-based viewer… It will take your competitors a year or so to duplicate it at least (unless they've already secretly working on this, in which case you can't do anything about it anyway). How much will they be able to figure out about your secret sauces by looking at the plugin code?

    Again, the psychological and marketing benefits of this are immense. If you combine it with proxying to get around corporate firewalls, the benefits are fantastic.

  • Hi Ilan

    I picked up the links from New World Notes and did the reading. Thanks. I tend to agree that if this thing has been done substaintially the same before then you have to question if a patent is justified. But I think Maria has written on this subject before and the threat of copyright and patents to the open Metaverse. However, if the inDuality people didn't seek a patent then what is to stop Spoton?

  • Hi Gaga,

    The fact that inDuality had a product in market creates prior art that prevents the patenting of the same technology. SpotOn3D can attempt to patent a different approach to implementing this but I doubt they have created one which doesn't already have some other form of prior art.

    There are even earlier examples of prior art for this type of program, but the ones I pointed to can be easily found by any patent reviewer worthy of employment.

  • Gaga — Hopefully, people filing briefs to the patent office pointing out that inDuality had similar technology before will stop SpotOn3D (it's not about who patents it first, its about who invents it).

  • Has anyone checked to see whether they're proxying the ports, as well, so that it can run behind corporate firewalls?

  • Hi Maria,

    There are various benefits that can be had from providing a browser-embedded viewer as part of our service and it is part of our long term vision to do so (as discussed in the video interview I linked to in a previous comment).

    I'm not ruling out getting this functionality by extending our existing plugin-based solution, but we have much higher priority things on our roadmap to deal with at this time: billing, alternative integration options, list of public worlds and quite a few other Kitely-specific improvements. After they are done we will evaluate what features will make the biggest effect on our user adoption and focus on implementing them first.

    If embedding the existing SL viewer via browser plugin proves itself to have public demand then I wouldn't rule out Imprudence or some other TPV developer working on adding this capability. This really isn't that difficult to do and the first TPV developer to do it may see their viewer adoption increase significantly.

    The solution is quite simple:

    1) Take the rendered frame buffer and instead of sending it to be displayed on the screen pass it to a FireBreath based browser plugin for rendering.

    2) Take mouse and keyboard input from the FireBreath plugin, correct to the appropriate coordinate system and pass it to the SL viewer.

    3) Modify the SL viewer appropriately by replacing calls to the relevant input/output libraries.

    As a legal disclaimer let me restate:

    1) I am not a lawyer and any legal arguments I make are based on layman assumptions and interpretations.

    2) I have not seen SpotOn3D code or any patent applications they claim to have filed.

    3) I have asked SpotOn3D to provide the application/issue numbers of any patents they claim to have.

    4) I am not endorsing people to knowingly ignore anyone's patents.

    5) It is my good faith belief that the aforementioned implementation suggestion does not breach anyone's patents.

    6) I will not be held accountable if you base your actions on the aforementioned and my assumptions turn out to be false.

  • Hi Gaga,

    The following is my free speech expression of my own personal belief:

    It is my personal belief that people who wish to see an open-source based metaverse emerge should, when posssible, prefer spending money on services provided by people and organizations that contribute to the open source community. Legality aside, keeping improvements to OpenSim and the SL viewer proprietary or trying to prevent open source solutions from being developed using vague patent threats does not merit financial support in my opinion.

    Every company has its shareholders best interests to take care off but if we all keep our improvements to ourselves then there won't be an open-source metaverse and one proprietary solution or another will eventually win and be able to force its Terms of Service on us all.

    We at Kitely have chosen to place our bet on people acting to serve their long term best interest and have given back all the improvements we've made to OpenSim so far. If people want to convince other companies that it is in their shareholders best interest to share their improvements as well then they can vote with their wallets to convince them.

    If people prefer to ignore this in order to get some attractive features that only a closed-source provider currently has then they shouldn't be surprised when they get locked in because no one is left contributing to the public open-source codebase and the open alternatives cease to exist.

    Again, this is my own person belief and not a call to boycott anyone.

  • this is just the old viewer? it is not really running "in" the browser, no more than if i associeate my JPG mime type to IE and look at pics with IE

    it is a full install of a program, not the same at all as a plug-in such as the Flash Player

  • Oh well. I have posted my view on it with pictures of my travels in a browser to my blog…
    http://metaverse-traveller.blogspot.com/

  • Gaga — I just read it — great review! I'm about to post mine, as well. I believe you are totally right — this is a big breakthrough for usability.

  • Caixa Magica

    I couldn't get into Second Life's grid. The menus (after failing the authentication on purpose, for example) don't show any other grid besides SpotOn3D. On Preferences the "add grid" button is grayed out and I can't choose another grid. What am I missing?? Thank you in advance for your help.