Kataspace: browser-based virtual worlds built with WebGL and HTML5

A new open source framework called KataSpace brings 3D virtual worlds to the …

Katalabs, a small company that emerged from a Stanford research community, has released an open source framework for building browser-based virtual worlds. The software, called KataSpace, uses emerging Web standards like WebGL and WebSockets. It allows users to interact with each other in a 3D environment that loads natively in modern Web browsers—without requiring any proprietary third-party plugins.

When the user loads the KataSpace demo page in a compatible browser, they will be prompted to input a username and select an avatar. After completing those steps, the user will enter the 3D world, which is displayed directly in the Web page. The user will see 3D terrain and the avatars of other users who are in the environment. The user can walk around the environment by pressing the arrow keys. A chat box at the bottom of the screen allows the user to chat with other people who are in the virtual world.

KataSpace is an impressive demonstration of how advancements in open standards are enabling innovation on the Web. It offers a compelling glimpse at the capabilities that will be unlocked by the next generation of Web browsers. It's still a bit ahead of the curve, however, because many of the Web technologies that it uses are experimental and are not yet widely-supported across the entire spectrum of mainstream browsers. It proved to be highly CPU-intensive during my tests, but worked smoothly in Firefox 4 beta 7 on my Ubuntu desktop computer.

The KataSpace framework is implemented as a Web application frontend for Sirikata, an open source virtual world platform that is distributed under the permissive BSD license. A blog post at the Sirikata website provides some insight into the KataSpace architecture. The JavaScript-based KataSpace client uses WebSockets in the browser to connect to the Sirikata Space Server. It uses WebWorkers to process data in parallel and uses WebGL to render the environment. The 3D terrain and models are described in COLLADA files that are loaded via JavaScript in the browser at runtime.

Katalabs released the KataSpace source code and contributed it to the Sirikata community in order to accelerate virtual world innovation on the Web. Their code includes a set of scripts that help users deploy their own KataSpace-based virtual worlds in Amazon's cloud hosting service.

The demo environment that is hosted at the Sirikata website is still a relatively simple proof-of-concept, but the developers hope to use the technology to build more elaborate virtual worlds. They are collaborating with the BE Community, a research project that aims to use virtual environments to help alleviate the social isolation of young cancer victims. The Danish Child Cancer Foundation has provided pilot funding to financially support the effort.

I briefly discussed the project with Henrik Bennetsen, associate director of Stanford University's Humanities Lab. We met in the virtual world (of course), where he was helping users troubleshoot various issues. He says that the site has held up well during its inaugural public test, aside from a few challenges on Windows where avatars aren't consistently rendering for all users. The developers are already working on some fixes based on the feedback from user testing.

"It's still early on, but since it has been up yesterday we have been pleasantly surprised at how many [users] had a reasonable experience," he told me through the virtual world's chat system.

Users who want to see the virtual world in action can connect to the demo server. If you want to try running your own instance, you can find installation instructions at the project's GitHub page.

Second Life, ActiveWorlds, etc., - if they can't get it right, what exactly is this modern-day descendant of VRML going to do different? 3D multi-user virtual worlds with chat... but in HTML5! Umm... yay?

Second Life, ActiveWorlds, etc., - if they can't get it right, what exactly is this modern-day descendant of VRML going to do different? 3D multi-user virtual worlds with chat... but in HTML5! Umm... yay?

This is basically a tech demo for the underlying technology and a public bug-hunt. I'm thinking less of Second Life applications and more like the foundations for a new Runescape (which looks even lower-poly than this but is considerably popular).

At first glance, this is pretty impressive stuff. On second glance, this is only impressive because JavaScript and HTML are so crappy at most things. It's still important, as the web is such a massive platform, but in and of itself it's nothing impressive (it reminds me of when some Linux users try to claim graphics on Linux are perfectly fine by citing games that are only minor modifications of a 10 year old Quake engine and how 'great' they look).

Virtual chatrooms might not be everyone's cup of tea, but the technology demonstration is cool. Flash is going to outperform HTML5 canvas and WebGL though, but even still, its nice to know there's an open source alternative.

Virtual chatrooms might not be everyone's cup of tea, but the technology demonstration is cool. Flash is going to outperform HTML5 canvas and WebGL though, but even still, its nice to know there's an open source alternative.

WebGL is just a standardized binding for OpenGLES on web browsers. OpenGLES is a lighterweight, more limited version of OpenGL. If flash outperformed OpenGL, Crysis would be a flash game.

0megapart!cle wrote:

noshellswill wrote:

The article fibs ,,, no current browser supports KATASPACE ... so I declare this project super-heated-vapor-ware.

++

Tried this in the latest public opera beta, chrome stable, and fox 4b7, and got the same "browser not supported" message everywhere.

The concept seems pretty interesting.

Try the nightly builds of webkit. You can download them from nightly.webkit.org . They work for me.

So we get crappy graphics that wouldn't have been spectacular 15 years ago, running on a modern multicore computer at 80% CPU utilization (Win7 x64, Chrome). Heck, the original Quake looked better and ran faster even with software rendering, on a lowly 166 MHz Pentium. What exactly do we gain by running this in a browser, except for jumping on the "the-browser-is-the-OS"-bandwagon?

