Skip to content

Commit 6c3286e

Browse files
committed
Refinement of TMIL 25 blog post
Also updates the date.
1 parent ec44d1e commit 6c3286e

5 files changed

Lines changed: 45 additions & 25 deletions

File tree

.typos.toml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,7 @@
22
# https://github.com/crate-ci/typos/blob/master/docs/reference.md
33

44
[default]
5-
extend-ignore-re = [
6-
"colour-science",
7-
# Ignore lines ending with <!-- typos:disable-line -->
8-
"(?Rm)^.*<!--\\s*typos:disable-line\\s*-->\\s*$",
9-
]
5+
extend-ignore-re = ["colour-science"]
106

117
# Corrections take the form of a key/value pair. The key is the incorrect word
128
# and the value is the correct word. If the key and value are the same, the
Lines changed: 44 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ title = "Linebender in 2026 Q1"
33
authors = ["Raph Levien"]
44
+++
55

6-
Apologies for the delay in the update, as the past three months have been a hectic time. Two of the core Linebender team members, myself and Daniel McNab, have moved across the world and started full-time jobs at Canva. Getting onboarded has taken a lot of time and energy, but fortunately, work on Linebender crates remains a core part of our responsibilities. And in the meantime, the community has been pushing forward.
6+
Apologies for the delay in the update, as the past three months have been a hectic time.
7+
Two of the core Linebender team members, myself and Daniel McNab, have moved across the world and started full-time jobs at Canva.
8+
Getting onboarded has taken a lot of time and energy, but fortunately, work on Linebender crates remains a core part of our responsibilities.
9+
And in the meantime, the community has been pushing forward.
710

811
## Vello
912

@@ -21,12 +24,11 @@ Vello Hybrid is currently at roughly beta quality; there are some rough edges st
2124

2225
While we were hoping for a project called Vello API to provide a unified, low level API encompassing both Vello CPU and Vello Hybrid, we ran into more complexity and difficulty than intended.
2326
There are two abstraction layers that can be used for a variety of renderers, both Vello and other renderers including Skia.
24-
* AnyRender, which is part of Blitz.
25-
* Imaging, which is part of the Understory family of crates.
26-
27-
28-
These two crates are fairly similar in scope, but with different emphasis. AnyRender prioritizes ergonomics, while imaging is focused on performance, including handling external GPU-resident textures.
27+
* [AnyRender], which is part of Blitz.
28+
* [imaging], which is part of the forest-rs organization.
2929

30+
These two crates are fairly similar in scope, but with different emphasis.
31+
AnyRender prioritizes ergonomics, while imaging is focused on performance, including handling external GPU-resident textures.
3032

3133
### Glifo
3234

@@ -38,13 +40,13 @@ To handle these functions, we created a crate called "parley_draw" inside the Pa
3840
The crate has now been renamed to "Glifo," and has moved into the Vello repo.
3941
The new location is to reduce the friction to iterate on the implementation of atlas-based glyph caching.
4042

