Adam Frisby

3D in the Browser

with 7 comments

There’s been a rush of discussion recently about embedding virtual world technologies in the browser, I have seen two Java3D based implementations (which are very clever and deserve a closer look - especially if either is Open Source).

Tish has written up an interview with Avi who I mentioned earlier, on 3D in the Browser, the technologies and where things should be going - he’s very eloquent and I agree with pretty much everything he has to say. Avi added a companion piece with just a table of definitions and a small commentary on the article, which leads me to add my own comments on things.

First - the best browser is one that we dont need to install much onto the clients system, because the hurdle of making a plugin popular is a big one. XBAP is great for this since you dont need to install it to run it - it runs on a sandbox on it’s own just fine.

The downside to this is that we lose things like Local Caches which dramatically increase the load times when frequenting common areas - it would be nice to be able to optionally “Preview, then install” something we might be able to do via the XBAPs (one mode restricts to sandbox, other presumes it’s installed). Some experimentation in installing easily is going to need to be done.

I’ve been doing some further experimentations with XBAP (and yes, I’ll be posting the latest Xenki code shortly), and discovered some interesting things. First - 3D performance is no worse than a standalone WPF application, Second - it runs on Windows 2000/XP and up - I previously assumed it was Vista only, and was pleasantly suprised to find out this is not the case. Third - getting security certificates needed to automatically launch directly without install actually wont be too painful afterall (as long as libopenmv can get signed, we’re good.).

Cross Platform, Java3D?

The cross platform issue still remains elusive, which is why Java3D has caught my eye recently - given the similarities between C# and Java, it strikes me as potentially useful to be able to take large chunks of Xenki, run it through a special compiler and produce something that will run on Linux and Mac too.

The question becomes: why not use Java directly and skip the C#/WPF bit? Well the answer here is somewhat a personal one, first is that WPF is a lot easier to work with - this is an unfortunate fact of life, but doing things like UI ontop of 3D frames and doing it cleanly and efficiently is something that WPF has done so much better that there is almost no competition between them.

I personally have a preference towards doing things as quickly and cleanly as possible, worrying about making it functional rather than working on structural work that has already been done before - however if someone has already produced a good embeddable engine for Java on 3D pages - I’d be very tempted to at least try and give it a shot.

Java3D does also have the downside that it still sits in a sandbox, and the sandbox is mandatory - there’s no way we can implement a local cache using it to the best of my knowledge, I personally feel that the installable option is a very good way to cross the barrier between ‘hosted’ and ‘installed’ once the user is familiar.

Updated Xenki Sources

As stated above - I’m going to push the new xenki sources out in the next 24-48 hours. Watch this space as I will post the URLs and also the SVN address where I will be keeping changes.

Written by Adam Frisby

August 9th, 2008 at 6:17 pm

Posted in Xenki

Tagged with , , , , , ,

7 Responses to '3D in the Browser'

Subscribe to comments with RSS or TrackBack to '3D in the Browser'.

  1. Flash. The installed user base is massive- no plugins needed, and brings a lot of players to the table who can seriously disrupt everyone. The latest version has decent support and 10 will be amazing. I’ve already wandered through 3D environments, and it’s been fantastic. Now if Flash could become a standard, it would be even cooler.

    Eric Rice

    9 Aug 08 at 8:22 pm

  2. Flash doesnt support actual 3D though.

    It has some good 2D rendering libraries however it cannot do hardware accellerated 3D, so rendering even the most modest 3D scene will cause it to crawl to a halt.

    Adam Frisby

    9 Aug 08 at 8:27 pm

  3. As far back as I can remember (and going back to the mid-90s doing support for a game company), the desktop always has and always be a bane– even 2D had varying results based on all the wildcards of people’s computer systems. This is part of why I’m looking at pre-fabbed, predictable systems like consoles– where there is consistent user experience.

    I find it funny tho, navigating the web on the console browsers is as frustrating as the desktop because of the various methods people publish in– is it flash 6, 7, 8, 9? How come X works but X doesn’t. I can’t even believe TWITTER won’t work on some browsers, and that’s just a TEXT thing.

    So yeah my logic is a bit twisted. Flash might not be perfect, and the experience will vary (and not even be ‘real’), but that’s no different than the environment we have to deal with anway.

    Eric Rice

    9 Aug 08 at 8:36 pm

  4. Well, therein lies the beauty of the XBAPs. Check my most recent post (”What is Xenki?”) for why it’s awesome.

    Adam Frisby

    9 Aug 08 at 8:47 pm

  5. Signed Java applets can access the file system (see image uploaders for various sites). So you could sign a Java3D applet and it could have a local cache.

    Rob Myers

    10 Aug 08 at 11:31 am

  6. How does that work security wise?

    Surely if it’s just a matter of signing then suddenly any hacker could embed a ‘bad program’ on a page an get it to run locally?

    There must be some kind of installation method?

    Adam Frisby

    10 Aug 08 at 4:39 pm

  7. [...] simply wasn’t mature enough. Now, a year later, OpenSim is much stabler, and stuff like Adams Xenki looks [...]

Leave a Reply