Here's my ATypI talk on the Rust secure font stack we're working on in the Chrome and Google Fonts teams, powering our open-source font rendering stack, and starting to be featured in Chrome M131 beta:
I also have a half-finished blog post where I intended to go into more detail, but I'm posting this now because I hope it can provoke some interesting discussion. I'll put a little more context here, and I'm also happy to answer questions.
One of the main things I can't do in the current graphics API is run a 2D renderer within bounded memory, at least without having a fence and readback to the CPU, which could tank performance. The underlying problem can do it, but you need to be able to dynamically dispatch the various parts of the problem and use queues to connect the pieces, which compute shaders can't do. The recent development of work graphs can do queues and bounded memory, but...
@raph Hey Raph, just watched/listened to the talk. Amazing stuff. I have a comment, and a few questions, if you have time 🙂
Comment: Array of low-powered CPUs? TIS-100 did it first!!! :-)
Questions:
- What do you think of Mojo? IIUC, it's a big advance in the "lowering computation graphs to heterogeneous hardware, currently Python + SIMD, potentially arbitrary computation graphs"
- I was going to ask about your instincts for what the "right" language might look like, but you covered it in Q&A
I'll be presenting our paper on GPU-friendly stroke expansion with @armansito at HPG 2024 today in Denver.
We've put together a landing page that has a 40 second "fast forward video," a link to the paper, and also a fun interactive demo (written in Rust, based on xilem_web).
I am glad that Harris is our (presumed) candidate now, I need to add my bit to the wave of contributions that has been rolling in after Biden's announcement. That said, the media-driven effort to force Biden's resignation was appalling. Some background: I am in my 60s now, I have some idea of what is waiting for me in the next 20-30 years, because in the last 3 years three parents and parents-in-law died, all in their eighties.
I am glad that Harris is our (presumed) candidate now, I need to add my bit to the wave of contributions that has been rolling in after Biden's announcement. That said, the media-driven effort to force Biden's resignation was appalling. Some background: I am in my 60s now, I have some idea of what is waiting for me in the next 20-30 years, because in the last 3 years three parents and parents-in-law died, all in their eighties.
Today is a good day to go to Quaker meeting. I've had a feeling of things being unmoored, not making much sense. That hasn't changed, only sharpened a bit. I don't have answers, nor will my meeting, but what I will find there is a group of people feeling the same things and wanting to make the world better.
We're not known for our proselytizing, but Quaker meetings are open and welcoming to all who seek. If you've been curious, today might be a good day.
The animations were all hand-coded in Rust and rendered in Vello in real time. Just a screen record in OBS to add the voiceover, no other editing. This feels like a preview of the potential for this infrastructure to support high-powered creative tools.
I'd like to share with you the "State of Text Rendering 2024", a survey of the Free & Open Source fonts & text rendering landscape advancements since 2009.
@armansito and I have been working for many months on a paper, GPU-Friendly Stroke Expansion. We're pleased to say it's been accepted to HPG 2024, and we'll present it July 26 in Denver.
A revised draft is at https://arxiv.org/abs/2405.00127. There's a lot of stuff in there, both math for the geometry of curves and GPU implementation techniques. We'll have some more material as we get closer to the conference and put together the talk.
@raph@armansito That's looking pretty nice!
I had to read it a couple of times to roughly understand it, but def ended up getting very useful stuff out.
Could you also share the "number of published techniques for GPU rendering of filled paths"?
Ty for sharing and congratulations on getting it accepted 😊 💜
As paper co-chair for the High Performance Graphics conference (together with AMD's @AaronKnoll1) I am incredibly proud to announce that the paper line-up is now officially available on the HPG'24 website:
I'm taking next week off, and thinking of going to Harbin Hot Springs for a day or two. Last time I went with a Quaker friend. This time, I could go by myself (and the solitude does sound appealing), but I'm also wondering: is there anybody in the Bay Area who might want to go with?
@raph - Showing some new fun 2D GPU rendering tools being built. Parley crate for font rendering, something that I've seen many people saying has been lacking in Rust UI kits for quite some time (fonts are hard). Xilem and Vello for all your performance rendering needs.
I'm on the train to Delft for #rustnl2024 . I still have more work to do on the slides, and am a bit tired from the flight, but I'm sure it's going to be a great experience and I'm looking forward to meeting lots of people.
I was not able to do a lot of implementation work on Xilem because I was trying to meet a paper deadline, but the community has really come together, and I think the demo will be impressive. It's come a long way just in the last couple of weeks.
A major project I've been working on for many months is rendering vector graphics strokes on GPU. @armansito and I recently wrote a paper on our techniques, and it's now available on arXiv (and also submitted to a relevant conference): https://arxiv.org/abs/2405.00127
I'm very proud of this work. Fingers crossed the paper gets accepted.
A major project I've been working on for many months is rendering vector graphics strokes on GPU. @armansito and I recently wrote a paper on our techniques, and it's now available on arXiv (and also submitted to a relevant conference): https://arxiv.org/abs/2405.00127
There's a lot of work here that's under the surface: GPU stroke expansion, progress on the Masonry refactor (which, among other things, will enable using the widgets with different language bindings or reactive layers), and font loading.
We're also really looking forward to @rustnl next month. That will be a great place for people interested in Rust UI to come together.
A week ago I figured out that the evolute of an Euler spiral (Cesàro equation κ(s) = s) is another simple power law spiral, the Cesàro equation being κ(s) = -1/s³. The writeup is at: https://linebender.org/wiki/curves/euler-spiral-evolute/
None of the math for this was very hard, in fact I can see the result being obtained hundreds of years ago if anyone had bothered to look. A challenge for math enthusiasts: does the result generalize to other spirals with a simple power law?
@raph I think there's some omitted words(?) in the post in the sentence "In this derivation, we'll fluidly mix complex numbers and 2D vectors, writing." At least I wasn't sure how to parse it.