41-
For a more recent discussion of the scope and goals of Glifo, see the thread [Glifo: A seperation of concerns](https://xi.zulipchat.com/#narrow/channel/197075-vello/topic/Glifo.3A.20A.20seperation.20of.20concerns/with/584192738). <!-- typos:disable-line -->
43+
For a more recent discussion of the scope and goals of Glifo, see the thread [#vello > Glifo: A separation of concerns](https://xi.zulipchat.com/#narrow/channel/197075-vello/topic/Glifo.3A.20A.20separation.20of.20concerns/with/584192738).
4244

4345
In the longer term, we would like to see Glifo become independent of Vello rendering and be adopted by other projects in the ecosystem, but for the time being it should be considered in development.
4446

4547
## Parley
4648

47-
Parley has seen slow but steady features.
49+
Parley has seen slow but steady improvements in features, including:
4850

4951
* [parley#536] enumerate system fonts on mac using CoreText
5052
* [parley#540] Load fonts from system, and provided paths
@@ -59,24 +61,31 @@ Other projects which now use Parley but have not previously been mentioned are:
5961
* [Gosub engine](https://gosub.io/)
6062
* [drafft-ink](https://github.com/PatWie/drafft-ink) (infinite canvas whiteboard)
6163

62-
It's gratifying to see all this adoption. It seems like recognition that Parley
64+
It's gratifying to see all this adoption.
65+
It seems like recognition that Parley is a viable text layout library for a broad range of applications.
6366

6467
## Xilem and Masonry
6568

66-
Masonry move to imaging ([xilem#1696]).
69+
Masonry has moved to [imaging] as an abstraction over the 2D rendering engine ([xilem#1696]).
70+
Previously it had been hardcoded to use Vello classic.
71+
Because imaging supports a wide variety of back-ends, Masonry can now operate in a wider variety of environments, including Vello CPU for rendering not requiring a GPU.
6772

68-
A bunch of new widgets: Svg, Divider, CollapsePanel, StepInput, RadioButtons, Switch, Clip, Split (TODO: get complete list)
73+
Masonry has bunch of new widgets, including Svg, Divider, CollapsePanel, StepInput, RadioButtons, Switch, Clip, Split.
6974

70-
New layout system ([xilem#1560]).
75+
Masonry now has a new layout system ([xilem#1560]).
7176

72-
Work to move towards ui_events and reduce dependency on winit.
77+
Masonry is using `ui-events` for more of the integration with system capabilities, including IME (input method editing).
78+
This reduces the dependency on winit, and opens the door to deployments not dependent on winit.
79+
In the [#masonry > Embeddable GUI backend](https://xi.zulipchat.com/#narrow/channel/317477-masonry/topic/Embeddable.20GUI.20backend.2E/with/582566308) Zulip thread, there is discussion of embedding Masonry in a VST plugin, using baseview instead of winit.
7380

7481
<!-- Should we mention that work on Placehero has stalled out now that it's no longer funded?-->
7582

76-
We're seeing some cool Xilem apps in the ecosystem, including a port of Runebender to Xilem ([Zulip thread](https://xi.zulipchat.com/#narrow/channel/197829-runebender/topic/Runebender.20Xilem/with/574012987)). That's especially gratifying to see, as it was the "hero app" for Druid for several years.
83+
We're seeing some cool Xilem apps in the ecosystem, including a port of Runebender to Xilem ([Zulip thread](https://xi.zulipchat.com/#narrow/channel/197829-runebender/topic/Runebender.20Xilem/with/574012987)).
84+
That's especially gratifying to see, as it was the "hero app" for Druid for several years.
7785

7886
<figure>
79-
<img style="height: auto;" width="1280" height="720" src="rb-mar-16-2026.jpeg" alt="A screenshot of Runebender. On the left is a Bézier path of a lowercase n being edited in a string, and on the right is an image showing many weights of the Instrument Serif font.">
87+
<img style="height: auto;" width="1280" height="720" src="rb-mar-16-2026.jpeg" alt="A screenshot of Runebender.
88+
On the left is a Bézier path of a lowercase n being edited in a string, and on the right is an image showing many weights of the Instrument Serif font.">
8089
<figcaption>
8190
A screenshot of Runebender Xilem.
8291
</figcaption>
@@ -95,6 +104,8 @@ A screenshot of Scrolled Quran.
95104

96105
## Related ecosystem projects
97106

107+
There's a lot of interesting activity surrounding Linebender, including projects that use Linebender crates, and adjacent bits of infrastructure.
108+
98109
### Subduction
99110

100111
It's long been clear there is value in more fully exploiting system compositor capabilities, but it's a hard problem and Linebender projects have so far just been using plain windows and swapchains.
@@ -107,24 +118,37 @@ To learn more, see the [Subduction: System compositor integration](https://xi.zu
107118
<figure>
108119
<img style="height: auto;" width="912" height="744" src="subduction_screenshot.png" alt="A screenshot of subduction, showing native mac widgets">
109120
<figcaption>
110-
A screenshot of the subduction sample app. There are AppKit widgets for text editing and a button, and geometric shapes.
121+
A screenshot of the subduction sample app.
122+
There are AppKit widgets for text editing and a button, and geometric shapes.
111123
</figcaption>
112124
</figure>
113125

114-
115126
## RustWeek
116127

117-
There are two talks from Linebender affiliated people: Nico Burns' [talk on Blitz](https://2026.rustweek.org/talks/nico/), and Taj Pereira and Alex Jakubowicz' [talk on WASM](https://2026.rustweek.org/talks/wasm/). In addition, Linebender is one of the [Unconference](https://2026.rustweek.org/unconf-intro/) tracks. If you are interested in participating in the latter, reach out to me, as I'm the designated community leader.
128+
There are two talks from Linebender affiliated people: Nico Burns' [talk on Blitz](https://2026.rustweek.org/talks/nico/), and Taj Pereira and Alex Jakubowicz' [talk on WASM](https://2026.rustweek.org/talks/wasm/).
129+
In addition, Linebender is one of the [Unconference](https://2026.rustweek.org/unconf-intro/) tracks.
130+
If you are interested in participating in the latter, reach out to me, as I'm the designated community leader.
131+
132+
## Get Involved
133+
134+
We welcome collaboration on any of our crates.
135+
This can include improving the documentation, implementing new features, improving our test coverage, or using them within your own code.
136+
137+
We host an hour long office hours meeting each week where we discuss what's going on in our projects.
138+
See [#office hours in Zulip](https://xi.zulipchat.com/#narrow/channel/359642-office-hours) for details.
139+
We're also running a separate office hours time dedicated to the renderer collaboration, details also available at that link.
140+
Note that office hours are on a break for the remainder of the year.
141+
They are expected to continue in January, keep an eye on Zulip for details.
118142

119143
[xilem#1560]: https://github.com/linebender/xilem/pull/1560
120144
[xilem#1696]: https://github.com/linebender/xilem/pull/1696
121145

122-
123146
[parley#536]: https://github.com/linebender/parley/pull/536
124147
[parley#540]: https://github.com/linebender/parley/pull/540
125148
[parley#551]: https://github.com/linebender/parley/pull/551
126149
[parley#563]: https://github.com/linebender/parley/pull/563
127150

128-
129151
[Scrolled Quran]: https://github.com/RagibHasin/scrolled-quran
130152

153+
[imaging]: https://github.com/forest-rs/imaging
154+
[AnyRender]: https://github.com/dioxuslabs/anyrender
File renamed without changes.

content/blog/2026-04-09-tmil-25/scrolled_quran_index.png renamed to content/blog/2026-04-14-tmil-25/scrolled_quran_index.png

File renamed without changes.

content/blog/2026-04-09-tmil-25/subduction_screenshot.png renamed to content/blog/2026-04-14-tmil-25/subduction_screenshot.png

File renamed without changes.

0 commit comments

Comments
 (0)