This Month in Xilem, June 2024

Daniel McNab, July 3, 2024

We released Vello 0.2.0 at the start of the month, which included some key improvements discussed in previous months' updates. We also merged initial handling of Emoji (vello#615), which supports glyphs which use the COLR specification (Apple's system emoji font does not use this format and so currently will not render). In-flight work includes an enhanced testing setup (vello#610), GPU memory allocation robustness (vello#606), and improved correctness for some unusual strokes (vello#607). The GPU-Friendly Stroke Expansion paper has been accepted to High Performance Graphics 2024, and will be presented in Denver on July 26. A revised draft of the paper is published on arXiv.

Screenshot of an app, containing a 4x4 grid of labelled Emoji, zoom in and out buttons and pagination controls. 'cat face with wry smile' is selected

A toy Emoji viewer example (xilem#420) running on Android. This example uses system fonts, so has limited platform support because of the caveat mentioned above.

xilem#310 brought in some new ideas about how Xilem Core can be structured, which enables support for specialised kinds of View, such as for window properties. Adapt views built on this were used to create an Elm-inspired example in xilem#401, showing the flexibility of the Xilem architecture. Philipp Mildenberger has been prolific in his work on Xilem, as a co-author of the new Xilem Core, and in adapting Xilem Web to use it. He also worked to bring support for OneOf views to Xilem Core in xilem#394 - these were previously only supported in Xilem Web.

Masonry's observability support has also been improved, with automatic tracing to a temporary file in debug builds added in xilem#384. xilem#396 implements rfcs#6, changing the architecture of Masonry to make it easier to write new features and tests.

There was also some excellent community engagement with Xilem in June. Veniamin Ilmer has created an open source Minesweeper game using Xilem. The discussion on Zulip (in #xilem > Minesweeper converted from Iced to Xilem) has been very useful in guiding areas for improvement.

A window titled Minesweeper, with text in the top-left 'Mines: 82', a top-center button with a neutral ASCII emoticon, and a board represented by a grid of buttons 30 wide and 16 tall, where some buttons are replaced with colour labels containing digits, and some buttons contain an exclamation mark.

Screenshot by Veniamin Ilmer of their Minesweeper game, used under the Apache 2.0 license.

Following on from May, Olivier wrote and published a report on our experience of the RustNL unconference. This led to some useful discussion online - see the zulip thread corresponding with that post for links. We are now in the final month of the May-July 2024 roadmap. In the intervening time much of the work has been started or completed, although there have been some changes of priorities. I expect that we will soon be looking at prioritising items on our long-term roadmap.