OnLook: Server-Side Configuration

As promised at OSCC’15, here is a post explaining how to configure OpenSim in order to experiment with the OnLook viewer.

OnLook experiments with two orthogonal UX features: (1) the user’s representation inworld; and (2) the GUI. I’ll talk about them separately.

Camera-Only Mode

Description: The camera-only mode, as the name suggests, presents a view of the virtual environment without the user’s self-avatar. In other words, it’s a just a camera into the world. You can move the camera using the arrow keys, more or less like you would move the avatar. In reality, the user avatar is in the world, and others will see it; but it’s just standing there, without moving, and the person operating that avatar won’t see him/herself. (This could potentially be expanded to also remove other avatars except, perhaps, NPCs, but I haven’t done that yet)

Implementation: The server-side implementation of this mode is under OpenSim/Region/OptionalModules/ViewerSupport/CameraOnlyModeModule.cs

Configuration: Add this somewhere in your ini files:

[CameraOnlyModeModule]
     enabled = true
     ;; Users with UserLevel equal or less than this will be sent this mode.
     ;; Others above will not. 
     UserLevel = 0

Special UI Module

Description: The special UI module allows us to control the buttons shown on the bottom of the viewer. It also hides the top menu bar.

Implementation: the server-side implementation of this mode is under OpenSim/Region/OptionalModules/ViewerSupport/SpecialUIModule.cs

Configuration: There are two parts to the configuration. First you need to define the buttons you want to show in an XML file that is sent to the viewer when the user connects to your sim, then you need to turn the mode on.

I have an XML file that you can use as a starting point: get it from here and place it under your OpenSim bin/ViewerSupport. You can then do your own research and experimentation, comparing that file with the default one, for purposes of defining what buttons you want to show to, and hide from, your users.

To turn this on, add this somewhere in your ini files:

[SpecialUIModule]
    enabled = true
    ;; Users with UserLevel equal or less than this will be sent this mode.
    ;; Others above will not. 
    UserLevel = 0

Final Remarks

I want to stress that the purpose of this is NOT to design any one alternative UX/UI, so please don’t comment on the set of buttons that I chose to hide in the example XML file for the bottom panel. That’s besides the point. The point here is that YOU, as operator of an OpenSim environment, can decide which buttons to show and which buttons hide when users visit your world. And people will get different UX/UI as they visit different worlds.

Finally, OnLook is not a separate viewer project; it’s a proof-concept on configurable UX/UI using Singularity. It served to guide me through the study of how easy/hard it will be to do it for real with any existing SL-derived viewer.

4 replies on “OnLook: Server-Side Configuration”

  1. Nick Zwart says:

    Thanks Diva, I always wanted to ask you for this, and now it is here. It’s a feature that I really like, specially for educating teens. They do not have to use all buttons.!!!
    Nick

  2. Nick Zwart says:

    Can it also be used on the pie menu so they can not undress? Isn’t that another XML?
    Nick

    • Diva Canto says:

      @Nick, I’m sure it’s possible, but I haven’t gone there [yet]. What we’ve done with OnLook was just a few hacks on Singularity. The conclusion is that it is possible to send the entire UI from the server side, but in order to do it right, rather than in hacking mode, these viewers will need to go through some serious re-architecting.

  3. Neo Cortex says:

    Hmm… as soon as i enable the SpecialUIModule and enter the region with a lvl 0 avatar the OnLook viewer crashes. I created the ViewerSupport directory under my regions bin folder and have put either the modified or the original panel_toolbar.xml there. I am running OpenSim 0.8.2.0 Dev 2153a01 Fri, 7 Aug 2015 11:34:52.
    Maybe i am missing some point here.

    Enabling the CameraOnlyModeModule works as it should.

    Neo

Comments are closed.