There has been a lot of work in the last few days in different directions for OpenSim / SL browsers.
- Adam Frisby is starting in on a ground up viewer (sadly, Vista only)
- MW hacked up SL in a browser (sadly, windows only)
- The Hippo Viewer (an OpenSim-ifying of the SL browser) has been released (yay! Linux binaries as well!)
- Rich White has been modding the SL client for 2nd graders as part of project greenbush. (not released yet, but apparently Windows and Mac builds)
I started playing around with Hippo Viewer, which has very nicely let me convert a bunch of my test environment to mega prims. So much nicer than large link sets. In the process I started thinking about all the ways in which people are making changes to the SL client to suit their needs. A non comprehensive list of items people seem to want to change are as follows:
- prim policy – how big can a prim be? how many can be in a link set? What’s allowed to be physical? What are the limits for attribute changes (like % hollow).
- appearance policy – what modifications can the client make to their appearance. (for 2nd graders Rich removed the “take of clothes” option)
- url references – where does the search box go to? where does the front page go to?
If you start looking at these you see a theme. All of these are decisions that the server really wants to make (so it gives the control to the grid opperator), but that today are hard coded into the client. So much of what exists in the Second Life viewer today is a shared construct between the server and client. An understanding.
But as we extend past the 1 use case of Second Life (or the 2 if you include Teen grid), we find that the policy created for that one use case falls pretty short when creating different use cases of the underlying technology. By default, it means that users are having to dive in and change the client if they want to do something different. Fundamentally they are gutting the Second Life ™ use case out of the Second Life open source client code. As a side note, we’ve tried really hard in OpenSim to keep the use cases out of the platform so that many conflicting ones can be implemented. While not always successful, the multitude of uses that you can see on Planet OpenSim show we’re doing at least fair to middling on that front.
A few features of My Ideal Viewer
So, back to a few thoughts on my ideal viewer, and what it would do. I have no allusions we’re going to get there any time soon, but it doesn’t hurt to write down a few thoughts:
- Cross platform. If it doesn’t work on Windows, Mac, and Linux I don’t think it will have any real chance of being univeral
- URL bar. We keep talking about this a being ubiquitous browser like experience. Imagine if Firefox didn’t have a URL bar. Having ogs://osgrid.org/Wright%20Plaza/128,128,22 do the right thing is really important. I can put that link in a webpage, or IM it to someone. And all the addressing scheme needed is there.
- Don’t do auth up front. One of the issues with the viewer today is that you have to put in account information before you can ever have your first conversation with a simulator. Why? HTTP defines a way to ask for auth later. If we talk about moving between grids we need to have the ability to do that. It also raises the question of not asking for auth. Some times a read only pseudo anonymous view of the app is appropriate, but that’s hard to do today.
- Let the server define more policy. Once you are connected to the server it should be able to tell you:
- Various relative applications urls (search, money, map, etc). The non existance of these urls means turning off the feature.
- Limits for the environment. This include build policy (i.e. size of prims), appearance policy, and any other policies you’d like to define. These would of course be server side enforced, but letting the client know what the min / max values of dials should be would be a huge help (and let you have a single viewer work for SL, osgrid, and thousands of different 3D apps built on top of OpenSim).
- Content plugins for the viewer. One of the things many people want to do is experiment with different types of content integrated into the environment. One of the massive wins for HTML was letting you embed anything as long as you specified a mime/type. And one of the big wins for netscape was defining an interface where you could write a plugin to handle foreign mime/types. You would need at least 2 types of content plugins. A surface content one and an object content one (i.e. 3D content in a different format). This is a good place where the SL use case runs against many others. People want to define a surface as an off site image url, but this breaks part of the SL use case in charging for content uploads.
These are by no means a comprehensive list of what I’d like to see, but it is a flavor. The power of the technology with a viewer that is that flexible would be incredible, and the number of use cases it would be applicable to would be way what can be supported today without digging in and modifying the code yourself.
Comments always appreciated, even if you think I’m just a moron for what I’ve said here. I’ll be traveling a bit over the next few weeks, so if I don’t get back to you quickly, it’s not you, it’s me being on the road. And, as a reminder, these views by no way represent my employer, they are mine alone. 🙂