Remote WebGL Demo

We invite you to try our Remote Android WebGL demo of Android Temple Run 2 which runs on Mozilla Firefox. It will also run on newer versions of the Chrome browser. It currently will not run under the Internet Explorer browsers. The "Full Speed" version runs at between 30-60 fps. Our experience shows that the demo runs on the Linux, Mac OS and Windows versions of the desktop browsers. It does not work on the mobile versions of these browsers. There are some reports of firewalls that have been reported that block this demo.

Tell us about your success or problems with the demo since it is still in testing stages.

Here is a Technical Explanation and Non-Technical Explanation of the WebGL demo.

Normally to play this game remotely, you would virtualize the Android environment on the server and send the rendering stream to the remote client. Input events from the remote client would be sent to the server. This demo is not interactive, a prerecorded rendering stream is sent to the browser based remote client.

Background

The game under Android ran at 47 fps on a Nexus 7, at 800x1205 resolution, from which this rendering stream was captured. The demo loads 18 Mbytes of compressed textures and vertices. The rendering stream (2.4 Mbytes) is also loaded rather than being streamed for convenience. At 40 fps, the average streaming bandwidth would be 25 kBytes/sec. To zoom the window size press ctrl and mouse wheel, up or down. Ctrl "+" or ctrl "-" also zooms the window size up or down.

Instructions

Please be patient. The first invocation will download 20 MBytes of data and might need some time to download. If you get a pop-up message about a "Unresponsive script", press the Continue button. After the first invocation of the demo the data files for the demo are normally cached and execution starts with little delay.

Rendering Techniques

The rendering techniques used in this demo are different than the two approaches commonly used for browser based high-end graphics, either:

  1. Run a JS graphical application in the browser and render with WebGL, or
  2. Render on the server and send a compressed pixel stream via H264, VP9 or orORBX.js.

Our Approach

The approach that we take is somewhat intermediate between the two above. A JS application runs on the browser that receives a compressed OpenGL rendering stream. The stream is uncompressed and WebGL renders the frames. For the technical explanation, click here. For the non-technical explanation, click here.

Main Advantages of Our Technique

  • Very low streaming bandwidth.
  • High framerate.
  • Bandwidth is largely resolution independent.
  • No need to render pixels in the cloud. No GPU's needed in the cloud.
  • The image quality is not compromised by compression.
  • Low latency.

More details can be found in our whitepaper.

We believe that the most interesting use for this technology lies in remote Android apps in general rather than remote gaming which is a special case. We are now working on WebGL demo's that will demonstrate these applications.

Our approach can provide for the much discussed "convergence" between Chrome OS (or Firerfox OS) and Android. The whitepaper details a number of possible use cases.