Evento 27 Maggio EN

27
May

2D Scene Graph GUI in Rust

Start time: 18:00 CEST


Duration: 2h


Format: webinar

Where: online


Language: English


Price: Free

Speaker

Gerhard de Clercq

Software engineer
KDAB

I am a 22-year-old South African who has recently completed his bachelor’s degree in electronic engineering and started working as a software engineer at KDAB.
I was particularly intrigued by the GPU-centric approach taken by Qt Quick 2, which is why I now want to play with the idea of building something similar in Rust.

Abstract

Implementing high-performance GUIs on low-performance hardware requires the use of high-performance programming languages which has traditionally meant C++ or C. But, now that Rust has become a serious contender in other spaces where C/C++ traditionally dominates, using Rust for high-performance, GUI sounds like a logical next step. This is not possible yet, but there are plenty of projects out there trying to accomplish this. The thing is, most of these attempts appear to be taking an approach inspired by traditional GUI frameworks instead of the GPU-centric approach taken by Qt Quick 2 which is arguably the market leader for embedded GUI at the moment. This talk presents some details on the differences between these approaches and then goes on to discuss the challenges faced when trying to implement a proof of concept GUI of a system inspired by Qt Quick 2 in Rust using WebGPU for cross-platform GPU access.


Outline

  • Why do we want a GUI framework in Rust
  • What does Rust currently have to offer in this space
  • How do traditional GUI frameworks work
  • How do modern GUI frameworks work
  • How is Qt Quick 2 more GPU-native than most others
  • What are the advantages and disadvantages of the QQ2 approach
  • How can WebGPU help to replicate the QQ2 approach in Rust
  • A demonstration of a proof of concept implementation of this idea
  • A discussion on the challenges faced/lessons learnt
  • Some Rust tricks that I picked up
  • Tools and resources
  • Ideas for future work

Who it is for

Intermediate level.


Prerequisites

Basic knowledge of Qt and Rust.


Required materials

None.


Certificate of attendance

A certificate of participation will be issued at the end of the session

Watch on Youtube

Share on

Follow us on