Elektrine
Log in Register
Paige Chat Timeline Gallery Friends Email Drive DNS Private DNS Domains VPN Kairo Nerve
Remote

behdad

@behdad@typo.social
mastodon 4.6.9
  • Open on typo.social

https://behdad.org/ #harfbuzz

550 Followers
208 Following
42 Posts
Joined February 26, 2023
Homepage:
https://behdad.org/
GitHub:
https://github.com/behdad/
Twitter:
https://twitter.com/behdadesfahbod
Gravatar:
https://gravatar.com/behdadesfahbod171155631
Open post
behdad @behdad@typo.social
· 6mo ago

Great news today for GPU-accelerated text rendering:

"""
I was granted a patent for the Slug algorithm in 2019, and I legally have exclusive rights to it until the year 2038. But I think that’s too long. The patent has already served its purpose well, and I believe that holding on to it any longer benefits nobody. Therefore, effective today, I am permanently and irrevocably dedicating the Slug patent to the public domain. ...

To aid in implementations of the Slug algorithm, reference vertex and pixel shaders based on the actual code used in the Slug Library have been posted in a new GitHub repository and made available under the MIT license. ...
"""

Thank you, @EricLengyel@mastodon.gamedev.place!

https://terathon.com/blog/decade-slug.html

terathon.com

A Decade of Slug - Eric Lengyel

177
2
104
2
Open post
behdad @behdad@typo.social
· 7mo ago

HarfBuzz 13 ships with the new `hb-raster` library. You might ask why yet another Open Source rasterizer when there are many high-quality ones available.

`hb-raster` fills two gaps in the Open Source font rasterization scene:

1. Many graphics-oriented frameworks & mobile apps don't want to include the entirety of FreeType to get gain text rendering. Many resort to `stb_truetype`, which doesn't support variable fonts, and crashes on bad font data. `hb-raster` addresses both of these issues.

2. Before `hb-raster`, rendering COLRv1 fonts was not possible without whipping up your own renderer, or pull in Cairo or Skia, both of which are otherwise unnecessary for many clients. `hb-raster` renders COLRv1 and SVG color fonts natively, & soon bitmap-based color-fonts too.

49
0
17
1
Open post
behdad @behdad@typo.social
· 8mo ago

A wave of manic energy in December had me put together a long deck called "HarfBuzz at 20! " , celebrating 20 years of HarfBuzz. 🎂

I designed the deck to be presented at the #WebEnginesHackfest later this year. Then reality hit that I cannot present this deck in any sane amount of time.

Inspired by all the great presentations coming out of #FOSDEM today, I decided that instead of tossing the deck out, I just put it out here to be read by the curious. I will present a highly condensed version at the hackfest in June.

Let me know what you think. 🙏

https://docs.google.com/presentation/d/1o9Exz1c-Lr-dJjA8dcBn_Vl_Y37cupmFzmclMjBE_Bc/view

typo.social
51
12
25
0
Open post
behdad @behdad@typo.social
· 6mo ago

OpenType Variable Fonts tech was released on September 14, 2016. Many downplayed its adoption in the following years, or even called it a failure. Early on, I shared my vision that in ten years time we will see variable-fonts just be the standard font format in use, the same way that scalable fonts replaced bitmap fonts.

Ten years have passed, and at least to me, when I look around, it seems like most new font families are designed variable-first. Is that accurate to say? That sounds like widespread adoption to me.

This year we should see the complete standardization of two new variable-font technology additions: avar2 and variable-composites (VARC table). I am very excited about both technologies and seeing how they roll out and affect how var fonts are designed.

24
5
8
0
Open post
behdad @behdad@typo.social
· 7mo ago

RE: @behdad@typo.social

I'll spare you my rambling thoughts. If someone wants to fork HarfBuzz 12.3.2, go ahead, that's before AI "slop". I let @khaled@typo.social, the HarfBuzz maintainer, decide whether AI-assisted code is allowed in the upstream HarfBuzz or not.

As for code quality, I'm ultimately the only one responsible for code that I push out.

Finally, if this technology is good for Linus, Guido, and Knuth, among others, I'm not gonna ignore it and let my projects and skills become irrelevant and obsolete.

I respectfully ask that you refrain from your urge to leave a 🤮 or equivalent in the comments. Thanks.

typo.social

behdad: "HarfBuzz 13.0.0 released with new experimental fe…" - typo.social

26
15
5
1
Open post
behdad @behdad@typo.social
· 6mo ago

