Interactive web pages on surfaces

There are a handful of 3D engines and games which support this rather unusual feature. Second Life is actually the only one I know of… below is a video which displays the feature, although it doesn’t show that the links on the page on the cube’s surface can also be clicked directly:

I was wondering if any amount of Python scripting could make the same thing possible in BGE. Can web pages be dynamically loaded and displayed on a flat surface? But most of all… can such pages be interactive, so that hovering over a link and clicking it will cause an action on the page to happen just like a normal web browser? What about web pages with more complex elements, such as Java applets or Flash?

As an advanced example: Would it be possible to create a flat plane, UV unwrap it, put an “interactive HTML” script on it, and give it an URL to a Youtube video? So when you press P to start the game engine, you see the page but can also watch and hear the video on it, or can click related videos to have the page change?

I imagine this would be nearly impossible, but maybe I’m wrong. First of all, an entire web browser would need to be coded in BGE, and I’m not sure if Python can alone do that. Even if this was possible, the next question would be how clicks on the surface of a 3D object can be translated to clicks on the web page, so links and menus can be used. I guess things like Flash also functioning would be totally out of the question.

It is possible, but it would not be easy. I don’t know of any pure-python web browser implementations. Nothing would stop you from getting one of the open source web browsers and modifying them to render into a texture instead of to a native window. But that would probably require a decent knowledge of how to build and modify that particular web browser.

If you could get the browser to render into a texture then that could simply be UV mapped onto a any surface you wanted. If you had that capability it would not be difficult to get a point on the surface and reverse the process to pass a click to the browser. The hard part in this case is simply getting a browser that can render to a texture.