Quake + X3D = 3D Web browser

After attending a talk on SecondLife at the Transmediale festival (Berlin), I ran into Achime there and we got talking on the way home about 3D on the web. we both agreed that SecondLife‘s graphics and performance were well behind commercial games and wondered why this should be. I also didn’t like the way that you have to buy ‘land’ in order to create anything in SecondLife. Its like a new type of internet, but with only one server that controls it all.

A 3D client

The Quake 3 engine source code has been made open source for a long time now. Its a far superior real-time 3D rendering engine to anything the SecondLife people are likely yo come up with any time soon. Perhaps the argument is that the Secondlife client is supposed to provide access for the wider audience. Well, I guess if you adapt one Quake engine you can do them all. The Quake 1 engine is also available for download and use under a GPL licence. Further, one of the speakers at the ‘Designing your Second Life’ discussion had problems on her virtual art opening as she couldn’t move and was forced to stand in one spot for most of it.

Open standard server for all

So we can do better with the client, but what about the server technology. X3D is an open standard that replaced theVRML language that was a flash-in-the-pan back in the late 90s.

3D Content authoring tools

One of the other things Quake might contribute to a new 3D web is authoring tools. There are already plenty of them for Quake and army’s of people who know who to use them. If you can write a converter between Quakes own BSP file format and X3D, as you would have to and what the core of this project is about, then you can take advantage of this massive community of 3D content developers that already exist int he gaming community.

The time is right

Why has 3D online become a big question when it didn’t take off in the 90s? Shirky had a few ideas about it at the time. There appear to be a few reasons it the time is right:

  • 3D graphics cards were not as standard as they are now. Every Mac has one now and even office PC come with a low-end one these days as they are cheap
  • Application was sketch. A classic case of the hammer before the nail. What would you use 3D on the web for. Now that SecondLife has started to take off and MMOG sales are making online gaming one of the biggest uses of online time. In short, people want it.
  • Bandwidth is more readily available. 3D models are big and real-time interaction in these environments needs fast relay times of chunky information. This is finally here on an affordable basis.


The reason Netscape was so huge is because it took graphics (images) to a text medium. I think this leap in technology is going to be just as revolutionary as the Netscape 1.0 browser was. If a serious 3D browser emerges which is as good as the Quake3 engine, is free and the server technology is free, then the Willam Gibson vision of the web may finally have arrived.

Some questions…

So this brings us to a few questions about what the nature of a 3D web would be like:

  • What would a 3D search engine look like? What would its results look like?
  • Would you want to interact with other looking at the same ‘site’ as standard?
  • How will/could hyper-linking work
  • Since you are designing the web browser from scratch, would you include all the new web ideas like P2P for downlaoding content? Perhaps torrent technology would be the protacol?
  • Is space only useful if you are sharing it with others, such as in SecondLife or is this only useful for online communities?