it is really the general idea that counts, not the current implementation. I personally do like how they've pull off this concept even though the rendering isn't all that great. The idea itself can lead to an all number of innovations in the future. One thing that annoys me is that it is still written for http. Ideas like this need their own protocol that isnt restricted by the http protocol rules. Virtual 3D dimensions like this or SecondLife need something better, something that is designed from the ground up to be for them. something along the lines of, but not restriced to, 'vdp://' (virtual dimension protocol). If this sort of protocol was introduced it might just make ideas stemming from bases such as this one more viable.

Tried it in Chrome "Your browser does not support Web GL - Currently we recommend the latest Firefox Beta 4".

So I click their link and download Firefox Beta 4 (and I double checked, I did get 4.0b7). Reloaded their demo in FF, still I get "Your browser does not support Web GL". This is a stock Windows 7 laptop with reasonable graphics hardware. And yes I did the about:config thing to enable web gl for all sites (it was already enabled in fact).

At first glance, this is pretty impressive stuff. On second glance, this is only impressive because JavaScript and HTML are so crappy at most things. It's still important, as the web is such a massive platform, but in and of itself it's nothing impressive (it reminds me of when some Linux users try to claim graphics on Linux are perfectly fine by citing games that are only minor modifications of a 10 year old Quake engine and how 'great' they look).

Graphics on Linux are fine. NVIDIA and AMD put out OpenGL 4.0 drivers, which makes it possible to run this modern benchmark featuring hardware tesselation.

I'd like to say that this will enable every one to publish a 3D world just like HTML enabled everyone to publish a web page. Then I rofl'ed at the thought of 3D Anglefire / Geocities.

Then I stopped rofl'ing and admitted to myself that this was a not a great idea.

No, I actually think that this is a great idea and should happen soon. But for that, I think, we need a new browser that is more suited to the task, and not another bastardization of what was originally a HTML document viewer. It should be similar to the WWW idea in that only the protocol and data description languages are standardized and IP-unencumbered. Everyone needs to be able to run their own server, and there needs to be the concept of a hyperlink (that's where Second Life fails.)

WebGL's primary advantage, as I see it, is that it's designed from the ground up as a real-time graphics layer. Canvas and SVG, the only alternatives for graphics processing in a browser client, have extremely limited redraw performance. This is mainly because they're not necessarily designed with animated graphics in mind (SMIL and other bolt-ons aside).

It is like there is a momentum out there to try to do things with inferior technologies. I have long since believed that the correct way to make web as a platform is not to strenghten JavaScript bit-by-bit; but opening it up so that other technologies - which have already proven to be more capable - be allowed to seemlessly run on client side.

Heck; even Flash's popularity somehow can't seem to drive the message home to the powers-that-be!

Open up the browser for other languiages; work on getting a sandbox model if security is critical or some other trust-based model; and then let each language figure out what it wants to expose and what not. Standardize not on the browser; but on the availability of language compilers/interpretors on devices and let languages decide which libraries they want to support; or make it transparent for them to download their dependencies. That is where the engineering efforts should focus; not on recreating 1990 era demos!

Man, I'm totally getting flashbacks to VRML chatrooms in the late 90's with this stuff.

And it appears to be just as slow and buggy as it was in 1996, even w/15 years of better hardware. I worked for a few years on VRML applications back then, and while it was sad to see it crumble appart, I don't see how it will be any different this time around.

OK, following Wheels of Confusion's comment, I assume your goal isn't to be VRML redux.How do you see this as different? What's your vision for where you would like to take this? Is it just about having a space to chat in, or do you have longer-term goals?

That is a good question and fundamentally a very large one too so here are some thoughts for starters:

The truth I that we don't have it totally figured out. I think there is an element of putting something out there to see how it shakes out. That being said we are people who have worked in the 3D space for a while so this is a response to certain problems we see with current 3D.

First of as jollyllama2 remarked there is value in being able to say ""Go to this link!." I think it was illustrated well last night after this piece run and people starting hitting the server. A lot of people were just able to log right (presumably being tech savvy already running beta browsers etc.) but the bottom line is that getting people access to your 3D environment is traditionally hard. So being able to say that if you are already running a modern browser I can just send you a link in email is a lowering of friction to 3D not previously possible. As an analogy think of what it meant when YouTube were able to show you a play button of a page vs. downloading a file in the hope you had the right player and even codec? Lower friction made online video really take of; maybe it can do something similar for 3d?

Staying with the analogy of video it also turned out that watching broadcast tv was not the only thing that video on the web enabled. The content found a new shape and language; often short form clips. Similarly on iTunes i buy songs but I used to buy albums when I bought physical media. We read books, newspapers and now articles on Ars. Things have a way of changing when becoming available in a new place. So far we have had to deliver multiuser 3D as large scale games or virtual worlds. Maybe the unit size can change now KataSpace allows you to download your own 3D environment? Maybe more long tail usage becomes possible? Things only possible in this new medium is what I am personally dying to see.

So there is lots to find out. With stuff like this that live in the complex system of the web we did not feel we could figure it all out. But thought that putting it out there under an open source license so people could have at it would be a interesting way to run the experiment

Since this article ran last night about 10K people hit our page. Lots took at look at the code. Some reached out whilst others joined our dev list. So something seems to be happening. Later it will be able to tell you what it meant.