During the Virtual Worlds Think Tank last Thursday, I got to thinking about what the 3D Internet may mean. I was considering some of the limitations of Linden’s current engine, which is one of the technologies that may move us in the right direction.
Linden have stated that they want to put the Mozilla engine (Gecko) inside Second Life. This is potentially a great move. Right now, in order to display a web page on a prim or surface, you have to take a snapshot of the page on some proxy outside of SL, and then grab and render the image inside SL. By putting the browser inside the engine, you potentially have access to all the richness of the browser as an application platform.
But, let’s wait for a minute and think about how useful this is. I’m a 3D person in RL, sitting at a 2D computer interface which enables me to deal with information. Now I start using Second Life or some similar technology, and all of a sudden I’m looking at a 3D representation of myself moving around a 3D environment – a 3D Internet, if you will.
So, if we just put the browser inside that environment… don’t we have a 3D person in RL looking at 2D screen… which contains a 3D person in SL looking at a 2D screen?
You can already perform an HTTP request from within LSL (the scripting language of Second Life). This is great – standards-based integration, providing a way of getting data from the rest of the Internet into the environment, to enrich any objects that are built there. Our own epredator Potato and colleagues have been using this to get data from various external systems, to great effect.
The problem with llHttpRequest is that once you’ve got the response, you have no easy way of parsing it. There’s no XML parser in LSL – you are back to good old-fashioned string parsing. This makes SOAP/HTTP calls cumbersome to impractical; it’s a good argument for REST-based services, but even then, if you are getting back anything more than a tokenised string, it can be a pain to deal with.
To me, the point of this exciting new environment is that we can present information in an entirely new way. Once the current stability issues are sorted out, I’d really like to see LL make it easier to deal with the information that we can pull in from the outside world. An Embedded web browser would be cool, but I think it (partially) misses the point.