WebGL Streaming is optimized for Qt Quick and allows you to run remote Qt Quick applications in a browser.

I'm working on a platform plugin to run remote applications in your browser, using OpenGL command streaming.

When the remote application runs using this new platform plugin, the application will create a lightweight web server. When a user connects to the application, a web socket connection is opened between the server and the client, using QWebSocketServer.

The application running on a remote computer will serialize all GL calls to binary data and sends it using the web socket connection.

The local browser will send the event (mouse, touch or keyboard) to the remote application, so user interaction is allowed. Even multi-touch support! (up to 6 fingers):

https://www.youtube.com/watch?v=hK5hsEsXpxk

And some Qt Quick demos running in the browser:

The "calqlatr" example:

https://www.youtube.com/watch?v=CbSK6ihMUaA

"clocks" example:

https://youtu.be/e4JpjqqhDts

"emitters" (particles) example:

https://youtu.be/K5QX57S2gnQ

"samegame" example:

https://youtu.be/x0Xh7MNjueU

Desktop browsers are also supported:



It allows multiple connections to the same application.

New windows are shown in a different canvas in the browser.

To improve the performance, I'm also working to support web sockets compression. To be able to use the permessage-deflate extension. It's actually working but needs more testing.

This feature is going to be introduced in Qt 5.10 as appears in the 2017 roadmap.