Live data from Hacker News

State of Text Rendering 2024

behdad.org

61–70 of 77 posts

Re: State of Text Rendering 2024

#61

Earlier quoted context omitted.

The page fights against zooming by reducing the text size to compensate. I can zoom in somewhat only if I press Ctrl + fast enough many times in succession, but then it is easy to overshoot.

Interesting, when I zoom in to 300% the T in TLDR is exactly 3x taller than when at 100%. Seems to be an embedded Google Doc though so the canvas does a weird recentering jerk on viewport size changes.

Zoom works until the page width is about the browser width. After that it starts fighting your zoom level.

Re: State of Text Rendering 2024

#62
Servo is tagged as dead but the revival seems to have somewhat worked. I guess nto nearly as many full time people than when it's was under Mozilla umbrella but not dead. And by the look of it neither is Pathfinder the rasteriser.

Re: State of Text Rendering 2024

#63

RustyBuzz is quite limited when compared with HarfBuzz. The Rust fonts scene also seems to lack the necessary momentum to drive things through. I’m not sure whether it’s because the Rust community is mostly interested in webtech or whether Rust itself makes it hard to solve such complex problems. But I don’t see the sands shifting in less than 10 years to come.

>RustyBuzz is quite limited when compared with HarfBuzz.

As the main author of rustybuzz I'm surprised to hear this. If you need a text shaper, rustybuzz is mostly a drop-in replacement for harfbuzz.

Text shaping and TrueType parsing are hard problems, but Rust does not make them more complicated. Quite the opposite. In fact, rustybuzz is written in 100% safe Rust. I would even go further and say that Rust is the only sane option for solving text-related tasks.

Re: State of Text Rendering 2024

#64
post #22

> Moreover, the fontations platform, which is the Rust framework Oxidize is producing, will unify font compilation and consumption, reducing the number of places new font-format features need to be implemented from three (FontTools, FreeType, and HarfBuzz) to one (Fontations), which would reduce development cost and overhead. Will FreeType and HarfBuzz remain supported as C/C++ projects long-term, I wonder? Asking as…

I'm confused. When has a wasm interpret and small C program ever been the same thing?

Re: State of Text Rendering 2024

#65
post #5

I'm not sure how this gets rendered, but the lack of hinting makes it a strain to read. What irony that an article about progress in text rendering has such awful rendering quality. PS: That is in Firefox. In Chrome it uses what appears to be a bitmap font, which is much worse.

I believe this is a Google doc preview. On my iPad it had terrible scrolling performance, and the shortcut to scroll to the top of the page (tap the top edge of the screen) doesn't work :(

indeed it is, as meanwhile confirmed at the top of the document.

Re: State of Text Rendering 2024

#66
post #60

> [It is ironic indeed, that a text about text rendering, is presented in such an inaccessible and badly-typed environment. This is a Google Docs Preview page. I am still yet to find a solution that provides the same features (collaboration, commenting, live edits) and is presented better. Suggestions are appreciated.] Have you tried Observable? Their online notebook has live team editing built in, and the option to…

Tangent, but I just found Observable. How are they pivoting their product?

Before they tried to build a business with their notebooks alone, but they recently released Observable Framework[0], which is "a static site generator for data apps, dashboards, reports, and more" that you can install and run offline via npm[1]. IIUC the business plan is to make money by hosting the generated sites on their website, and offering tight integration with their existing notebook tech to continue to let people edit those cooperatively.

I really hope they succeed because I'm a big fan of both Observable notebooks and the new Observable Framework (and their Observable Plot library is pretty good too. Really, they have tons of good stuff).

But basically, they now have two products, as mentioned in the "overview" section of their docs[2].

[0] https://observablehq.com/framework/

[1] https://github.com/observablehq/framework

[2] https://observablehq.com/documentation/learn/overview

Re: State of Text Rendering 2024

#67
post #22

> Moreover, the fontations platform, which is the Rust framework Oxidize is producing, will unify font compilation and consumption, reducing the number of places new font-format features need to be implemented from three (FontTools, FreeType, and HarfBuzz) to one (Fontations), which would reduce development cost and overhead. Will FreeType and HarfBuzz remain supported as C/C++ projects long-term, I wonder? Asking as…

I wouldn't worry about it. I don't see evidence that these Rust libraries have the kind of uptake that is alleged in the article. I think we'll be stuck with Freetype and HarfBuzz for a long time.

I have been hacking on a Rust program recently and I am using Freetype and Harfbuzz via FFI because the Rust packages he names don't appear to be mature yet.

Re: State of Text Rendering 2024

#68
post #37

Earlier quoted context omitted.

Slug preprocesses font curve data into something without the need for the global parse with the .slug file format.

what exactly do you mean by 'global parse'? it's very usual, i think, when operating on data stored in files, to parse them into in-memory structures before operating on them? but it feels like you are talking about something specific to vector rendering slug builds acceleration structures ahead of time. the structures are overfit to the algorithm in a way that ttf should be but which is economical for video games. t…

I'm referring to needing to traverse all path segments to determine the winding order for an individual pixel. You can't solve this problem locally, you need global knowledge. The easiest way to do this is to build an acceleration structure to contain the global knowledge (what Slug does), but you can also propagate the global knowledge across (Hoppe ravg does this).

Re: State of Text Rendering 2024

#69
post #62

Servo is tagged as dead but the revival seems to have somewhat worked. I guess nto nearly as many full time people than when it's was under Mozilla umbrella but not dead. And by the look of it neither is Pathfinder the rasteriser.

This is mentioned later in the document:

> An experimental engine Servo originally launched by Mozilla as a successor to Gecko, is implemented in Rust. It was eventually abandoned by Mozilla when Mozilla Corporation announced laying off a quarter of its staff in 2020 and transferred to The Linux Foundation, then in 2023 to TLF Europe. While still experimental, it has been under active development again since 2023. Servo currently uses Rust bindings to Harfbuzz.

I'd say Servo is going pretty well. The git is fairly active and monthly updates on their blog paint a positive picture of the rate of progress. I try the engine out roughly monthly after the blog posts drop and when I last did a few days ago I was impressed to see a lot of my most used websites being displayed correctly. At this rate, I think it could become viable much sooner than we think. However, the project is still critically underfunded, currently only getting a monthly $2229USD according to their website.

Re: State of Text Rendering 2024

#70
post #4

Nice article but sometimes I don’t know what’s worse - the state of linux audio drivers, or the state of linux text rendering. It’s very easy to see when FreeType is used because it just looks off in a few, but significant ways. I’ve used it with and without Harf. DirectWrite has been a joy by comparison.

I’m resigned to the fact that I’ll be dead before Linux fonts look good. That’s true of many Linux features, actually. “Public” software is the quality of most public infrastructure, sadly, and smells vaguely of piss.
Post reply on HN