Update on the Slug algorithm Open Source implementation: I absorbed GLyphy into a new HarfBuzz module called hb-gpu.

Check out the web demo. Interact with it with the mouse. Or press space to animation rotation:

https://behdad.org/hb-gpu-demo

Discuss hb-gpu at:

https://github.com/harfbuzz/harfbuzz/pull/5878

behdad.org
12
5
8
0
Open post
behdad @behdad@typo.social
· 7mo ago

Calling on all downstream projects (browsers, Linux distros, etc) to share their thoughts on AI contribution policy for HarfBuzz:

https://github.com/harfbuzz/harfbuzz/issues/5790

github.com
13
0
7
0
Open post
behdad @behdad@typo.social
· 12mo ago

#HarfBuzz 12.0.0 is released with Variable Composites / Components (`VARC` table) technology enabled by default. Read more:

https://github.com/harfbuzz/harfbuzz/releases/tag/12.0.0

typo.social
26
7
15
0
Open post
behdad @behdad@typo.social
· 7mo ago

RE: @fontra@typo.social

This is quite an interesting and clever way to use #HarfBuzz to do shaping on the fly.

typo.social
7
4
3
0
Open post
behdad @behdad@typo.social
· 5mo ago
Replying to

@pixelambacht @typearture Try hb-info --list-palettes on your test fonts!

4
1
0
0
Open post
behdad @behdad@typo.social
· 6mo ago
Replying to
And merged! https://github.com/behdad/glyphy
github.com
5
0
0
0
Open post
behdad @behdad@typo.social
· 7mo ago

Do you build avar2 variable fonts? I would appreciate your help testing the fonttools partial-instancing (aka designspace-limiting) PR at https://github.com/fonttools/fonttools/pull/4045

GitHub

[instancer] Implement avar2 partial-instancing by behdad · Pull Request #4045 · fonttools/fonttools

For detailed design, see: https://github.com/fonttools/fonttools/blob/avar2-instancing/partial-instancing-avar2-design.md TL;DR: Whereas my previous attempt [0] at avar2 partial-instancing design h...

6
0
4
0
Open post
behdad @behdad@typo.social
· 7mo ago
Replying to
@ebassi@mastodon.social What kernel do you use?
5
2
0
0
Open post
behdad @behdad@typo.social
· 6mo ago
Replying to
@evert Think of it as Glyphs smart-components, encoded in the font file. https://www.youtube.com/live/ynIKMiRwn3s?si=vgQb14nSdd5aaqcp&t=7705 https://docs.google.com/presentation/d/1YNRNyGdFIv_jBBkEROzBn0VC7X3h6QUTSndfC1Kb1YI/preview?slide=id.g2289f6b3611_0_41 https://github.com/harfbuzz/boring-expansion-spec/blob/main/VARC.md https://lwn.net/Articles/987176/
2
0
2
0
Open post
behdad @behdad@typo.social
· 6mo ago
Replying to
@lobingera @EricLengyel I suppose it means they have made enough money on it.
2
0
0
0
Open post
behdad @behdad@typo.social
· 6mo ago
Replying to
@onpaperwings @tphinney Thank you both. It's true that I'm mostly exposed to new font families on github, which is a different demographic than "most font families".
2
10
0
0
Open post
behdad @behdad@typo.social
· 6mo ago
Replying to

@onpaperwings @tphinney Right. So I think how you count you'd get very different numbers:

  • Most new font families released.
  • Where most graphics designers get their type.
  • Where most end users see type (hint hint Google Fonts etc on the web).
2
4
0
0
Open post
behdad @behdad@typo.social
· 7mo ago
Replying to
@justvanrossum I'll pass that on.
2
0
0
0
Open post
behdad @behdad@typo.social
· 7mo ago
Replying to
@fontra Very very nice.
2
2
0
0
Open post
behdad @behdad@typo.social
· 5mo ago
Replying to
@pixelambacht @typearture Haha. Unfortunately Bungee doesn't have names either. @djrrb
1
1
0
0
Open post
behdad @behdad@typo.social
· 9mo ago
Replying to
@gdc I do something essentially similar in https://github.com/behdad/halfkern
GitHub

GitHub - behdad/halfkern: Font kerning audit tool

Font kerning audit tool. Contribute to behdad/halfkern development by creating an account on GitHub.