55 thoughts on “Quake + X3D = 3D Web browser”

  1. Taking stock on your comments related to bandwidth – with less than 17% of the world connected to the internet, I’m betting less than 5% of the world have broadband. Because of that, a virtual world may have to account for the grey areas if it wants to be successful.

    When you have broadband, it is easy to think that everyone has broadband. To this date, though, that thought is incorrect.

  2. Great post. Other alternatives include the torc engine, some of my coworkers are playing around with that. Where I see a problem is that there are different needs by different groups and I don’t see a one size fits all approach working. I love the concept of a metaverse, but I fear that what we will end up with because Second Life is poorly implimented (though I give them great props for taking the metaverse concept to the mainstream…and they did a much better job then I could have ever done) we will see the market fragment, with multiple products competing with each other. I as an academic tech guy don’t really need to have avatars that have the ability to have virtual sex…a fury doesn’t need to have flv video streaming like I need. Will one platform work? It could…but I’m skeptical. There are a lot of needs to be wrapped into one box. It is a very exiting time though and I’m glad I’m involved with whatever comes of these early experiments.

  3. Taran: I’m only interested in the 17% that are online, which is still a couple of million people. Of those, from the Google analytic data on one of my high volume sites aimed at ‘average’ people (i.e. non-techies): 81.37% are on Cable/DSL, 7.35% Dial-up and, 7.09% ‘Corporate’ (Cable or faster). Broadband is here baby!

    (besides, you could turn off ‘textures’, reduce models polygon complexity etc to reduce bandwidth requirements). Back to the point…

    Cliffordb: When your talking about ‘different needs for different groups’, HTML tackles this problem and in a similar way X3D will do the same. What I’m really saying in this post is that X3D will replace HTML in the ‘3D Web’, so it will be open to plugins like FLV steaming, maybe even embedded Flash in X3D, so surfaces that are fully interactive Flash!

    As for the interactivity, avatars etc thats an open question. I guess that would be up to the ‘web developers’ like it is on web forums today (i.e. weather you can see the other people currently logged in, send them a message, see avatars from other who have posted etc).

    I’m not sure what you are talking about with this ‘metaverse’ business…? Please elaborate.

  4. The metaverse is a concept taken from the book Snowcrash written in the early nineties. I forget the author’s name (Neil something…), but he predicted that there would be this all encompassing 3D virtual environment where people worked, played, and sometimes fought called the metaverse. What is signifigant is that Neil made his prediction in the early 90ies and his writtings heavily influenced how Second Life and other 3D MUVE’s (Multi User Virtual Environments) were engineered.

    X3D may be the HTML of the future, but until I see X3D browsers reach the performance level of Quake 3 or even Quake 2 I am skeptical. Even today in our hi-bandwidth world XML wrapped data tends to hog bandwidth. Applications processing data in real time, even with quad processors and graphic card arrays I believe will fail to reach that near reality looking world that would become the metaverse if they are processing data from a bloated pipe. Quake 3 and the Unreal Tournament engines are able to reach their peformance levels because the maps are all pre-compiled and the data is streamed with very little meta data and often in a binary format. Maybe X3D would work if data is transmitted with a binary serializer to take the bloat out of the data pipe. Maybe large chunks of static X3D worlds/display areas could be compiled down to the bit level before transmission to the end clients so objects load and display faster. I believe there is already work being done on this, so maybe things aren’t that far off. If this would happen I think X3D would fly.

    Even with the above other software engineers will take different approaches and create different products. HTML became a standard because of a set of unique circumstances that I’m not sure exist in the 3D virtual world market. I will tell you this, having one standard would be great and I’m all for it. I’m not anti-X3D at all, I’m just not at the point were I see it as the contender for the global standard of the 3D web yet. It would be nice if it became that, but I don’t think this can be forced. Adoption of X3D at this point is slow, until that changes all bets are off.

    This is my opinion only, which is semi informed I guess. Take it or leave it :)

  5. Yes, I defiantly think there will have to be a lot of work on the server side. Quake can operate as a client but the server is another ball park. I guess to begin with simple compressing of the XML files can be achieved with an Apache mod already.

    Once the models are loaded then its just a matter of transmitting coordinates of movements and events. The level of detail would of course be up to the client software and the hardware available to it. It can’t be that difficult as there have been online deathmatch servers since Q1.

    I think that the first 3D browser would become as much of a success as the first graphical HTML browser was (i.e. Netscape) for the same reasons: there is no other and its cool.

    The only draw back I see is that 3D content is harder to produce than Text 2D images. It requires special tools for content authoring, talented people to make a few sites that get the whole thing kick started and creative teams to do it well. I guess back in the early 1990s HTML content wasn’t SO fantastic ether.

  6. Its very easy to create a 3d world, then share it on your webpage. Multiuser chat even. Dynamic 3d with real lighting etc can look very good but its very heavy on the computer. With x3d, you can just burn textures, it still looks good..enough for today, and …you can even embed a .flv video easily onto geometry and with ExitReality the flash interface is fully interactive within an x3d world. The Quake worlds in x3d I have seen look really good!

  7. “The metaverse is a concept taken from the book Snowcrash written in the early nineties.”

    The concept is much older than that; it goes back at least to the 1960’s. Snowcrash may have introduced it to a new generation but that’s all.

    As for using the Quake engine, I’m not sure it’s all that well suited for virtual environments. Engines like the Quake engine are written for very different kinds of environments and usage scenarios. Among other things, Quake worlds don’t usually have hundreds of remote users, and Quake worlds don’t get rebuilt while levels are running.

  8. I think Quake3 servers DO have hundreds of users in their online deathmatchs. WoW also manages this.

    Why does the world need to be rebuilt?

    Yes, Quake will have to be _adapted_ but as is would make a crude start, but a start non-the-less!

  9. I don’t think this is feasible in application like Second Life is. For an engine like Quake 3 you need to pre-compile a lot of data and that takes a lot of time. The lighting is all pre-calculated for example, and applied as a texture. This is a classic space-time trade-off. The download time would then go up.

    For an application like Second Life, where things ‘rez’ in-front of the player it would just take too long. Quake Live, for example, does function in the browser but all the maps and models are downloaded ahead of time. So in this way it is not an example of browsing the web and discovering new 3D content. User-created content is out of the question.

    However computing power is getting good enough to have almost nothing pre-calculated, which is great. You might be able to get away with just downloading textures and geometry on the fly, especially in the future with faster broadband. However, with advances in computing power, even some fairly convincing textures may be able to be procedurally generated at runtime faster than it would take to download them.

    But I would say it’s not there yet for general PCs. You still need fairly powerful graphics cards for dynamic lighting engines. I am certain something like this will come about in the future though.

  10. Virtual world engines and FPS engines are very different beasts; in particular, FPS engines cut a lot of corners on the graphics right now. With better algorithms, you can probably build a virtual world engine that’s also good at FPS, but you can’t take the current generation of FPS engines and use them for virtual worlds.

    As for Second Life, they are opening up: the protocols are documented, LL has open sourced their viewer, and there are third party implementations of both the viewer and the server.

    There have been a couple of challengers that had better graphics, but they were far more proprietary and they failed.

Comments are closed.