I Want to Write QML

I like writing QML, and now I am going to explain why. First, let me just introduce what it is. QML a new(-ish) language from the Qt project for building cross-platform user interfaces. Technically, QML is the language, QtQuick is the standard library with the visible components, and there are other official and non-official add-ons and libraries as well. However, but I will just lump them together because their basic advantage is not the set of components, but rather how the code is written.

VNC and RDP client in QML

I created from scratch a client for both VNC and RDP desktop-sharing protocols using RealVNC and FreeRDP libraries, respectively. Both client libraries were integrated into an texture texture in a QML graphic. The client is full-featured, including support for input events, mouse cursor transaction, mouse grabbing, and remote sound playback. Integration of framebuffers into a QML scene enabled seamless graphical effects and animations. Animations were used to switch between protocols, as well as for drawing custom UI next to and on top of the remove view.

MyndPlay Occulus integration

A VR-enabled scene with a video playing and graphs displaying real-time data from a head-mounted sensor This was an experimental proof-of-concept project which included integrating a large number of different technologies: Stereoscopic VR-enabled rendering using modern OpenGL, embedded into a QML application Post-processing, including lens distortion and aberration correction, using Qt Graphical Effects Reading sensor data directly from an Oculus Rift device, bypassing the official SDK, and progressively adjusting the view to match the head movement Exporting and importing a complex 3D scene from Blender, appropriately handling lighting, transparent surfaces, and different materials Displaying multiple interactive objects inside the 3D scene A video file Interactive QML-powered menu Semi-transparent graphs backed by readings from a brainwave sensor Interactive control of both the scene (adjusting lighting, video playback control, movement) and rendering (tuning the VR distortion and corrections) Making sure it all works on Windows, OS X, Linux and Android Due to all the different technologies included, this was a very intensive project, demanding a large amount of flexibility from my side.