2
1
0
0
Open post
behdad @behdad@typo.social
· 6mo ago
Replying to
@simoncozens 3sec.
1
0
0
0
Open post
behdad @behdad@typo.social
· 6mo ago
Replying to
@wipfli Also, check the demo again, I changed the font. A lot easier to appreciate the rendering on serif fonts than sans-serif.
1
1
0
0
Open post
behdad @behdad@typo.social
· 7mo ago
Replying to
@bilboed @khaled Thanks. No, I haven't played with those yet. Although, most concerns raised equally apply to Open Source models I think.
1
4
0
0
Open post
behdad @behdad@typo.social
· 7mo ago

@dysfun@social.treehouse.systems I was busy with other projects:

https://github.com/harfbuzz/harfbuzz/blob/3db272507d23e2335bdd2c30903f466452edd344/NEWS#L155-L173

github.com
1
0
0
0
Open post
behdad @behdad@typo.social
· 8mo ago
Replying to
@yerke Thank you. I'll think about it.
1
0
0
0
Open post
behdad @behdad@typo.social
· 8mo ago
Replying to
@crzwdjk Thanks for the feedback. :)
1
0
0
0
Open post
behdad @behdad@typo.social
· 8mo ago
Replying to
@mariospr@fosstodon.org Yes, that was a nice surprise. Same happened watching the MathML presentation. :)
1
0
0
0
Open post
behdad @behdad@typo.social
· 8mo ago
Replying to
@mariospr@fosstodon.org Thanks for sharing. I enjoyed watching.
1
2
0
0
Open post
behdad @behdad@typo.social
· 12mo ago
Replying to
@pixelambacht@typo.social That's a very good question. It's not impossible but unlikely to be how we approach shipping fonts. Before we had any real font test data for this, I wrote code to take NotoCJK fonts and try to componentize them automatically using Singular Value Decomposition on the point data. It worked to some extent and proved the concept. For Hangul, I showed 92% filesize saving!!! The code is here: https://github.com/googlefonts/smarties Slides: https://docs.google.com/presentation/d/1YNRNyGdFIv_jBBkEROzBn0VC7X3h6QUTSndfC1Kb1YI/preview
github.com
2
3
0
0
Open post
behdad @behdad@typo.social
· 12mo ago
Replying to
@mark2mark@typo.social Right, until other implementations catch up.
1
0
0
0
Open post
behdad @behdad@typo.social
· 27mo ago
Replying to
@frankrolf Thanks Frank. Yes, it's very unfortunate. I'll move it to a better platform once the editing stablizes.
2
0
0
0
Open post
behdad @behdad@typo.social
· 27mo ago
Replying to
@hojjat Hahahaha. The cat is out of the bag then! HarfRust is cool. I didn't think of that. I wanted it to be as close to HarfBuzz as possible. :D
1
2
0
0
Open post
behdad @behdad@typo.social
· 8mo ago
Replying to
@jdm_ Thank you Josh.
0
0
0
0
Open post
behdad @behdad@typo.social
· 7mo ago
Replying to
@davebauerart Glad you enjoyed it. Thanks for sharing.
0
0
0
0
Open post
behdad @behdad@typo.social
· 12mo ago
Replying to
@pixelambacht@typo.social Admittedly limited.
0
2
0
0
Open post
behdad @behdad@typo.social
· 8mo ago
Replying to
@tajpulo Oh I just meant a time budget: Ie. not locking down the host in an infinite loop.
0
1
0
0
Open post
behdad @behdad@typo.social
· 6mo ago
Replying to
@wipfli I implemented some poor man's stem-darkening as well, improves appearance at small sizes. Check it out. You can toggle it with "s".
0
1
0
0
Open post
behdad @behdad@typo.social
· 8mo ago
Replying to
@tajpulo Thank you. :)
0
0
0
0
Back
313k7r1n3
Elektrine

Tor hidden service

elekhj7afj4qnrr4yd3bkzslsyo5jgfxw3orgjkhlcxifueodybyiiad.onion

I2P eepsite

j6b6cyk6gjmepjih7jjadxgxvvf3lzzujljuu2v4biemzpg3naya.b32.i2p

Platform

  • Email
  • Chat
  • Timeline
  • VPN
  • DNS

Company

  • About
  • Contact
  • FAQ
  • Lite (no JS)

Legal

  • Terms of Service
  • Privacy Policy
  • Transparency Report
  • Report Abuse
  • Warrant Canary
  • VPN Policy

Support

  • support@elektrine.com
  • Report Security Issue
Mail client setup IMAP mail.elektrine.com:993 POP3 mail.elektrine.com:995 SMTP mail.elektrine.com:465
© 2026 Elektrine. All rights reserved. Server: 20:07:48 UTC