Adam Frisby

What is Xenki?

with 8 comments

I was reading some of the trackbacks about the original Xenki article that I wrote and came across this particular piece, with the truthful accusation that the original post was rather fuzzy unless you are already familiar with a lot of the technology.

Xenki (Snowcrash reference?) is a browser add-on able to show the OpenSim environments inside the browser. The original post is amazingly fuzzy at explaining what it does exactly (just technobabble to anyone not deep into coding) but its the very basics of getting 3D inside a browser in a similar manner OpenSim renders the same content inside its client.

Well, it’s time to correct that with an introduction to the background technologies I’ve used in Xenki, their benefits and finally a summary of what the hell it is.

An Introduction to XBAP

XBAP is a browser technology that Microsoft recently developed - it first appeared on the scene with .NET 3.0, along with WPF and a host of other new technologies. XBAP is basically short hand for “XAML Browser APplication” - in english gibberish this means “Browser hosted .NET WPF Application”.

Which in turn means “Your standard Desktop Application, inside a tiny little browser space, but not quite.”, there’s a few major differences - first

You dont need to install anything - XBAP’s run the same way Java Applets do - they download the program code onto your computer, then launch it in a tightly secured “sandbox” so it cannot affect the rest of your computer.

No-click installation of a desktop application that cannot access the local system is actually a big benefit here - since we dont actually need anything on the local system to be able to run it, all our content is being loaded remotely anyway.

We can however for caching purposes install the application which will give it access to the local system - but this isnt required. It will display just fine on it’s own without.

An Introduction to WPF

The other acronym pushed above is WPF - WPF is short for Windows Presentation Foundation, this is a new graphics display system introduced in .NET 3.0 and Windows Vista, although it’s been backported to 2K/XP if you install .NET3.

It has some very cool features - including a well thought out 3D API which I have been using for the rendering thus far. XBAPs require that you use WPF for rendering purposes - but otherwise let you access the Windows API just fine.

And Xenki?

Xenki is basically an XBAP 3D application that works like a Java Applet. It embeds libomv for networking - so we can connect to Second Life / OpenSim style world without any issues. It does not need to be installed and runs just from within the browser by visiting a page. We can put it in a ‘portal’ on the webpage by using an IFRAME (similar to how Lively operates, except it uses an ActiveX control for rendering).

Why this approach is a good idea

The answer here is simple - we dont need to install anything, so web designers can embed Xenki controls on their website and expect people running Windows to be able to see them without any installations required. All you need is to be running a OpenSim, or have a space in Second Life that your users can be sent to, and be using either Internet Explorer or Firefox.

Finally the name - Snowcrash reference?

Yep - actualy the name was suggested by an employee at DeepThink, the fabulous Cichli Azure. Cichli was suprised to hear that only a single person has gotten the reference so far.

I hope that clears it up for people.

Written by Adam Frisby

August 9th, 2008 at 8:27 pm

Posted in Xenki

8 Responses to 'What is Xenki?'

Subscribe to comments with RSS or TrackBack to 'What is Xenki?'.

  1. This is an amazing technical achievement but it does reproduce a strategic mistake from the VRML days. You want the early adopters, designers and hackers involved in your virtual world platform in order for it to be a success. And those guys aren’t on Windows.

    Rob Myers

    10 Aug 08 at 11:35 am

  2. I’d say given the makeup of the OpenSim dev team - I’d actually disagree. Approx 60-70% are Windows users if I was to take a guesstimate.

    Check the statistics from the OSGrid viewer here: http://opensim-viewer.sf.net/ - while the sample is pretty small (only 300 users), I suspect the results are fairly representative:

    Total Users: 295
    Last 24 Hours: 77
    Last 30 Days: 295
    Total Windows: 262
    Total Linux: 38

    Adam Frisby

    10 Aug 08 at 4:42 pm

  3. [...] Running on Xenki [...]

  4. [...] discuss his exploration of the viewer possibilities associated with OpenSim, including XBAP (and Xenki), one possible method for creating a viewer that meshes seamlessly with your browser. After this [...]

  5. “Yep - actualy the name was suggested by an employee at DeepThink, the fabulous Cichli Azure. Cichli was suprised to hear that only a single person has gotten the reference so far.”

    That’s because of the X I think, and maybe that more people talk about Snowcrash than have actually read it. I totally missed it myself. Now if you had named it Enzo, Juanita, Namshub, or ‘Rat Thing’ I might have got it.

    Mo Hax

    16 Sep 08 at 4:11 pm

  6. Can you provide information, or a readme file with the released version of Xenki, or on the OpenSim wiki, with steps of how to run this gem?

    I’m sure some non-coders out there, like myself, would like to test is as it moves a long.. and it would go along way if I could actually see the progress by connecting to my own grid and seeing realtime results.

    Kris

    16 Oct 08 at 7:49 pm

  7. In regards to the balance between windows devs and linux devs, I’d have to say that many of us have had the choice to develop under windows forced upon us by the primordial choice of c#/.net as the implementation environment, back in the first days of the project.

    It hurts us.

    How? Firstly, it forces linux devs to use mono, which from a performance standpoint is demonstrably inferior to .net. It also limits participation from the linux community as many simply wont participate due to the windows centricity of opensim developement, which is yet another reason that the dev membership skews heavily towards windows devs.

    Secondly, it hurts us because for every slick thing we get with .net, we get a similar amount of pain - .net’s remoting capabilites may be usefull to us, for instance, but they are limited and we are powerless to extend them in more usefull directions.

    Additionally, the gradual shift towards more and more windows-centric technology progressively moves the platform in an exclusively windows direction. Already I have people considering Xenki as a potential solution to the viewer-in-a-browser problem, and it will not bother them whatsoever that it is windows only.

    Never mind that I wont be able to use it, as I wont make a personal shift to windows on my desktop - having chosen over twenty years ago not to do so.

    All in all, the Xenki tech may be impressive - but as a windows-only solution in a project that at least pays lip-service to being cross-platform, I think any choice for new technology that excludes other platforms is a fundamentally bad move - not unlike the choice of c#/.net in the project’s early days.

    Please, Adam, you are a sharp guy - find an in-browser solution that does not exclude me and all the other unix devs out there by embedding ActiveX controls in the browser.

    Cheers!
    James

    James Stallings

    3 Dec 08 at 3:14 pm

  8. Looks like a neat project. Checked out via the
    SVN at GForge (r96). Build failed with 2 errors:

    DefaultGUI\UCMenu.xaml cannot be found
    The project file contains a property value that is not valid (probably related to the first problem?)

    Paul Fishwick

    18 Dec 08 at 1:44 am

Leave a Reply