E
Eric Lengyel
terathon.com · Personal blog · on HN since 2013
Eric Lengyel, a game engine developer and author of the Slug font renderer, writes on GPU text rendering, geometric algebra, and game development.
What HN saysHN links it for the Slug algorithm's move to the public domain, the geometric algebra critique, and his game and engine posts, including Radical Pie.
38HN people shared it
19linked it in comments
23stories submitted
680story points
3 months agolast shared
2013people per year2026
Most-shared posts
- 1Projective Geometric Algebra Done Right6 people · 140 points · first shared 2020 · 25 comments on HN
- 2So you want to write a technical book3 people · 136 points · first shared 2021 · 28 comments on HN
- 3Slug Text Rendering Algorithm Dedicated to Public Domain3 people · 1 points · first shared 2026 · discussion on HN
- 4GPU – Centered Font Rendering Directly from Glyph Outlines [pdf]3 people · 1 points · first shared 2018 · discussion on HN
- 5Poor Foundations in Geometric Algebra2 people · 229 points · first shared 2024 · 116 comments on HN
- 6GPU-Friendly Font Rendering Directly from Glyph Outlines [pdf]2 people · 20 points · first shared 2017 · 1 comments on HN
- 7The Development of Radical Pie2 people · 2 points · first shared 2025 · discussion on HN
- 8Gdc12 lengyel.pdf2 people · first shared 2020
- 9Symmetries in projective geometric algebra2 people · first shared 2020
- 10A Mathematical Keyboard Layout (2018)1 people · 76 points · first shared 2021 · 50 comments on HN
- 11C4 game engine drops Linux support citing frustrations with desktop Linux1 people · 44 points · first shared 2015 · 84 comments on HN
- 12The Transwedge Product1 people · 11 points · first shared 2025 · 4 comments on HN
- 13The Return of Forgotten Math in Computer Graphics [pdf] (2012)1 people · 5 points · first shared 2025 · 1 comments on HN
- 14Geometric Algebra Books1 people · 3 points · first shared 2025 · discussion on HN
- 15Wedge Products, Dot Products, Scalars, and Norms1 people · 2 points · first shared 2021 · discussion on HN
What HN people wrote when they linked it
summarity · 2026-08-10
I agree in general, but can think of at least one counterpoint: https://terathon.com/blog/decade-slug.html
Actually novel implementation is protected, paid the author's bills, and was dedicated to the public domain recently - no massive corp involved.
anuramat · 2026-06-21
you might want to read this post by a GA researcher: https://terathon.com/blog/poor-foundations-ga.html
especially the part about duals -- made me feel like I was going crazy when I was trying to figure out degenerate metrics: every source deals with it in a slightly different (often sloppy) way; you're sure it all must be possible to resolve and get something beautiful and consistent, but not while you're trying to apply it to a specific problem you need to solve
notachatbot123 · 2026-04-03
HarfBuzz = text shaping engine, https://github.com/harfbuzz/harfbuzz
Slug = Formely patented font rendering algorithm for GPUs, freed 2 weeks ago https://terathon.com/blog/decade-slug.html
kibibu · 2026-03-18
He has a post up: https://terathon.com/blog/radical-pie.html
I'm pretty confident the "stack" is C++ on Win32, with a bunch of hand-rolled libraries and no stdlib.
klaussilveira · 2026-01-07
elengyel · 2025-05-24
I don't think you're missing anything. One of the goals of this article is to demonstrate how geometric algebra is really just another part of exterior algebra anyway. However, performing transformations in spacetime with the geometric product might make some things easier to understand, but I'm not making any strong claims about that. This article contains a small glimpse of what I'm talking about: https://terathon.com/blog/relativistic-quaternions.html
turtledragonfly · 2024-02-28
For people interested in this topic, here's a good set of slides going over Grassman/Clifford/Geometric algebra concepts: http://www.terathon.com/gdc12_lengyel.pdf
And another good site: https://mattferraro.dev/posts/geometric-algebra
OnionBlender · 2022-08-12
So You Want to Write a Technical Book
http://terathon.com/blog/so-you-want-to-write-a-technical-book/
cygx · 2020-12-01
Another poster has already linked [1] and [2]. That's what I was getting at as well: A bias towards the wedge/'join' and against the 'anti-wedge'/'meet' crops in
via the geometric product, when the situation should be symmetric due to Hodge duality. This leads to constructions I find rather unnatural.
[1] http://terathon.com/blog/projective-geometric-algebra-done-right/
[2] http://terathon.com/blog/symmetries-in-projective-geometric-algebra/
DougBTX · 2020-11-30
> Also, why the need o a dual(e12, e02, e01) to represent a point when in vector it's just a (e0, e1, e2). This is just counterinuitive.
It seems like it isn't needed, but it hasn't all been wrapped up into an easy to understand package yet:
http://terathon.com/blog/projective-geometric-algebra-done-right/
http://terathon.com/blog/symmetries-in-projective-geometric-algebra/
rudedogg · 2020-11-19
He posts to his blog about GA too:
http://terathon.com/blog/projective-geometric-algebra-done-right/
And, he has a website dedicated to PGA:
http://projectivegeometricalgebra.org
ivan_ah · 2020-02-11
Thanks for sharing this blog post and the cheat sheet http://terathon.com/pga_lengyel.pdf
I agree the representation chosen in the SIGGRAPH lecture and the associated docs seems somewhat unnatural and counter-intuitive (why are points being represented as trivectors?).
Have you reached out to C. Gunn or S. De Keninck to ask what they think about the representation you propose in that blog post and the geometric product ⟑ and antiproduct ⟇ ? If the representations are equivalent and one is closer to concepts people already understand (e.g. points being (x,y,z,w), with w=1), then maybe adopting the simpler representation would lead to wider adoption of the ideas.
Alternatively, maybe they will point out some other reasons why points-as-trivectors representation is preferable.
bananabiscuit · 2020-02-10
Here is an informative critique of this video along with an improved application of geometric algebra to computer geometry:
http://terathon.com/blog/projective-geometric-algebra-done-right/
binarycrusader · 2018-10-19
Indeed, the most recent example I've seen of this is the slug library:
http://sluglibrary.com/
Presentation slides:
http://terathon.com/i3d2018_lengyel.pdf
A paper:
http://jcgt.org/published/0006/02/02/
restalis · 2015-01-13
"I suspect he's used to developing in Windows, likely with visual studio, and in comparison, Linux can feel quite archaic. And in that context, maintaining Linux build systems can seem quite painful, likely the primary reason it's getting dropped."
That's not it. Eric explained it in here: http://www.terathon.com/forums/viewtopic.php?f=2&t=14050&sid=7…
stefantalpalaru · 2015-01-13
Have you seen his coding conventions?
http://www.terathon.com/wiki/index.php/Coding_Conventions
jevgeni · 2015-01-13
I like how you gloss over the "needed libraries".
But seriously, let's take a quick look (here)[http://www.terathon.com/architecture.php] and think, what might be a clear pain point in Linux, even if the "needed libraries" worked perfectly with all the hardware and all distros and the blobs were perfect.
Did I hear someone say "Linux sound support"? Yes, that is a correct answer. Sound in Linux is a know clusterfuck.
What else might be not as trivial? Did someone say support for multiple graphic cards? Yes, even with OpenGL it might be an issue.
Not to mention all the GUI tools.
So yeah, those all things obviously would never have any less than functioning dependencies on Linux...
layoutIfNeeded · 2020-01-26
What you wrote has nothing to do with Eric's geometric antiproduct.
Eric calls the dual vectors in a geometric algebra (or Grassmann algebra as he calls it) antivectors. See his presentation from GDC2012 around the middle:
>Instead of saying (n−1)-vector, we call these “antivectors”
http://www.terathon.com/gdc12_lengyel.pdf (also: https://youtu.be/WZApQkDBr5o?t=1673)
So e.g. in 3D bivectors would be antivectors, in 4D trivectors would be antivectors, etc. He also calls what's usually referred to as pseudoscalars antiscalars - that is, n-vectors in an n-dimensional geometric algebra.
The geometric antiproduct introduced in this article has a similar dual relationship with the geometric product: the geometric antiproduct acts on vectors the same way as the geometric product acts on antivectors. Around the end of the article he even writes that the whole algebraic structure is invariant under dualization (or "antization" :D ): you can map scalars to antiscalars, vectors to antivectors, etc. and the geometric product will be mapped to the geometric antiproduct, etc.
djmips · 2022-04-04
Pretty good overview of what you asked about - https://medium.com/@evanwallace/easy-scalable-text-rendering-on-the-gp…
Other links
https://developer.nvidia.com/gpugems/gpugems3/part-iv-image-effects/ch…
https://jcgt.org/published/0006/02/02/
Also (https://terathon.com/i3d2018_lengyel.pdf) Which was developed into a product IIRC.
Another GPU text renderer
https://github.com/hypernewbie/VEFontCache
There's been other development and some posts on Hacker News about rendering fonts on the GPU