More Lengyel.

This commit is contained in:
ed committed 2026-08-28 18:42:55 -04:00
1 parent c825ba0f06
commit 667f8ca53e
92 files changed
+3968

No files matched your search

@@ -0,0 +1,90 @@
---
title: "After looking at the current state of Vulkan (the API, driver support, stability, etc.), I have concluded that I'm better off sticking with OpenGL for the time being when it comes to making a PC game."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1777833385676968429"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1777833385676968429"
date: 2024-04-09
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "After looking at the current state of Vulkan (the API, driver support, stability, etc.), I have concluded that I'm better off sticking with OpenGL for the time being when it comes to making a PC game."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1777833385676968429
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2024-04-09 22:58:04
## Thread
**1/** **@EricLengyel** ^1777833385676968429
After looking at the current state of Vulkan (the API, driver support, stability, etc.), I have concluded that I'm better off sticking with OpenGL for the time being when it comes to making a PC game.
**2/** **@SebAaltonen** ^1777950713215324609
**@EricLengyel**
Vulkan has extremely good documentation. I haven't found any stability issues on PC either. But it's critical to use validation layer during development and enable sync validation too. Otherwise you end up doing bad stuff by accident crashing the drivers easily.
**3/** **@SebAaltonen** ^1777951183065190794
**@EricLengyel**
Unless you are targeting very old Intel iGPUs, there shouldn't be driver issues on PC either. Android is of course a completely different ballgame. If you need to target Android 8 or earlier, then Vulkan is a bad idea.
**4/** **@EricLengyel** ^1777953111933604051
**@SebAaltonen**
With Vulkan, I would be targeting Windows PC only with a min GPU around GF 1060.
One thing turning me off right now is lack of AMD support for VK_EXT_shader_object. (Has this changed?)
I saw a couple problems with Vulkan on Intel ARC hardware, but that was a couple years ago.
**5/** **@SebAaltonen** ^1777954235725795328
**@EricLengyel**
Since we are developing for Android, I wouldn't even dream about fancy extensions like VK_EXT_shader_object. Stock Vulkan 1.1 is the best you can do on Android.
Why do you need that extension? Something you can't do without it?
**6/** **@EricLengyel** ^1777954857997234610
**@SebAaltonen**
I can get by without that extension, but it would make things a lot easier for me. I would definitely be using dynamic rendering to its fullest because that's how the hardware actually works (and I have a lot of state combinations that are not known up front).
**7/** **@SebAaltonen** ^1777955612309049782
**@EricLengyel**
Vulkan 1.3 is widely used on PC and it adds a lot of dynamic state. Much better than 1.1 in that regard. But Vulkan 1.3 support on Android is still too small for shipping.
**8/** **@SebAaltonen** ^1777956086215008627
**@EricLengyel**
Pre-1.3 Vulkan is PITA for PSO management, since all render state is practically inside the PSO. Except viewport rectangle and stencil rectangle. Those support dynamic state even in 1.0.
**9/** **@EricLengyel** ^1777960415907217696
**@SebAaltonen**
You're talking to the guy who made those dynamic in 1.0. (You mean viewport and scissor rectangles.)
**10/** **@tloch14** ^1778014039571869800
**@EricLengyel** **@SebAaltonen**
I want to hear that story.
@@ -0,0 +1,37 @@
---
title: "@EricLengyel + degenerate cases where a 0 value in one component would equivalently be a smaller type."
type: archive
source: twitter
source_url: "https://x.com/gamespotting/status/1777903440527761748"
author: "Gerald Leung, The Oldest Goth Culture: Shoggoth"
handle: gamespotting
post_id: "1777903440527761748"
date: 2024-04-10
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel + degenerate cases where a 0 value in one component would equivalently be a smaller type."
in_reply_to: ""
parent_post_id: "1777903028840124551"
---
## Source
- URL: https://x.com/gamespotting/status/1777903440527761748
- Author: Gerald Leung, The Oldest Goth Culture: Shoggoth (@gamespotting)
- Posted: 2024-04-10 03:36:26
## Branch
**1/** **@gamespotting** ^1777903440527761748
**@EricLengyel**
+ degenerate cases where a 0 value in one component would equivalently be a smaller type. But could be a fair amount of tracking which combinations of types and operations would become which others.
## Related
- Spine: [[archive/threads/EricLengyel/2024-04-10-some-people-seem-to-think-that-all-objects-in]]
@@ -0,0 +1,42 @@
---
title: "Some people seem to think that all objects in exterior algebra or geometric algebra are represented in code by big 16-component entities."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1777895775428854186"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1777895775428854186"
date: 2024-04-10
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "Some people seem to think that all objects in exterior algebra or geometric algebra are represented in code by big 16-component entities."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1777895775428854186
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2024-04-10 03:05:59
## Thread
**1/** **@EricLengyel** ^1777895775428854186
Some people seem to think that all objects in exterior algebra or geometric algebra are represented in code by big 16-component entities. No decent implementation would do this, and if it's something you've seen, then you've been exposed to a very poor source of information.
**2/** **@EricLengyel** ^1777895776540299662
Points still have 3 components (or maybe 4 homogeneous components), lines have 6, and planes have 4. Quaternions have 4 components, dual quaternions (motors) have 8 components, and flectors have 8 components. Nothing ever uses more than 8. These are implemented as distinct types.
**3/** **@gamespotting** ^1777903028840124551
**@EricLengyel**
I remember when pondering what it’d take to implement a system for graphics, thinking a fully general element (of an R{3,2} conformal space) could have up to 32 components.. but most elements of interest for graphic’s applications would only have 4, 6, or 8 or something..
Branches: [[archive/threads/EricLengyel/2024-04-10-some-people-seem-to-think-that-all-objects-in/2024-04-10-gamespotting-degenerate-cases-where-a-0-value-in-one-component]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel I wonder how much the problems with reliability of academic research have in common with the reliability of Amazon reviews."
type: archive
source: twitter
source_url: "https://x.com/JasonHise64/status/1781560799204663504"
author: "Jason Hise"
handle: JasonHise64
post_id: "1781560799204663504"
date: 2024-04-20
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel I wonder how much the problems with reliability of academic research have in common with the reliability of Amazon reviews."
in_reply_to: ""
parent_post_id: "1781130018732888239"
---
## Source
- URL: https://x.com/JasonHise64/status/1781560799204663504
- Author: Jason Hise (@JasonHise64)
- Posted: 2024-04-20 05:49:28
## Branch
**1/** **@JasonHise64** ^1781560799204663504
**@EricLengyel**
I wonder how much the problems with reliability of academic research have in common with the reliability of Amazon reviews. I get the sense that both have perverse incentives and verification mechanisms that don’t effectively scale.
## Related
- Spine: [[archive/threads/EricLengyel/2024-04-19-this-is-a-few-years-old-but-holy-crap-i-cant]]
@@ -0,0 +1,46 @@
---
title: "This is a few years old, but holy crap, I can't believe a peer-reviewed journal actually published a paper claiming to have found an 8D associative division algebra."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1781130015209574593"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1781130015209574593"
date: 2024-04-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "This is a few years old, but holy crap, I can't believe a peer-reviewed journal actually published a paper claiming to have found an 8D associative division algebra."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1781130015209574593
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2024-04-19 01:17:42
## Thread
**1/** **@EricLengyel** ^1781130015209574593
This is a few years old, but holy crap, I can't believe a peer-reviewed journal actually published a paper claiming to have found an 8D associative division algebra. This was proven impossible over 100 years ago. (It follows from Hurwitz's theorem.) 1/4
https://golem.ph.utexas.edu/category/2020/09/new_normed_division_algebra_fo.html
**2/** **@EricLengyel** ^1781130016480547027
The paper claims that the 8D division algebra is the even part of the geometric algebra Cl(4,0). Any qualified reviewer would have known that the even part of Cl(4,0) has zero divisors (like 1 + e₁₂₃₄), instantly proving the paper wrong, but it somehow still got through! 2/4
**3/** **@EricLengyel** ^1781130017579389343
This is one more example of how the value of peer review has been taking a nose dive. Nowadays, if something is peer reviewed, it doesn't necessarily mean it's any good at all. (Conversely, if something is not peer reviewed, it doesn't mean it's of questionable quality.) 3/4
**4/** **@EricLengyel** ^1781130018732888239
This paper did end up getting retracted, but it must have been very embarrassing for the journal. 4/4
https://golem.ph.utexas.edu/category/2020/10/no_new_normed_division_algebra.html
Branches: [[archive/threads/EricLengyel/2024-04-19-this-is-a-few-years-old-but-holy-crap-i-cant/2024-04-20-JasonHise64-i-wonder-how-much-the-problems-with-reliability]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel"
type: archive
source: twitter
source_url: "https://x.com/maxliani/status/1784780753529885002"
author: "Max Liani"
handle: maxliani
post_id: "1784780753529885002"
date: 2024-04-29
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel"
in_reply_to: ""
parent_post_id: "1784712481858085204"
---
## Source
- URL: https://x.com/maxliani/status/1784780753529885002
- Author: Max Liani (@maxliani)
- Posted: 2024-04-29 03:04:25
## Branch
**1/** **@maxliani** ^1784780753529885002
**@EricLengyel**
<video controls src="https://video.twimg.com/tweet_video/GMTQodVb0AArh2l.mp4"></video>
## Related
- Spine: [[archive/threads/EricLengyel/2024-04-28-a-common-argument-against-the-east-coast-metric]]
@@ -0,0 +1,36 @@
---
title: "A common argument against the east coast metric signature (−+++) is that timelike magnitudes are negative."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1784712481858085204"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1784712481858085204"
date: 2024-04-28
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "A common argument against the east coast metric signature (−+++) is that timelike magnitudes are negative."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1784712481858085204
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2024-04-28 22:33:08
## Thread
**1/** **@EricLengyel** ^1784712481858085204
A common argument against the east coast metric signature (−+++) is that timelike magnitudes are negative. This problem evaporates in 5D projective space-time exterior algebra because the weight component of a homogeneous magnitude cancels the minus sign. Projected magnitudes are always positive.
Furthermore, the metric exomorphism G always contains both the east coast and west coast metrics g within the full 32×32 tensor. Below, the green box contains the 5×5 projective metric for vectors with the east coast signature (−+++0), and its west coast counterpart appears in the purple box for trivectors.
![](https://pbs.twimg.com/media/GMSKE-naIAEq68H?format=png&name=orig)
Branches: [[archive/threads/EricLengyel/2024-04-28-a-common-argument-against-the-east-coast-metric/2024-04-29-maxliani-thread]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel Spoilers! I havent gotten this far in the book yet haha"
type: archive
source: twitter
source_url: "https://x.com/greensleevless/status/1808032205169742201"
author: "Peter Slattery 🚀"
handle: greensleevless
post_id: "1808032205169742201"
date: 2024-07-02
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Spoilers! I havent gotten this far in the book yet haha"
in_reply_to: ""
parent_post_id: "1808021741660430544"
---
## Source
- URL: https://x.com/greensleevless/status/1808032205169742201
- Author: Peter Slattery 🚀 (@greensleevless)
- Posted: 2024-07-02 06:57:23
## Branch
**1/** **@greensleevless** ^1808032205169742201
**@EricLengyel**
Spoilers! I havent gotten this far in the book yet haha
## Related
- Spine: [[archive/threads/EricLengyel/2024-07-02-in-conformal-geometric-algebra-the-dot-product]]
@@ -0,0 +1,39 @@
---
title: "@EricLengyel My mind is too dirty for this graph."
type: archive
source: twitter
source_url: "https://x.com/mankrip/status/1808100037215301830"
author: "mankrip"
handle: mankrip
post_id: "1808100037215301830"
date: 2024-07-02
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel My mind is too dirty for this graph."
in_reply_to: ""
parent_post_id: "1808021741660430544"
---
## Source
- URL: https://x.com/mankrip/status/1808100037215301830
- Author: mankrip (@mankrip)
- Posted: 2024-07-02 11:26:56
## Branch
**1/** **@mankrip** ^1808100037215301830
**@EricLengyel**
My mind is too dirty for this graph.
Useful stuff, though.
## Related
- Spine: [[archive/threads/EricLengyel/2024-07-02-in-conformal-geometric-algebra-the-dot-product]]
@@ -0,0 +1,34 @@
---
title: "In conformal geometric algebra, the dot product between two spheres s and t gives the product of their radii times the cosine of the angle 𝜙 between the tangent planes where they intersect."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1808021741660430544"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1808021741660430544"
date: 2024-07-02
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "In conformal geometric algebra, the dot product between two spheres s and t gives the product of their radii times the cosine of the angle 𝜙 between the tangent planes where they intersect."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1808021741660430544
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2024-07-02 06:15:49
## Thread
**1/** **@EricLengyel** ^1808021741660430544
In conformal geometric algebra, the dot product between two spheres s and t gives the product of their radii times the cosine of the angle 𝜙 between the tangent planes where they intersect. If the spheres don't actually intersect, then this angle is imaginary.
![](https://pbs.twimg.com/media/GRdgwgJb0AIwVpU?format=png&name=orig)
Branches: [[archive/threads/EricLengyel/2024-07-02-in-conformal-geometric-algebra-the-dot-product/2024-07-02-greensleevless-spoilers-i-havent-gotten-this-far-in-the-book-yet]], [[archive/threads/EricLengyel/2024-07-02-in-conformal-geometric-algebra-the-dot-product/2024-07-02-mankrip-my-mind-is-too-dirty-for-this-graph-useful-stuff]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel @Ancient_Geo Thank you!"
type: archive
source: twitter
source_url: "https://x.com/HeerakSharma/status/1814864767049515349"
author: "HeerakSharma"
handle: HeerakSharma
post_id: "1814864767049515349"
date: 2024-07-21
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel @Ancient_Geo Thank you!"
in_reply_to: ""
parent_post_id: "1814555023470198822"
---
## Source
- URL: https://x.com/HeerakSharma/status/1814864767049515349
- Author: HeerakSharma (@HeerakSharma)
- Posted: 2024-07-21 03:27:33
## Branch
**1/** **@HeerakSharma** ^1814864767049515349
**@EricLengyel** **@Ancient_Geo**
Thank you!
## Related
- Spine: [[archive/threads/EricLengyel/2024-07-18-did-you-know-that-quaternions-have-two-different]]
@@ -0,0 +1,64 @@
---
title: "Did you know that quaternions have two different representations in homogeneous coordinates? They make up the special orthogonal group SO(3), but that's a subgroup of two larger complementary transformation groups."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1814078374605881582"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1814078374605881582"
date: 2024-07-18
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "Did you know that quaternions have two different representations in homogeneous coordinates? They make up the special orthogonal group SO(3), but that's a subgroup of two larger complementary transformation groups."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1814078374605881582
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2024-07-18 23:22:43
## Thread
**1/** **@EricLengyel** ^1814078374605881582
Did you know that quaternions have two different representations in homogeneous coordinates? They make up the special orthogonal group SO(3), but that's a subgroup of two larger complementary transformation groups.
First, quaternions are part of the special Euclidean group SE(3), where they correspond to rotations about the origin. Second, quaternions are part of the special complement Euclidean group SE̅(3), where they correspond to motions of constant eccentricity with the directrix in the horizon, which are just rotations about the origin again. SO(3) is the intersection of SE(3) and SE̅(3).
You can find the details in my book:
https://www.amazon.com/dp/B0CXY8C72T/?tag=terathon-20
![](https://pbs.twimg.com/media/GSzjmr7a0AAtEQH?format=png&name=orig)
**2/** **@Ancient_Geo** ^1814083189922816054
**@EricLengyel**
Have you been able to schedule the start of the online GA coarse yet? Date and time of day, frequency etc?
**3/** **@EricLengyel** ^1814085296113520919
**@Ancient_Geo**
This is not final yet, but it's looking like 1:00pm Pacific Time on Tuesdays and Thursdays will work well. Each session would be 75-90 minutes in length. It could start around the end of August or beginning of September.
**4/** **@HeerakSharma** ^1814550821956153588
**@EricLengyel** **@Ancient_Geo**
Is there a course webpage where I can find all the details about the courses? I am interested to take the course.
**5/** **@EricLengyel** ^1814555023470198822
**@HeerakSharma** **@Ancient_Geo**
Information will be posted here:
https://projectivegeometricalgebra.org/
Branches: [[archive/threads/EricLengyel/2024-07-18-did-you-know-that-quaternions-have-two-different/2024-07-21-HeerakSharma-thank-you]]
@@ -0,0 +1,52 @@
---
title: "The reason I have been giving talks about geometric algebra at NASA recently is that they (rightfully) found the so-called “plane-based” formulation clunky and unpalatable."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1819409481211445690"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1819409481211445690"
date: 2024-08-02
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "The reason I have been giving talks about geometric algebra at NASA recently is that they (rightfully) found the so-called “plane-based” formulation clunky and unpalatable."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1819409481211445690
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2024-08-02 16:26:37
## Thread
**1/** **@EricLengyel** ^1819409481211445690
The reason I have been giving talks about geometric algebra at NASA recently is that they (rightfully) found the so-called “plane-based” formulation clunky and unpalatable. They rejected it in favor of the cleaner and more complete model I developed over the past few years.
**2/** **@TheLixard** ^1819439205954503106
**@EricLengyel**
Now, illuminate me on this. By plane-based you mean the vanilla algebra?
**3/** **@EricLengyel** ^1819441785455759415
**@TheLixard**
https://x.com/ericlengyel/status/1819424311154766184
**4/** **@TheLixard** ^1819445445812539455
**@EricLengyel**
Oh I see, thanks. Tell me something, as to the anti products and anti vectors, where did you see that, originally? Reading no texts in geometric algebra anywhere lead me to that, except perhaps brief mentions in Chevaleys work.
**5/** **@EricLengyel** ^1819451105384058890
I developed antiproducts as part of my own research, starting around 2010, and PGA Illuminated is currently the only text that provides a complete treatment. The term “antivector” is just an alternate term for “pseudovector” or “(n-1)-vector” that is more consistent with the rest of the terminology used in the complete algebra.
@@ -0,0 +1,37 @@
---
title: "@skdh @EricLengyel Thanks for sharing our pain."
type: archive
source: twitter
source_url: "https://x.com/kan_immanuel/status/1824656120817868950"
author: "hüllya"
handle: kan_immanuel
post_id: "1824656120817868950"
date: 2024-08-17
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@skdh @EricLengyel Thanks for sharing our pain."
in_reply_to: ""
parent_post_id: "1821073975033643071"
---
## Source
- URL: https://x.com/kan_immanuel/status/1824656120817868950
- Author: hüllya (@kan_immanuel)
- Posted: 2024-08-17 03:54:54
## Branch
**1/** **@kan_immanuel** ^1824656120817868950
**@skdh** **@EricLengyel**
Thanks for sharing our pain.
## Related
- Spine: [[archive/threads/EricLengyel/2024-08-07-the-problem-is-that-so-long-as-theres]]
@@ -0,0 +1,40 @@
---
title: "\"The problem is that so long as there's sufficiently many crap-producers reviewing each other's crap, crap will continue to be produced.\""
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1821073594606350378"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1821073594606350378"
date: 2024-08-07
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "\"The problem is that so long as there's sufficiently many crap-producers reviewing each other's crap, crap will continue to be produced.\""
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1821073594606350378
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2024-08-07 06:39:13
## Thread
**1/** **@EricLengyel** ^1821073594606350378
"The problem is that so long as there's sufficiently many crap-producers reviewing each other's crap, crap will continue to be produced."
That sounds like what's been happening in geometric algebra for the last decade or two.
**2/** **@skdh** ^1821073975033643071
**@EricLengyel**
uh, sorry to hear
Branches: [[archive/threads/EricLengyel/2024-08-07-the-problem-is-that-so-long-as-theres/2024-08-17-kan_immanuel-thanks-for-sharing-our-pain]]
@@ -0,0 +1,43 @@
---
title: "A slice perpendicular to the null direction in the diagram about the observer horizon below looks exactly like this complement rotation I found in projective geometric algebra."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1822461385051422912"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1822461385051422912"
date: 2024-08-11
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "A slice perpendicular to the null direction in the diagram about the observer horizon below looks exactly like this complement rotation I found in projective geometric algebra."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1822461385051422912
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2024-08-11 02:33:48
## Thread
**1/** **@EricLengyel** ^1822461385051422912
A slice perpendicular to the null direction in the diagram about the observer horizon below looks exactly like this complement rotation I found in projective geometric algebra. I'd really like to connect these together and understand the physical significance.
![](https://pbs.twimg.com/media/GUquD51bYAAOiJe?format=png&name=orig)
**2/** **@JohnMeuser** ^1822469188302119048
**@EricLengyel**
spacetime algebra
https://en.wikipedia.org/wiki/Spacetime_algebra
**3/** **@EricLengyel** ^1822475819438272780
I'm working with projective spacetime geometric algebra (PSTGA), which has an extra dimension compared to the STA in that article. PSTGA is a model of the Poincaré group and its complement, the latter of which contains the motion in my diagram above. These are not part of STA.
@@ -0,0 +1,76 @@
---
title: "Following up with 3D homogeneous coordinates."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1826161505223717336"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1826161505223717336"
date: 2024-08-21
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "Following up with 3D homogeneous coordinates."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1826161505223717336
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2024-08-21 07:36:45
## Thread
**1/** **@EricLengyel** ^1826161505223717336
Following up with 3D homogeneous coordinates. What would you think if someone (not me) told you it was more geometrically intuitive for the vector on the left to represent the red line? And for the bivector on the right to represent the red point?
![](https://pbs.twimg.com/media/GVfTu7abgAA06Ez?format=jpg&name=orig)
**2/** **@pedroth9** ^1826167291467153630
**@EricLengyel**
If you think of the Hodge star of the vector, then the vector turns to a bivector which represents a line. The bivector turns to a vector with the Hodge star which represents a point.
**3/** **@EricLengyel** ^1826168886666080574
**@pedroth9**
The Hodge star does not do what you think it does in this case due to the degenerate metric. But the complement does. You are correct that the red objects correspond to the subspace orthogonal to the one occupied by the blue vector or bivector.
**4/** **@EricLengyel** ^1826169024872587689
**@pedroth9**
(In this case, the Hodge dual of a line is the origin, and the Hodge dual of a point is a line through the origin parallel to the red line shown.)
**5/** **@gary_snethen** ^1826173448684711964
**@EricLengyel** **@pedroth9**
Isn’t the 3D dual of the blue *vector* the bivector that represents the red line? I think that is what @pedroth9 was suggesting.
**6/** **@EricLengyel** ^1826182884983804299
**@gary_snethen** **@pedroth9**
Yes, that's what I meant by "You are correct that the red objects correspond to the subspace orthogonal to the one occupied by the blue vector or bivector." They are related by duality, but algebraically they are complements. The Hodge dual isn't quite the same thing.
**7/** **@EricLengyel** ^1826183680995586400
My point isn't about whether the geometric representations make sense if you know what's going on. They do. The question is, are they more intuitive in dual form.
**8/** **@gary_snethen** ^1826190265524404357
**@EricLengyel** **@pedroth9**
Clearly not. :)
Although perhaps some people might find the mathematical operations more natural after conversion.
But geometrically, your blue diagrams are universally more intuitive than the red.
@@ -0,0 +1,41 @@
---
title: "@EricLengyel Yup."
type: archive
source: twitter
source_url: "https://x.com/jwatte/status/1861649463510737231"
author: "Very Human Robot"
handle: jwatte
post_id: "1861649463510737231"
date: 2024-11-27
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Yup."
in_reply_to: ""
parent_post_id: "1861626156228976832"
---
## Source
- URL: https://x.com/jwatte/status/1861649463510737231
- Author: Very Human Robot (@jwatte)
- Posted: 2024-11-27 05:53:14
## Branch
**1/** **@jwatte** ^1861649463510737231
**@EricLengyel**
Yup.
And then a close occluder gets slid off the side of the screen...
If the action is intense enough, the player won't notice though :-)
## Related
- Spine: [[archive/threads/EricLengyel/2024-11-27-heres-some-video-of-the-ssao-buffer-as-i-run]]
@@ -0,0 +1,49 @@
---
title: "Here's some video of the SSAO buffer as I run around in the C4 Engine."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1861596205522002127"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1861596205522002127"
date: 2024-11-27
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "Here's some video of the SSAO buffer as I run around in the C4 Engine."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1861596205522002127
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2024-11-27 02:21:36
## Thread
**1/** **@EricLengyel** ^1861596205522002127
Here's some video of the SSAO buffer as I run around in the C4 Engine. The details about this particular flavor of ambient occlusion are discussed in FGED2, Section 10.5.
https://www.amazon.com/dp/0985811757/?tag=terathon-20
<video controls src="https://video.twimg.com/ext_tw_video/1861596052081778688/pu/vid/avc1/1920x1080/g2Q6PauzwTFY9lxh.mp4?tag=14"></video>
**2/** **@jwatte** ^1861622250681835638
**@EricLengyel**
SSAO is such a delightful hack, and such a terribly finicky tool at the same time...
If you can afford real AO (distance fields or whatever) they are more robust!
**3/** **@EricLengyel** ^1861626156228976832
**@jwatte**
I remember many years ago, I put off implementing SSAO for a long time because it was such a hack. But I consider that to have been a mistake because, when implemented well, SSAO does a very nice job most of the time and is 100% dynamic.
Branches: [[archive/threads/EricLengyel/2024-11-27-heres-some-video-of-the-ssao-buffer-as-i-run/2024-11-27-jwatte-yup-and-then-a-close-occluder-gets-slid-off-the]]
@@ -0,0 +1,39 @@
---
title: "@EricLengyel @SuppDiggyDawg You act like if we could actually read and shit 😅"
type: archive
source: twitter
source_url: "https://x.com/simplex_fx/status/1867642421040783617"
author: "Simplex"
handle: simplex_fx
post_id: "1867642421040783617"
date: 2024-12-13
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel @SuppDiggyDawg You act like if we could actually read and shit 😅"
in_reply_to: ""
parent_post_id: "1867482762149867930"
---
## Source
- URL: https://x.com/simplex_fx/status/1867642421040783617
- Author: Simplex (@simplex_fx)
- Posted: 2024-12-13 18:47:06
## Branch
**1/** **@simplex_fx** ^1867642421040783617
**@EricLengyel** **@SuppDiggyDawg**
You act like if we could actually read and shit 😅
We just hit vertices with a hammer until it looks good 😅
## Related
- Spine: [[archive/threads/EricLengyel/2024-12-12-i-was-surprised-to-hear-that-many-graphics-people]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel @SuppDiggyDawg I guess that..."
type: archive
source: twitter
source_url: "https://x.com/winden/status/1867642291214856279"
author: "winden^capsule^rgba^ntw^bg"
handle: winden
post_id: "1867642291214856279"
date: 2024-12-13
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel @SuppDiggyDawg I guess that..."
in_reply_to: ""
parent_post_id: "1867482762149867930"
---
## Source
- URL: https://x.com/winden/status/1867642291214856279
- Author: winden^capsule^rgba^ntw^bg (@winden)
- Posted: 2024-12-13 18:46:35
## Branch
**1/** **@winden** ^1867642291214856279
**@EricLengyel** **@SuppDiggyDawg**
I guess that... people today can no longer afford afford a home in which to fit a bookshelf from which to read this :(
## Related
- Spine: [[archive/threads/EricLengyel/2024-12-12-i-was-surprised-to-hear-that-many-graphics-people]]
@@ -0,0 +1,47 @@
---
title: "I was surprised to hear that many graphics people were surprised to learn that normals should be transformed with the adjugate transpose matrix."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1867348503443476873"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1867348503443476873"
date: 2024-12-12
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "I was surprised to hear that many graphics people were surprised to learn that normals should be transformed with the adjugate transpose matrix."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1867348503443476873
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2024-12-12 23:19:11
## Thread
**1/** **@EricLengyel** ^1867348503443476873
I was surprised to hear that many graphics people were surprised to learn that normals should be transformed with the adjugate transpose matrix. This is something I've written about extensively, so here's a new blog post that talks about what's going on.
https://terathon.com/blog/transforming-normals.html
![](https://pbs.twimg.com/media/GeonIXcbsAAYrLk?format=png&name=orig)
**2/** **@SuppDiggyDawg** ^1867479809397346800
**@EricLengyel**
I'm surprised to read that you were surprised to hear that many graphics people were surprised to learn that!
**3/** **@EricLengyel** ^1867482762149867930
**@SuppDiggyDawg**
It's only been in the graphics literature for 35 years, so maybe my expectations were too high.
Branches: [[archive/threads/EricLengyel/2024-12-12-i-was-surprised-to-hear-that-many-graphics-people/2024-12-13-winden-i-guess-that-people-today-can-no-longer-afford]], [[archive/threads/EricLengyel/2024-12-12-i-was-surprised-to-hear-that-many-graphics-people/2024-12-13-simplex_fx-you-act-like-if-we-could-actually-read-and-shit]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel Finally the skeleton from the cover your 3Dmath book appears! Nice work on the engine so far!"
type: archive
source: twitter
source_url: "https://x.com/godraytio/status/1868411014141940166"
author: "godraytio"
handle: godraytio
post_id: "1868411014141940166"
date: 2024-12-15
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Finally the skeleton from the cover your 3Dmath book appears! Nice work on the engine so far!"
in_reply_to: ""
parent_post_id: "1868170748097114188"
---
## Source
- URL: https://x.com/godraytio/status/1868411014141940166
- Author: godraytio (@godraytio)
- Posted: 2024-12-15 21:41:13
## Branch
**1/** **@godraytio** ^1868411014141940166
**@EricLengyel**
Finally the skeleton from the cover your 3Dmath book appears! Nice work on the engine so far!
## Related
- Spine: [[archive/threads/EricLengyel/2024-12-15-this-video-shows-the-velocity-buffer-used-to]]
@@ -0,0 +1,39 @@
---
title: "@EricLengyel Don't use motion blur."
type: archive
source: twitter
source_url: "https://x.com/JosiahJackWJJ/status/1868663463532519872"
author: "Josiah Jack"
handle: JosiahJackWJJ
post_id: "1868663463532519872"
date: 2024-12-16
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Don't use motion blur."
in_reply_to: ""
parent_post_id: "1868170748097114188"
---
## Source
- URL: https://x.com/JosiahJackWJJ/status/1868663463532519872
- Author: Josiah Jack (@JosiahJackWJJ)
- Posted: 2024-12-16 14:24:22
## Branch
**1/** **@JosiahJackWJJ** ^1868663463532519872
**@EricLengyel**
Don't use motion blur. Add motion lines/dust as particle effects if you wish. No blur.
We have enough blur from age, myopia, being tired up at night dealing with the kids, old contacts, fogged eyeglasses, floaters, etc.
## Related
- Spine: [[archive/threads/EricLengyel/2024-12-15-this-video-shows-the-velocity-buffer-used-to]]
@@ -0,0 +1,41 @@
---
title: "@EricLengyel it renders all velocities assuming your eye stares motionless so if your eye moves its all horribly wrong and looks like trash"
type: archive
source: twitter
source_url: "https://x.com/shitpost9000/status/1868535523897471300"
author: "Artificial Shitposting Intelligence"
handle: shitpost9000
post_id: "1868535523897471300"
date: 2024-12-16
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel it renders all velocities assuming your eye stares motionless so if your eye moves its all horribly wrong and looks like trash"
in_reply_to: ""
parent_post_id: "1868170748097114188"
---
## Source
- URL: https://x.com/shitpost9000/status/1868535523897471300
- Author: Artificial Shitposting Intelligence (@shitpost9000)
- Posted: 2024-12-16 05:55:59
## Branch
**1/** **@shitpost9000** ^1868535523897471300
**@EricLengyel**
it renders all velocities assuming your eye stares motionless so if your eye moves its all horribly wrong and looks like trash
i hate motion blur
its a gimmick to hide low framerates for poor people without 240hz+ monitors
## Related
- Spine: [[archive/threads/EricLengyel/2024-12-15-this-video-shows-the-velocity-buffer-used-to]]
@@ -0,0 +1,34 @@
---
title: "This video shows the velocity buffer used to render motion blur during post-processing in the C4 Engine."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1868170748097114188"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1868170748097114188"
date: 2024-12-15
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "This video shows the velocity buffer used to render motion blur during post-processing in the C4 Engine."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1868170748097114188
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2024-12-15 05:46:29
## Thread
**1/** **@EricLengyel** ^1868170748097114188
This video shows the velocity buffer used to render motion blur during post-processing in the C4 Engine. The screen-space velocity accounts for the motion of the camera, objects, and even vertices for cloth and skinned meshes. This technique is described in FGED2, Section 10.7.
<video controls src="https://video.twimg.com/ext_tw_video/1868170564403388416/pu/vid/avc1/1920x1080/N80y058XRwgqrdwC.mp4?tag=14"></video>
Branches: [[archive/threads/EricLengyel/2024-12-15-this-video-shows-the-velocity-buffer-used-to/2024-12-15-godraytio-finally-the-skeleton-from-the-cover-your-3dmath]], [[archive/threads/EricLengyel/2024-12-15-this-video-shows-the-velocity-buffer-used-to/2024-12-16-shitpost9000-it-renders-all-velocities-assuming-your-eye]], [[archive/threads/EricLengyel/2024-12-15-this-video-shows-the-velocity-buffer-used-to/2024-12-16-JosiahJackWJJ-dont-use-motion-blur-add-motion-lines-dust-as]]
@@ -0,0 +1,30 @@
---
title: "That would be highly dependent on how many Bézier curves are involved, whether you're using only fills or a mix of fills and strokes, what stroke features are used (cap, join, dashing), and how fast you're able to upload the output data to GPU-accessible memory."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1868508488080687608"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1868508488080687608"
date: 2024-12-16
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "That would be highly dependent on how many Bézier curves are involved, whether you're using only fills or a mix of fills and strokes, what stroke features are used (cap, join, dashing), and how fast you're able to upload the output data to GPU-accessible memory."
in_reply_to: "1868500027800420803"
---
## Source
- URL: https://x.com/EricLengyel/status/1868508488080687608
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2024-12-16 04:08:33
## Thread
**1/** **@EricLengyel** ^1868508488080687608
That would be highly dependent on how many Bézier curves are involved, whether you're using only fills or a mix of fills and strokes, what stroke features are used (cap, join, dashing), and how fast you're able to upload the output data to GPU-accessible memory. Keep in mind that any objects that are simply transformed without paths changing do not need to be remade when they move.
@@ -0,0 +1,42 @@
---
title: "Geometric algebra is linear algebra."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1873548324537811327"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1873548324537811327"
date: 2024-12-30
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "Geometric algebra is linear algebra."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1873548324537811327
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2024-12-30 01:55:04
## Thread
**1/** **@EricLengyel** ^1873548324537811327
Geometric algebra is linear algebra.
**2/** **@kan_immanuel** ^1875162855412215940
**@EricLengyel**
https://www.youtube.com/watch?v=6qSJq6ht7m4
**3/** **@EricLengyel** ^1875291581181493548
**@kan_immanuel**
Thanks for the link. Purely coincidentally, I'm in the process of releasing my own Mathematica code, probably today.
@@ -0,0 +1,39 @@
---
title: "@EricLengyel Maybe make this a strategy for your next book titles, Eric:"
type: archive
source: twitter
source_url: "https://x.com/ChristerEricson/status/1897391384015069377"
author: "🙊Christer Ericson"
handle: ChristerEricson
post_id: "1897391384015069377"
date: 2025-03-05
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Maybe make this a strategy for your next book titles, Eric:"
in_reply_to: ""
parent_post_id: "1897381472514007456"
---
## Source
- URL: https://x.com/ChristerEricson/status/1897391384015069377
- Author: 🙊Christer Ericson (@ChristerEricson)
- Posted: 2025-03-05 20:58:52
## Branch
**1/** **@ChristerEricson** ^1897391384015069377
**@EricLengyel**
Maybe make this a strategy for your next book titles, Eric:
* The Da Vinci 3D Code
* The Lord of the GPU Ring Buffers
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-04-seriously]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel Probably the name was chosen by Packt."
type: archive
source: twitter
source_url: "https://x.com/ushadersbible/status/1897389037998190699"
author: "Shaders Bible Series"
handle: ushadersbible
post_id: "1897389037998190699"
date: 2025-03-05
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Probably the name was chosen by Packt."
in_reply_to: ""
parent_post_id: "1897381472514007456"
---
## Source
- URL: https://x.com/ushadersbible/status/1897389037998190699
- Author: Shaders Bible Series (@ushadersbible)
- Posted: 2025-03-05 20:49:33
## Branch
**1/** **@ushadersbible** ^1897389037998190699
**@EricLengyel**
Probably the name was chosen by Packt. That publisher usually ‘creates’ a book title, and then they look for the best person to write it. That’s why they own the ip of their books.
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-04-seriously]]
@@ -0,0 +1,39 @@
---
title: "@EricLengyel Especially that [honest] authors hate being not-original / too close from something that already exist."
type: archive
source: twitter
source_url: "https://x.com/SaladeTomate18/status/1897465134878019682"
author: "🇫🇷 Salade Patriote 🇫🇷"
handle: SaladeTomate18
post_id: "1897465134878019682"
date: 2025-03-06
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Especially that [honest] authors hate being not-original / too close from something that already exist."
in_reply_to: ""
parent_post_id: "1897381472514007456"
---
## Source
- URL: https://x.com/SaladeTomate18/status/1897465134878019682
- Author: 🇫🇷 Salade Patriote 🇫🇷 (@SaladeTomate18)
- Posted: 2025-03-06 01:51:56
## Branch
**1/** **@SaladeTomate18** ^1897465134878019682
**@EricLengyel**
Especially that [honest] authors hate being not-original / too close from something that already exist.
You want to be unique as a creator. Not a x-like.
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-04-seriously]]
@@ -0,0 +1,50 @@
---
title: "Seriously?"
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1897051651862880478"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1897051651862880478"
date: 2025-03-04
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "Seriously?"
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1897051651862880478
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2025-03-04 22:28:53
## Thread
**1/** **@EricLengyel** ^1897051651862880478
Seriously?
![](https://pbs.twimg.com/media/GlOuXuVa4AQe_Z3?format=jpg&name=orig)
**2/** **@EricLengyel** ^1897200321912561960
To clarify the purpose of this post, I'll point out that book titles cannot be copyrighted or trademarked, so they could have even included the "3D", and it would have been legal. This is a matter of professionalism, or lack thereof.
**3/** **@EricLengyel** ^1897380660945514646
To clarify further, I'm really just making an observation. It's not my intent to slight the author or her book's content (which I have not read), and I'm not making any accusations of plagiarism.
**4/** **@EricLengyel** ^1897380662187082047
My only implication is that it would have shown greater professionalism to choose a title that's a bit different from a well-known book in the field.
**5/** **@EricLengyel** ^1897381472514007456
I can imagine a scenario in which the author had actually chosen a different title, but then the (known to be shady) publisher said "Hey, no, let's use this title almost exactly matching a popular book so we get accidental purchases."
Branches: [[archive/threads/EricLengyel/2025-03-04-seriously/2025-03-05-ushadersbible-probably-the-name-was-chosen-by-packt-that]], [[archive/threads/EricLengyel/2025-03-04-seriously/2025-03-05-ChristerEricson-maybe-make-this-a-strategy-for-your-next-book]], [[archive/threads/EricLengyel/2025-03-04-seriously/2025-03-06-SaladeTomate18-especially-that-honest-authors-hate-being-not]]
@@ -0,0 +1,39 @@
---
title: "@EricLengyel Very nice, Eric! I need to order some copies for myself."
type: archive
source: twitter
source_url: "https://x.com/BillHeyman/status/1902478443020722226"
author: "Bill Heyman"
handle: BillHeyman
post_id: "1902478443020722226"
date: 2025-03-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Very nice, Eric! I need to order some copies for myself."
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/BillHeyman/status/1902478443020722226
- Author: Bill Heyman (@BillHeyman)
- Posted: 2025-03-19 21:53:01
## Branch
**1/** **@BillHeyman** ^1902478443020722226
**@EricLengyel**
Very nice, Eric! I need to order some copies for myself.
I'd be a kid in the candy store there.
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,43 @@
---
title: "@EricLengyel Where I can buy digital copies?"
type: archive
source: twitter
source_url: "https://x.com/Guarda_1/status/1902505493471334780"
author: "Rommel (Guarda)"
handle: Guarda_1
post_id: "1902505493471334780"
date: 2025-03-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Where I can buy digital copies?"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/Guarda_1/status/1902505493471334780
- Author: Rommel (Guarda) (@Guarda_1)
- Posted: 2025-03-19 23:40:31
## Branch
**1/** **@Guarda_1** ^1902505493471334780
**@EricLengyel**
Where I can buy digital copies?
**2/** **@EricLengyel** ^1902506748398956583
**@Guarda_1**
Sorry, they’re print only.
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel I would buy this book just because of the cover"
type: archive
source: twitter
source_url: "https://x.com/Micha64149573/status/1902457219775422590"
author: "binary search tree 🇪🇺"
handle: Micha64149573
post_id: "1902457219775422590"
date: 2025-03-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel I would buy this book just because of the cover"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/Micha64149573/status/1902457219775422590
- Author: binary search tree 🇪🇺 (@Micha64149573)
- Posted: 2025-03-19 20:28:41
## Branch
**1/** **@Micha64149573** ^1902457219775422590
**@EricLengyel**
I would buy this book just because of the cover
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel Huzzah!!! another big pile of books to add to my library 😍"
type: archive
source: twitter
source_url: "https://x.com/PezzleSp/status/1902508538196599165"
author: "Perren Spence-Pearse"
handle: PezzleSp
post_id: "1902508538196599165"
date: 2025-03-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Huzzah!!! another big pile of books to add to my library 😍"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/PezzleSp/status/1902508538196599165
- Author: Perren Spence-Pearse (@PezzleSp)
- Posted: 2025-03-19 23:52:37
## Branch
**1/** **@PezzleSp** ^1902508538196599165
**@EricLengyel**
Huzzah!!! another big pile of books to add to my library 😍
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,51 @@
---
title: "@EricLengyel How many hours poured to write one ? Out of curiosity ? From the first letter typed on the keyboard to \"ok i am done\" ?"
type: archive
source: twitter
source_url: "https://x.com/SaladeTomate18/status/1902468746838491390"
author: "🇫🇷 Salade Patriote 🇫🇷"
handle: SaladeTomate18
post_id: "1902468746838491390"
date: 2025-03-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel How many hours poured to write one ? Out of curiosity ? From the first letter typed on the keyboard to \"ok i am done\" ?"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/SaladeTomate18/status/1902468746838491390
- Author: 🇫🇷 Salade Patriote 🇫🇷 (@SaladeTomate18)
- Posted: 2025-03-19 21:14:30
## Branch
**1/** **@SaladeTomate18** ^1902468746838491390
**@EricLengyel**
How many hours poured to write one ? Out of curiosity ? From the first letter typed on the keyboard to "ok i am done" ?
**2/** **@EricLengyel** ^1902471019912425548
**@SaladeTomate18**
It’s hard to say. It’s not just the writing, but also a lot of research and programming. The green book on the right was the most recent, and it took about a year of full-time work. So I would estimate somewhere around 2000 hours.
**3/** **@SaladeTomate18** ^1902565506147578350
**@EricLengyel**
Gotcha, quite an endeavour, not surprised.
Thanks for the insight.
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel I want them all 🥹😅😁"
type: archive
source: twitter
source_url: "https://x.com/SimonBAnderson/status/1902500063873822815"
author: "SimonA"
handle: SimonBAnderson
post_id: "1902500063873822815"
date: 2025-03-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel I want them all 🥹😅😁"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/SimonBAnderson/status/1902500063873822815
- Author: SimonA (@SimonBAnderson)
- Posted: 2025-03-19 23:18:56
## Branch
**1/** **@SimonBAnderson** ^1902500063873822815
**@EricLengyel**
I want them all 🥹😅😁
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel Love your books 👍"
type: archive
source: twitter
source_url: "https://x.com/_switz/status/1902485447999095138"
author: "h1ggs"
handle: _switz
post_id: "1902485447999095138"
date: 2025-03-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Love your books 👍"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/_switz/status/1902485447999095138
- Author: h1ggs (@_switz)
- Posted: 2025-03-19 22:20:51
## Branch
**1/** **@_switz** ^1902485447999095138
**@EricLengyel**
Love your books 👍
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel 3."
type: archive
source: twitter
source_url: "https://x.com/dgant/status/1902482981312459044"
author: "Dan Gant ⚡ Making Games"
handle: dgant
post_id: "1902482981312459044"
date: 2025-03-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel 3."
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/dgant/status/1902482981312459044
- Author: Dan Gant ⚡ Making Games (@dgant)
- Posted: 2025-03-19 22:11:03
## Branch
**1/** **@dgant** ^1902482981312459044
**@EricLengyel**
3. Profit
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,50 @@
---
title: "@EricLengyel 1."
type: archive
source: twitter
source_url: "https://x.com/jorge_codes/status/1902509973524869421"
author: "Jorge Palacios - Software and Game Developer"
handle: jorge_codes
post_id: "1902509973524869421"
date: 2025-03-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel 1."
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/jorge_codes/status/1902509973524869421
- Author: Jorge Palacios - Software and Game Developer (@jorge_codes)
- Posted: 2025-03-19 23:58:19
## Branch
**1/** **@jorge_codes** ^1902509973524869421
**@EricLengyel**
1. Congrats 🍾
2. Given that math books are practically timeless, what would be the difference between Math 2002 and 2019? I’m inclined to buy the 3-book series but feeling FOMO for the old one.
**2/** **@EricLengyel** ^1902514580607078637
**@jorge_codes**
The math in FGED1 isn't really new, but it does have better explanations than my earlier books, and it contains a lot of new tricks related to programming. As for PGA Illuminated, it contains a *lot* of new math that wasn't even known to mankind in 2019.
**3/** **@jorge_codes** ^1902523215215260111
**@EricLengyel**
Thanks for the update! Will use the L&D budget to buy the FGED 1 and 2 🫶🏾
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel It must be thrilling for you to see it! Huge congratulations."
type: archive
source: twitter
source_url: "https://x.com/ndwork/status/1902448748438921265"
author: "Nicholas Dwork"
handle: ndwork
post_id: "1902448748438921265"
date: 2025-03-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel It must be thrilling for you to see it! Huge congratulations."
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/ndwork/status/1902448748438921265
- Author: Nicholas Dwork (@ndwork)
- Posted: 2025-03-19 19:55:02
## Branch
**1/** **@ndwork** ^1902448748438921265
**@EricLengyel**
It must be thrilling for you to see it! Huge congratulations.
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel Edge of the table could use some antialiasing"
type: archive
source: twitter
source_url: "https://x.com/renatomiseravel/status/1902482446949470686"
author: "Romero Britto Hiperrealista"
handle: renatomiseravel
post_id: "1902482446949470686"
date: 2025-03-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Edge of the table could use some antialiasing"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/renatomiseravel/status/1902482446949470686
- Author: Romero Britto Hiperrealista (@renatomiseravel)
- Posted: 2025-03-19 22:08:56
## Branch
**1/** **@renatomiseravel** ^1902482446949470686
**@EricLengyel**
Edge of the table could use some antialiasing
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel 1 & 2 Sitting on my Amazon wishlist."
type: archive
source: twitter
source_url: "https://x.com/szspagna/status/1902479665278939600"
author: "szspagna"
handle: szspagna
post_id: "1902479665278939600"
date: 2025-03-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel 1 & 2 Sitting on my Amazon wishlist."
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/szspagna/status/1902479665278939600
- Author: szspagna (@szspagna)
- Posted: 2025-03-19 21:57:53
## Branch
**1/** **@szspagna** ^1902479665278939600
**@EricLengyel**
1 & 2 Sitting on my Amazon wishlist. I just need to get to enough math and programming competency to order them 😭
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel Jeez, I want all of these🤩🫣"
type: archive
source: twitter
source_url: "https://x.com/tailgategame/status/1902472550661148934"
author: "🐕🎾Tailgate — the doggo adventure👨🏻‍💻"
handle: tailgategame
post_id: "1902472550661148934"
date: 2025-03-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Jeez, I want all of these🤩🫣"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/tailgategame/status/1902472550661148934
- Author: 🐕🎾Tailgate — the doggo adventure👨🏻‍💻 (@tailgategame)
- Posted: 2025-03-19 21:29:36
## Branch
**1/** **@tailgategame** ^1902472550661148934
**@EricLengyel**
Jeez, I want all of these🤩🫣
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,43 @@
---
title: "@EricLengyel What happened to the 3rd book?"
type: archive
source: twitter
source_url: "https://x.com/toncijukic/status/1902450712224596072"
author: "Tonči Jukić"
handle: toncijukic
post_id: "1902450712224596072"
date: 2025-03-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel What happened to the 3rd book?"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/toncijukic/status/1902450712224596072
- Author: Tonči Jukić (@toncijukic)
- Posted: 2025-03-19 20:02:50
## Branch
**1/** **@toncijukic** ^1902450712224596072
**@EricLengyel**
What happened to the 3rd book?
**2/** **@EricLengyel** ^1902458528079769692
**@toncijukic**
It’s in progress! The plan is to have it finished this year.
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,49 @@
---
title: "@EricLengyel Are you self publishing? 👀"
type: archive
source: twitter
source_url: "https://x.com/ushadersbible/status/1902508185983877630"
author: "Shaders Bible Series"
handle: ushadersbible
post_id: "1902508185983877630"
date: 2025-03-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Are you self publishing? 👀"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/ushadersbible/status/1902508185983877630
- Author: Shaders Bible Series (@ushadersbible)
- Posted: 2025-03-19 23:51:13
## Branch
**1/** **@ushadersbible** ^1902508185983877630
**@EricLengyel**
Are you self publishing? 👀
**2/** **@EricLengyel** ^1902512386969571470
**@ushadersbible**
Yeah, for about 10 years now.
**3/** **@ushadersbible** ^1902520718706749606
**@EricLengyel**
That’s pretty amazing!
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,61 @@
---
title: "@EricLengyel which should i start reading first?"
type: archive
source: twitter
source_url: "https://x.com/0xBi83/status/1902547192969359846"
author: "0xBi83"
handle: 0xBi83
post_id: "1902547192969359846"
date: 2025-03-20
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel which should i start reading first?"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/0xBi83/status/1902547192969359846
- Author: 0xBi83 (@0xBi83)
- Posted: 2025-03-20 02:26:13
## Branch
**1/** **@0xBi83** ^1902547192969359846
**@EricLengyel**
which should i start reading first?
**2/** **@EricLengyel** ^1902549080322273461
**@nginrsw**
That depends on your interests and existing knowledge level. They were written from left to right.
**3/** **@0xBi83** ^1902581181432131748
**@EricLengyel**
from scratch except programming languages.
**4/** **@EricLengyel** ^1902596444667740217
**@nginrsw**
If you need to learn about vectors and matrices, then start with FGED1. If you know that stuff pretty well and want to get right into rendering stuff, then it's safe to start with FGED2.
**5/** **@EricLengyel** ^1902596668572176413
**@nginrsw**
PGA Illuminated is for those who want a very deep understanding of how everything from homogeneous coordinates to dual quaternions is neatly tied together in a single mathematical structure.
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel The covers look bootlegged, idk if that makes sense"
type: archive
source: twitter
source_url: "https://x.com/Digital_Reverie/status/1902606661233340546"
author: "Sen Zahid"
handle: Digital_Reverie
post_id: "1902606661233340546"
date: 2025-03-20
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel The covers look bootlegged, idk if that makes sense"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/Digital_Reverie/status/1902606661233340546
- Author: Sen Zahid (@Digital_Reverie)
- Posted: 2025-03-20 06:22:31
## Branch
**1/** **@Digital_Reverie** ^1902606661233340546
**@EricLengyel**
The covers look bootlegged, idk if that makes sense
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel Wait… where that I didn’t see it?"
type: archive
source: twitter
source_url: "https://x.com/JoaoBapt/status/1902630459168969072"
author: "João Baptista 🇧🇷"
handle: JoaoBapt
post_id: "1902630459168969072"
date: 2025-03-20
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Wait… where that I didn’t see it?"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/JoaoBapt/status/1902630459168969072
- Author: João Baptista 🇧🇷 (@JoaoBapt)
- Posted: 2025-03-20 07:57:05
## Branch
**1/** **@JoaoBapt** ^1902630459168969072
**@EricLengyel**
Wait… where that I didn’t see it?
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel Do they also have the copy cats?"
type: archive
source: twitter
source_url: "https://x.com/KentoAsashima/status/1902726481102450808"
author: "Kento Asashima"
handle: KentoAsashima
post_id: "1902726481102450808"
date: 2025-03-20
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Do they also have the copy cats?"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/KentoAsashima/status/1902726481102450808
- Author: Kento Asashima (@KentoAsashima)
- Posted: 2025-03-20 14:18:38
## Branch
**1/** **@KentoAsashima** ^1902726481102450808
**@EricLengyel**
Do they also have the copy cats?
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel Eye catcher : The Playful Undead and Video Games: Critical Analyses of Zombies and Gameplay😇😋"
type: archive
source: twitter
source_url: "https://x.com/_bingxu/status/1902635605726773390"
author: "Bing Xu"
handle: _bingxu
post_id: "1902635605726773390"
date: 2025-03-20
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Eye catcher : The Playful Undead and Video Games: Critical Analyses of Zombies and Gameplay😇😋"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/_bingxu/status/1902635605726773390
- Author: Bing Xu (@_bingxu)
- Posted: 2025-03-20 08:17:32
## Branch
**1/** **@_bingxu** ^1902635605726773390
**@EricLengyel**
Eye catcher : The Playful Undead and Video Games: Critical Analyses of Zombies and Gameplay😇😋
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,39 @@
---
title: "@EricLengyel wth how did you get a ticket"
type: archive
source: twitter
source_url: "https://x.com/r0b0t_sp1der/status/1902725614605685125"
author: "🕷️"
handle: r0b0t_sp1der
post_id: "1902725614605685125"
date: 2025-03-20
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel wth how did you get a ticket"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/r0b0t_sp1der/status/1902725614605685125
- Author: 🕷️ (@r0b0t_sp1der)
- Posted: 2025-03-20 14:15:12
## Branch
**1/** **@r0b0t_sp1der** ^1902725614605685125
**@EricLengyel**
wth how did you get a ticket
(naught dog and sierra holy crap)
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel wow nice, classics no doubt."
type: archive
source: twitter
source_url: "https://x.com/seanboisselle/status/1902783599524581861"
author: "boisselle 🇺🇸"
handle: seanboisselle
post_id: "1902783599524581861"
date: 2025-03-20
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel wow nice, classics no doubt."
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/seanboisselle/status/1902783599524581861
- Author: boisselle 🇺🇸 (@seanboisselle)
- Posted: 2025-03-20 18:05:36
## Branch
**1/** **@seanboisselle** ^1902783599524581861
**@EricLengyel**
wow nice, classics no doubt.
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel"
type: archive
source: twitter
source_url: "https://x.com/seancelestial/status/1902513549110604226"
author: "sean"
handle: seancelestial
post_id: "1902513549110604226"
date: 2025-03-20
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/seancelestial/status/1902513549110604226
- Author: sean (@seancelestial)
- Posted: 2025-03-20 00:12:31
## Branch
**1/** **@seancelestial** ^1902513549110604226
**@EricLengyel**
![](https://pbs.twimg.com/media/GmcV_Yda8AEG3cU?format=jpg&name=orig)
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,43 @@
---
title: "@EricLengyel Are these books about programming your own game engine?"
type: archive
source: twitter
source_url: "https://x.com/xPaxion/status/1903061144006214032"
author: "John Doe"
handle: xPaxion
post_id: "1903061144006214032"
date: 2025-03-21
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Are these books about programming your own game engine?"
in_reply_to: ""
parent_post_id: "1902447407117562230"
---
## Source
- URL: https://x.com/xPaxion/status/1903061144006214032
- Author: John Doe (@xPaxion)
- Posted: 2025-03-21 12:28:28
## Branch
**1/** **@xPaxion** ^1903061144006214032
**@EricLengyel**
Are these books about programming your own game engine?
**2/** **@EricLengyel** ^1903151589558509597
**@xPaxion**
These books cover their topics in a general fashion and don't talk about any engine in particular. Of course, everything in these books is also implemented in my own engine.
## Related
- Spine: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
@@ -0,0 +1,34 @@
---
title: "In the GDC bookstore."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1902447407117562230"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1902447407117562230"
date: 2025-03-19
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "In the GDC bookstore."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1902447407117562230
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2025-03-19 19:49:42
## Thread
**1/** **@EricLengyel** ^1902447407117562230
In the GDC bookstore.
![](https://pbs.twimg.com/media/GmbZ1UCa8AQ_x71?format=jpg&name=orig)
Branches: [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-19-ndwork-it-must-be-thrilling-for-you-to-see-it-huge]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-19-toncijukic-what-happened-to-the-3rd-book]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-19-Micha64149573-i-would-buy-this-book-just-because-of-the-cover]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-19-SaladeTomate18-how-many-hours-poured-to-write-one-out-of]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-19-tailgategame-jeez-i-want-all-of-these]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-19-BillHeyman-very-nice-eric-i-need-to-order-some-copies-for]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-19-szspagna-1-2-sitting-on-my-amazon-wishlist-i-just-need-to]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-19-renatomiseravel-edge-of-the-table-could-use-some-antialiasing]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-19-dgant-3-profit]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-19-_switz-love-your-books]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-19-SimonBAnderson-i-want-them-all]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-19-Guarda_1-where-i-can-buy-digital-copies]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-19-ushadersbible-are-you-self-publishing]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-19-PezzleSp-huzzah-another-big-pile-of-books-to-add-to-my]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-19-jorge_codes-1-congrats-2-given-that-math-books-are]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-20-seancelestial-thread]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-20-0xBi83-which-should-i-start-reading-first]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-20-Digital_Reverie-the-covers-look-bootlegged-idk-if-that-makes-sense]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-20-JoaoBapt-wait-where-that-i-didnt-see-it]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-20-_bingxu-eye-catcher-the-playful-undead-and-video-games]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-20-r0b0t_sp1der-wth-how-did-you-get-a-ticket-naught-dog-and]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-20-KentoAsashima-do-they-also-have-the-copy-cats]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-20-seanboisselle-wow-nice-classics-no-doubt]], [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore/2025-03-21-xPaxion-are-these-books-about-programming-your-own-game]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel That moment when we witness an obscure piece of trivia being born in real time."
type: archive
source: twitter
source_url: "https://x.com/mankrip/status/1914495515049206180"
author: "mankrip"
handle: mankrip
post_id: "1914495515049206180"
date: 2025-04-22
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel That moment when we witness an obscure piece of trivia being born in real time."
in_reply_to: ""
parent_post_id: "1914489038322721262"
---
## Source
- URL: https://x.com/mankrip/status/1914495515049206180
- Author: mankrip (@mankrip)
- Posted: 2025-04-22 01:44:35
## Branch
**1/** **@mankrip** ^1914495515049206180
**@EricLengyel**
That moment when we witness an obscure piece of trivia being born in real time.
## Related
- Spine: [[archive/threads/EricLengyel/2025-04-22-what-i-ended-up-doing-was-transforming-axis]]
@@ -0,0 +1,34 @@
---
title: "What I ended up doing was transforming axis-aligned rectangles into a pair of overlapping pentagons arranged like this."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1914489038322721262"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1914489038322721262"
date: 2025-04-22
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "What I ended up doing was transforming axis-aligned rectangles into a pair of overlapping pentagons arranged like this."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1914489038322721262
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2025-04-22 01:18:50
## Thread
**1/** **@EricLengyel** ^1914489038322721262
What I ended up doing was transforming axis-aligned rectangles into a pair of overlapping pentagons arranged like this. It renders without artifacts and fools both Acrobat and Chrome so we get a consistent appearance. Equations in PDFs look nicer as a result.
![](https://pbs.twimg.com/media/GpGhIkAa4AYsniL?format=png&name=orig)
Branches: [[archive/threads/EricLengyel/2025-04-22-what-i-ended-up-doing-was-transforming-axis/2025-04-22-mankrip-that-moment-when-we-witness-an-obscure-piece-of]]
@@ -0,0 +1,49 @@
---
title: "@EricLengyel Does this mean Geometric Algebra is metric independent?"
type: archive
source: twitter
source_url: "https://x.com/kan_immanuel/status/1926403973281374269"
author: "hüllya"
handle: kan_immanuel
post_id: "1926403973281374269"
date: 2025-05-24
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Does this mean Geometric Algebra is metric independent?"
in_reply_to: ""
parent_post_id: "1925815729544163742"
---
## Source
- URL: https://x.com/kan_immanuel/status/1926403973281374269
- Author: hüllya (@kan_immanuel)
- Posted: 2025-05-24 22:24:32
## Branch
**1/** **@kan_immanuel** ^1926403973281374269
**@EricLengyel**
Does this mean Geometric Algebra is metric independent?
**2/** **@EricLengyel** ^1926407148319154685
**@kan_immanuel**
No, geometric algebra is very much dependent on a metric. What this does mean is that we can isolate the influence of the metric to that single dualization appearing in the formula for the transwedge product.
**3/** **@kan_immanuel** ^1926697778241020396
**@EricLengyel**
Can we now do a direct translation from Discrete Exterior Calculus (@keenanisalive) to Geometric Calculus?
## Related
- Spine: [[archive/threads/EricLengyel/2025-05-23-i-wrote-a-new-blog-post-about-something-im]]
@@ -0,0 +1,49 @@
---
title: "@EricLengyel I read your Foundation of Game Engine Development Volume 1 and Volume 2."
type: archive
source: twitter
source_url: "https://x.com/ntian2/status/1926512748529143911"
author: "ntian"
handle: ntian2
post_id: "1926512748529143911"
date: 2025-05-25
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel I read your Foundation of Game Engine Development Volume 1 and Volume 2."
in_reply_to: ""
parent_post_id: "1925815729544163742"
---
## Source
- URL: https://x.com/ntian2/status/1926512748529143911
- Author: ntian (@ntian2)
- Posted: 2025-05-25 05:36:46
## Branch
**1/** **@ntian2** ^1926512748529143911
**@EricLengyel**
I read your Foundation of Game Engine Development Volume 1 and Volume 2. The content is excellent, but I found the gap in difficulty between the math in Volume 1 and the math used in Volume 2 to be quite large. It was very challenging to read, and I had to frequently rely on AI
**2/** **@EricLengyel** ^1926517805316207056
**@ntian2**
Were there any particular sections that you'd say exemplify this the most?
**3/** **@ntian2** ^1926553892461912417
**@EricLengyel**
The first three chapters were quite accessible, but I found myself completely lost when I reached the chapter on Grassmann.Even though I had read some other computer graphics books before this one, it was the first time I had ever encountered this concept.
## Related
- Spine: [[archive/threads/EricLengyel/2025-05-23-i-wrote-a-new-blog-post-about-something-im]]
@@ -0,0 +1,35 @@
---
title: "I wrote a new blog post about something I'm calling the transwedge product."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1925815729544163742"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1925815729544163742"
date: 2025-05-23
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "I wrote a new blog post about something I'm calling the transwedge product."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1925815729544163742
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2025-05-23 07:27:04
## Thread
**1/** **@EricLengyel** ^1925815729544163742
I wrote a new blog post about something I'm calling the transwedge product. It allows us to fully decompose the geometric product into discrete parts using the primitive operations of the exterior algebra.
https://terathon.com/blog/transwedge-product.html
![](https://pbs.twimg.com/media/Grnew7lWoAAf6QO?format=png&name=orig)
Branches: [[archive/threads/EricLengyel/2025-05-23-i-wrote-a-new-blog-post-about-something-im/2025-05-24-kan_immanuel-does-this-mean-geometric-algebra-is-metric]], [[archive/threads/EricLengyel/2025-05-23-i-wrote-a-new-blog-post-about-something-im/2025-05-25-ntian2-i-read-your-foundation-of-game-engine-development]]
@@ -0,0 +1,36 @@
---
title: "Generalizing to a convex polygon with n vertices, clipping against a single plane can increase the total vertex count by at most one."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1928254084387045649"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1928254084387045649"
date: 2025-05-30
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "Generalizing to a convex polygon with n vertices, clipping against a single plane can increase the total vertex count by at most one."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/1928254084387045649
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2025-05-30 00:56:13
## Thread
**1/** **@EricLengyel** ^1928254084387045649
Generalizing to a convex polygon with n vertices, clipping against a single plane can increase the total vertex count by at most one. If you're clipping against a cube, that means the final vertex count is at most n + 6. So if you started with a triangle, then the maximum is 9.
**2/** **@pikuma** ^1928254421751709898
**@EricLengyel**
🙂 spot on.
@@ -0,0 +1,43 @@
---
title: "@EricLengyel Never could understand right or left contraction, still don't."
type: archive
source: twitter
source_url: "https://x.com/pedroth9/status/2019905754136821783"
author: "pedroth"
handle: pedroth9
post_id: "2019905754136821783"
date: 2026-02-06
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel Never could understand right or left contraction, still don't."
in_reply_to: ""
parent_post_id: "2019901781824925828"
---
## Source
- URL: https://x.com/pedroth9/status/2019905754136821783
- Author: pedroth (@pedroth9)
- Posted: 2026-02-06 22:47:14
## Branch
**1/** **@pedroth9** ^2019905754136821783
**@EricLengyel**
Never could understand right or left contraction, still don't. Geometric algebra for computer scientist tried, but still could not
**2/** **@EricLengyel** ^2019907847153414346
**@pedroth9**
It doesn't help that Geometric Algebra for Computer Science contains a clunky implicit definition for the contraction that ends up producing incorrect results.
## Related
- Spine: [[archive/threads/EricLengyel/2026-02-06-when-a-is-a-vector-and-b-is-any-multivector-the]]
@@ -0,0 +1,216 @@
---
title: "@EricLengyel So in the case of two vectors, the result of the geometric product would be a mixed grade bivector+scalar, right?"
type: archive
source: twitter
source_url: "https://x.com/NateMorrical/status/2019958137093284129"
author: "Nate Morrical"
handle: NateMorrical
post_id: "2019958137093284129"
date: 2026-02-07
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel So in the case of two vectors, the result of the geometric product would be a mixed grade bivector+scalar, right?"
in_reply_to: ""
parent_post_id: "2019901780549861535"
---
## Source
- URL: https://x.com/NateMorrical/status/2019958137093284129
- Author: Nate Morrical (@NateMorrical)
- Posted: 2026-02-07 02:15:23
## Branch
**1/** **@NateMorrical** ^2019958137093284129
**@EricLengyel**
So in the case of two vectors, the result of the geometric product would be a mixed grade bivector+scalar, right?
I lack a good geometric intuition for the geometric product... Though I have had what appear like geometric products pop up in arithmetic from time to time.
**2/** **@EricLengyel** ^2019981553431113787
**@NateMorrical**
Yep! That’s what the last equation says.
**3/** **@NateMorrical** ^2020179654301347975
**@EricLengyel**
Currently this equation appears like a pointless coroutine.
I could invent a seemingly equally useful "geometric division" operator which returns (a \wedge b) + (a • b)^{-1}.
Surely there's more to the geometric product than just a shorthand convenience?
**4/** **@NateMorrical** ^2020183354373746849
**@EricLengyel**
I'm poking at this because they almost look like homogeneous magnitudes.
If the left wedge was replaced with a weight expansion, and the right stays a bulk contraction, then I can implement a ray-plane intersection t with it that seems to preserve front / back face information.
**5/** **@EricLengyel** ^2020205603013161098
**@NateMorrical**
I'm not aware of any connection there. But I will note that the antiwedge product g ∨ l between a plane and a line gives you an intersection point for which the sign of the e₄ component tells you whether the ray hit the front or back of the plane.
**6/** **@NateMorrical** ^2020280784154952136
**@EricLengyel**
The idea here is related.
If you take a ray r = [e1,e2,e3 | e4, e423, e431, e412] to be a mixed grade origin + antivector "direction" object, then g∨r + g∧r gives a homogeneous magnitude which once unitized appears like a ray-plane intersection t.
**7/** **@NateMorrical** ^2020281726392741902
**@EricLengyel**
The object r can be made an "anti-r" of sorts such that the plane measures the origin as a numerator and the rays direction measures the plane as a denominator.
It simplifies to an addition between a dot and an antidot, which reminded me a bit of the geometric product.
**8/** **@EricLengyel** ^2020285746033381650
**@NateMorrical**
But g ∨ r contains both scalar and bivector parts.
**9/** **@NateMorrical** ^2020340030900965660
**@EricLengyel**
Sorry, I meant g∨(r_\bulk) + g∧(r_\weight).
This is assuming a projective metric/antimetric. Relating back to bulk contractions / weight expansions.
**10/** **@NateMorrical** ^2020368563534725193
**@EricLengyel**
In retrospect there's a bit more nuance to it.
Linalg ray vs plane t = -(g.n • r.o + g.d)/(r.ω•g.n)=(g.n • r.o)/(r.ω•g.n)+(g.d•r.w)/(r.ω•g.n)
Ie a sum of two inner products followed by a signed unitization.
In PGA, dual t = g•r / g°r + g°r/g°r = ± ||g•r + g°r||
**11/** **@NateMorrical** ^2020372185786057057
**@EricLengyel**
g•r=g∨𝕣^☆=g∨[e321|e423,e431,e412]^☆=-g∨[e1,e2,e3|e4]
g°r=g∧𝕣^★=g∧[e1,e2,e3]^★=g∧[0|e423,e431,e412]
So ||g•r + g°r|| = || g∨𝕣^☆ + g∧𝕣^★||
(Assuming I have that all right ...)
**12/** **@NateMorrical** ^2020373138639581327
**@EricLengyel**
From here I used symmetry between expansions and contractions to simplify. Twitter's char limit isn't great for writing that out.
TLDR, I was seeing this "sum of two inner products, then project" pattern, which reminded me of the geometric product.
**13/** **@NateMorrical** ^2020598208179970199
**@EricLengyel**
Revisiting this idea this morning, I believe this is another flaw in my logic:
g•𝕣 = g⊺𝐆𝕣 ≠ g∨𝕣^★. The inner product filters out off-diagonal terms from the interior product.
So g•r = 0, because 𝐆 filters out all but e1,e2,e3, and g has none of these.
**14/** **@EricLengyel** ^2020741046381187537
Yeah, the dot product between two things of different grades is always zero. I don't think the formulation of a "ray" that you're using is the right approach. Normally, you'd just intersect a line and a plane, and the e₄ component of the resulting point ends up being the value you need to divide by.
**15/** **@NateMorrical** ^2020882239572357358
**@EricLengyel**
This increases arithmetic complexity converting the ray to plucker coordinates.
Conventionally we dot the origin with the plane, then divide by the dot between the direction and the plane.
**16/** **@NateMorrical** ^2020884910278574565
**@EricLengyel**
By using the first and third blocks of the metric, this seems to avoid increasing arithmetic. But it's not elegant.
The "plane" must become mixed grade iiic, so the ray origin/direction pairs with seven unique "plane" bases.
This is what we do in real RT code. t=(o•g)/(d•g)
**17/** **@NateMorrical** ^2020888592957198742
**@EricLengyel**
I understand the philosophy of PGA isn't necessarily about compute performance.
But it's a real reason I can't use it in practice. I usually can't afford it.
**18/** **@EricLengyel** ^2020940405043495372
I understand where you're coming from, and in the case of a ray intersecting a single plane, it's probably best to just stick with a point and direction instead of combining them into a line. If you did make a line, I think the final calculation would simplify to the same thing if you expressed the line in terms of the point and direction that made it. Performance is important, and that's why I point out that GA is slower than conventional methods at several places in my book.
**19/** **@NateMorrical** ^2030131930029773034
**@EricLengyel**
Gave this another go today.
Let a ray r = o+v, where o is the origin as a point and v is the direction as a zero-offset trivector. Then g to be a plane.
Then o = ½(r+r̃) and v = ½(r-r̃).
So s = g∧½(r+r̃) + g◦½(r-r̃) and the intersection between r and g is t = (s_•)/(s_◦)
**20/** **@NateMorrical** ^2030133863201263696
**@EricLengyel**
Err, s = g∨½(r+r̃) + g◦½(r-r̃)
First term is a scalar where origin meets plane. Second is antiscalar where the dual of the direction joins the plane.
The ½ can be dropped as it's a common constant to both sides.
g∨(r+r̃) + g◦(r-r̃) is what made me go "geometric product?"
**21/** **@EricLengyel** ^2030532837095670099
**@NateMorrical**
Since the antiwedge product and antidot product are being taken with different values, I don't think there's a connection with the geometric antiproduct.
**22/** **@NateMorrical** ^2031159959019516382
**@EricLengyel**
Iiic, a geo product decomposes vector multiplication into a projection plus a rejection.
The scalar here is the projection of the origin onto the plane.
The antiscalar seems a bit like +/- rejection of the direction.
So it still seems related to me, if only indirectly.
## Related
- Spine: [[archive/threads/EricLengyel/2026-02-06-when-a-is-a-vector-and-b-is-any-multivector-the]]
@@ -0,0 +1,50 @@
---
title: "When a is a vector and b is any multivector, the geometric product a ⟑ b decomposes as"
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/2019901780549861535"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "2019901780549861535"
date: 2026-02-06
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "When a is a vector and b is any multivector, the geometric product a ⟑ b decomposes as"
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/2019901780549861535
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2026-02-06 22:31:27
## Thread
**1/** **@EricLengyel** ^2019901780549861535
When a is a vector and b is any multivector, the geometric product a ⟑ b decomposes as
a ⟑ b = a ∧ b + b ∨ (a^★),
and b ⟑ a decomposes as
b ⟑ a = b ∧ a + (a_★) ∨ b.
If a and b are both vectors, these both reduce to
a ⟑ b = a ∧ b + a ⋅ b.
Branches: [[archive/threads/EricLengyel/2026-02-06-when-a-is-a-vector-and-b-is-any-multivector-the/2026-02-07-NateMorrical-so-in-the-case-of-two-vectors-the-result-of-the]]
**2/** **@EricLengyel** ^2019901781824925828
Here, ^★ and _★ are the right and left Hodge duals.
The expression b ∨ (a^★) is the definition of the right contraction, sometimes written b ⌊ a. Likewise, (a_★) ∨ b is the left contraction a ⌋ b.
Branches: [[archive/threads/EricLengyel/2026-02-06-when-a-is-a-vector-and-b-is-any-multivector-the/2026-02-06-pedroth9-never-could-understand-right-or-left-contraction]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel A three dimensional drawing is by necessity a projective geometry."
type: archive
source: twitter
source_url: "https://x.com/JoeECusick/status/2028460074499231953"
author: "Joseph Cusick"
handle: JoeECusick
post_id: "2028460074499231953"
date: 2026-03-02
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel A three dimensional drawing is by necessity a projective geometry."
in_reply_to: ""
parent_post_id: "2028373288255435179"
---
## Source
- URL: https://x.com/JoeECusick/status/2028460074499231953
- Author: Joseph Cusick (@JoeECusick)
- Posted: 2026-03-02 13:19:03
## Branch
**1/** **@JoeECusick** ^2028460074499231953
**@EricLengyel**
A three dimensional drawing is by necessity a projective geometry.
## Related
- Spine: [[archive/threads/EricLengyel/2026-03-02-ive-written-a-new-blog-post-called-dual]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel One pain behind point-based PGA is it's inconsistency with set theory and Boolean logic, given grades appear as literal bitcodes that you'd want to do Boolean logic on."
type: archive
source: twitter
source_url: "https://x.com/NateMorrical/status/2028601752149434703"
author: "Nate Morrical"
handle: NateMorrical
post_id: "2028601752149434703"
date: 2026-03-02
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "@EricLengyel One pain behind point-based PGA is it's inconsistency with set theory and Boolean logic, given grades appear as literal bitcodes that you'd want to do Boolean logic on."
in_reply_to: ""
parent_post_id: "2028373288255435179"
---
## Source
- URL: https://x.com/NateMorrical/status/2028601752149434703
- Author: Nate Morrical (@NateMorrical)
- Posted: 2026-03-02 22:42:01
## Branch
**1/** **@NateMorrical** ^2028601752149434703
**@EricLengyel**
One pain behind point-based PGA is it's inconsistency with set theory and Boolean logic, given grades appear as literal bitcodes that you'd want to do Boolean logic on. AND ∧ intersects bools and logical OR ∨ join them.
## Related
- Spine: [[archive/threads/EricLengyel/2026-03-02-ive-written-a-new-blog-post-called-dual]]
@@ -0,0 +1,35 @@
---
title: "thanks this interests me so much in relation also to the primary duals of Chaos/Random as essentially a shortening of flux wave from null horizon..."
type: archive
source: twitter
source_url: "https://x.com/EVangorder15570/status/2028629054329610273"
author: "Edwin VanGorder"
handle: EVangorder15570
post_id: "2028629054329610273"
date: 2026-03-03
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "thanks this interests me so much in relation also to the primary duals of Chaos/Random as essentially a shortening of flux wave from null horizon..."
in_reply_to: ""
parent_post_id: "2028373288255435179"
---
## Source
- URL: https://x.com/EVangorder15570/status/2028629054329610273
- Author: Edwin VanGorder (@EVangorder15570)
- Posted: 2026-03-03 00:30:31
## Branch
**1/** **@EVangorder15570** ^2028629054329610273
thanks this interests me so much in relation also to the primary duals of Chaos/Random as essentially a shortening of flux wave from null horizon... a spanning tree or star like graph over potential definitions of a point as those regimes entangle has the quantum graphing version bringing this to a kind of Category theory....a spectrum of points over the Dual Duals as Nature of Nature as the Mean of the meaning of meaning
## Related
- Spine: [[archive/threads/EricLengyel/2026-03-02-ive-written-a-new-blog-post-called-dual]]
@@ -0,0 +1,35 @@
---
title: "I've written a new blog post called \"Dual Approaches to Projective Geometric Algebra\"."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/2028373288255435179"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "2028373288255435179"
date: 2026-03-02
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- EricLengyel
description: "I've written a new blog post called \"Dual Approaches to Projective Geometric Algebra\"."
in_reply_to: ""
---
## Source
- URL: https://x.com/EricLengyel/status/2028373288255435179
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2026-03-02 07:34:11
## Thread
**1/** **@EricLengyel** ^2028373288255435179
I've written a new blog post called "Dual Approaches to Projective Geometric Algebra".
https://terathon.com/blog/dual-pga.html
![](https://pbs.twimg.com/media/HCY6tjxaQAErg24?format=png&name=orig)
Branches: [[archive/threads/EricLengyel/2026-03-02-ive-written-a-new-blog-post-called-dual/2026-03-02-JoeECusick-a-three-dimensional-drawing-is-by-necessity-a]], [[archive/threads/EricLengyel/2026-03-02-ive-written-a-new-blog-post-called-dual/2026-03-02-NateMorrical-one-pain-behind-point-based-pga-is-its]], [[archive/threads/EricLengyel/2026-03-02-ive-written-a-new-blog-post-called-dual/2026-03-03-EVangorder15570-thanks-this-interests-me-so-much-in-relation-also]]
+22
View File
@@ -44,6 +44,28 @@ tags:
- [[archive/threads/EricLengyel/2022-01-17-one-of-the-biggest-misunderstandings-i-see-about]]
- [[archive/threads/EricLengyel/2022-01-17-rotations-in-3d-space-have-3-degrees-of-freedom]]
- [[archive/threads/EricLengyel/2022-12-11-objects-in-conformal-ga-can-have-a-real-or]]
- [[archive/threads/EricLengyel/2024-04-09-after-looking-at-the-current-state-of-vulkan-the]]
- [[archive/threads/EricLengyel/2024-04-10-some-people-seem-to-think-that-all-objects-in]]
- [[archive/threads/EricLengyel/2024-04-15-theres-a-neat-property-about-the-quadratic]]
- [[archive/threads/EricLengyel/2024-04-19-this-is-a-few-years-old-but-holy-crap-i-cant]]
- [[archive/threads/EricLengyel/2024-04-28-a-common-argument-against-the-east-coast-metric]]
- [[archive/threads/EricLengyel/2024-05-04-a-good-programming-language-does-not-force-you-to]]
- [[archive/threads/EricLengyel/2024-07-02-in-conformal-geometric-algebra-the-dot-product]]
- [[archive/threads/EricLengyel/2024-07-18-did-you-know-that-quaternions-have-two-different]]
- [[archive/threads/EricLengyel/2024-08-02-the-reason-i-have-been-giving-talks-about]]
- [[archive/threads/EricLengyel/2024-08-07-the-problem-is-that-so-long-as-theres]]
- [[archive/threads/EricLengyel/2024-08-11-a-slice-perpendicular-to-the-null-direction-in]]
- [[archive/threads/EricLengyel/2024-08-21-following-up-with-3d-homogeneous-coordinates]]
- [[archive/threads/EricLengyel/2024-11-27-heres-some-video-of-the-ssao-buffer-as-i-run]]
- [[archive/threads/EricLengyel/2024-12-12-i-was-surprised-to-hear-that-many-graphics-people]]
- [[archive/threads/EricLengyel/2024-12-15-this-video-shows-the-velocity-buffer-used-to]]
- [[archive/threads/EricLengyel/2024-12-16-that-would-be-highly-dependent-on-how-many-b-zier]]
- [[archive/threads/EricLengyel/2024-12-30-geometric-algebra-is-linear-algebra]]
- [[archive/threads/EricLengyel/2025-03-04-seriously]]
- [[archive/threads/EricLengyel/2025-03-19-in-the-gdc-bookstore]]
- [[archive/threads/EricLengyel/2025-04-22-what-i-ended-up-doing-was-transforming-axis]]
- [[archive/threads/EricLengyel/2025-05-23-i-wrote-a-new-blog-post-about-something-im]]
- [[archive/threads/EricLengyel/2025-05-30-generalizing-to-a-convex-polygon-with-n-vertices]]
- [[archive/threads/EricLengyel/2026-01-23-ive-worked-very-hard-over-many-years-to-develop-a]]
- [[archive/threads/EricLengyel/2026-02-06-when-a-is-a-vector-and-b-is-any-multivector-the]]
- [[archive/threads/EricLengyel/2026-03-02-ive-written-a-new-blog-post-called-dual]]
@@ -0,0 +1,87 @@
---
title: "okay so I'm generally pro-operator-overloading but even I will admit it's a little silly that m*(q*v) can be a matrix multiplied by the result of a quaternion rotation of a vector v interpreted as a column vector"
type: archive
source: twitter
source_url: "https://x.com/FreyaHolmer/status/1841087879759495670"
author: "Freya Holmér"
handle: FreyaHolmer
post_id: "1841087879759495670"
date: 2024-10-01
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- FreyaHolmer
description: "okay so I'm generally pro-operator-overloading but even I will admit it's a little silly that m*(q*v) can be a matrix multiplied by the result of a quaternion rotation of a vector v interpreted as a column vector"
in_reply_to: ""
---
## Source
- URL: https://x.com/FreyaHolmer/status/1841087879759495670
- Author: Freya Holmér (@FreyaHolmer)
- Posted: 2024-10-01 12:08:50
## Thread
**1/** **@FreyaHolmer** ^1841087879759495670
okay so I'm generally pro-operator-overloading but even I will admit it's a little silly that m*(q*v) can be a matrix multiplied by the result of a quaternion rotation of a vector v interpreted as a column vector
**2/** **@FreyaHolmer** ^1841087881542091238
I think q*v is the most egregious one, because it's decidedly NOT what is happening math side
it's more like
★(q(★v)q*)
where ★ is the hodge dual, swapping the {x,y,z} basis with a {yz,zx,xy} basis, and * is the conjugate, negating the bivector part
**3/** **@EricLengyel** ^1841213433976668166
**@FreyaHolmer**
Why the Hodge dual here?
**4/** **@Chrispykins** ^1841221790661820676
**@EricLengyel** **@FreyaHolmer**
v is a real vector. Typically when encoding a real vector as a quat, you turn the real components into imaginary components and leave the scalar part 0.
The imaginary components are isomorphic to bivectors in R³, so the ★ changes the vector components into bivector components.
**5/** **@EricLengyel** ^1841225875494486260
That's not necessary. The product qvq* correctly transforms any vector v, and the product qbq* correctly transforms any bivector b. Since we're talking about {x,y,z} and {yz,zx,xy} bases and vectors/bivectors here, we're clearly aware of the larger exterior algebra and the geometric product, and not just the quaternion product, so there's no reason to take complements to convert vectors to/from bivectors.
**6/** **@FreyaHolmer** ^1841254247888793699
**@EricLengyel** **@Chrispykins**
oh wait is ★(q(★v)q*) the same as qvq*, even if we assume only the geometric product as the one canonical product?
I kind of just assumed they were different, since q(★v) is in the even subalgebra, while qv is in the odd subalgebra with a vector and trivector part, I think
**7/** **@EricLengyel** ^1841261355585913075
**@FreyaHolmer** **@Chrispykins**
Yes, qvq* and ★(q(★v)q*) produce the same answer under the geometric product. This is true because q corresponds to an orthogonal transformation, and thus vectors and antivectors (bivectors in 3D) transform identically.
**8/** **@EricLengyel** ^1841261454298845644
**@FreyaHolmer** **@Chrispykins**
q(★v) has a bivector part and a scalar part, and qv has a vector part and a trivector part. They're just complements of each other such that ★(qv) = q(★v), and the component values are the same.
**9/** **@FreyaHolmer** ^1841261925596111047
**@EricLengyel** **@Chrispykins**
ah neat, I didn't know that! I never even thought to test it, thanks c:
**10/** **@EricLengyel** ^1841267369647485057
Btw, in the ordinary 3D algebra that we're talking about right now, the Hodge dual and complement are equivalent, and they are each their own inverses. But be aware that the equivalence doesn't hold in algebras where the metric is not the identity matrix, and their inverses have grade-dependent sign changes in even numbers of dimensions. The Hodge dual doesn't even have an inverse in PGA due to the degenerate metric, so you'd have to use complements in your original formula instead, which technically ought to say ★⁻¹(q(★v)q*). The Hodge dual is one of four related duals described in my book, and it's equivalent to what I call the "right bulk dual" (with the other three being the "left bulk dual", the "right weight dual", and the "left weight dual"). </rambling>
@@ -0,0 +1,52 @@
---
title: "an interpolating C² continuous quintic spline"
type: archive
source: twitter
source_url: "https://x.com/FreyaHolmer/status/2016317138634465472"
author: "Freya Holmér"
handle: FreyaHolmer
post_id: "2016317138634465472"
date: 2026-01-28
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- FreyaHolmer
description: "an interpolating C² continuous quintic spline"
in_reply_to: ""
---
## Source
- URL: https://x.com/FreyaHolmer/status/2016317138634465472
- Author: Freya Holmér (@FreyaHolmer)
- Posted: 2026-01-28 01:07:21
## Thread
**1/** **@FreyaHolmer** ^2016317138634465472
an interpolating C² continuous quintic spline
<video controls src="https://video.twimg.com/amplify_video/2016316841375768576/vid/avc1/512x512/ACYx2LnnXctn6joi.mp4?tag=21"></video>
**2/** **@EricLengyel** ^2016320478059888818
**@FreyaHolmer**
Cool! What additional constraints beyond C² continuity are you imposing to eat up the additional degrees of freedom for the quintic compared to the cubic?
**3/** **@FreyaHolmer** ^2016349263572172962
**@EricLengyel**
C2 continuity and local control!
unlike the cubic B-spline, it's interpolating, unlike the cubic catmull-rom, this one is C2 rather than C1, and unlike the natural cubic C2 spline, this one has local control
**4/** **@FreyaHolmer** ^2016684839961804844
**@EricLengyel**
wait I just realized I have enough degrees of freedom to make it C3 lol
+13
View File
@@ -0,0 +1,13 @@
---
title: FreyaHolmer
type: note
draft: false
description: Archived threads by FreyaHolmer.
tags:
- archive
- twitter
- FreyaHolmer
---
- [[archive/threads/FreyaHolmer/2024-10-01-okay-so-im-generally-pro-operator-overloading-but]]
- [[archive/threads/FreyaHolmer/2026-01-28-an-interpolating-c-continuous-quintic-spline]]
@@ -0,0 +1,121 @@
---
title: "Bug report: I want to scale an object to be flat."
type: archive
source: twitter
source_url: "https://x.com/SebAaltonen/status/1866131513852477814"
author: "Sebastian Aaltonen"
handle: SebAaltonen
post_id: "1866131513852477814"
date: 2024-12-09
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- SebAaltonen
description: "Bug report: I want to scale an object to be flat."
in_reply_to: ""
---
## Source
- URL: https://x.com/SebAaltonen/status/1866131513852477814
- Author: Sebastian Aaltonen (@SebAaltonen)
- Posted: 2024-12-09 14:43:18
## Thread
**1/** **@SebAaltonen** ^1866131513852477814
Bug report: I want to scale an object to be flat. I set the X-axis scale to zero. Lighting breaks!
When the X-axis in the scale matrix is zero, that matrix can't be inverted. Divide by zero is not legal. So, we can't calculate the inverse-transpose matrix for normal transform.
**2/** **@BrookeHodgman** ^1866243051812954338
**@SebAaltonen**
When computing the normal-transformation matrix, you could detect this special case and emit a matrix that just results in 1,0,0,0 for all inputs 😎
**3/** **@SebAaltonen** ^1866270528694055205
**@BrookeHodgman**
Unfortunately a 3x3 matrix that does this doesn't exist. Also that's not correct either, you want either (-1,0,0) or (+1,0,0) output depending on which side the normal is.
**4/** **@EricLengyel** ^1866657604094833128
The 3x3 matrix you want does exist. It's got a one in the upper-left corner and zeros everywhere else. For an input normal of (x, y, z), the result will be (x, 0, 0), which will still point in the right direction. It just needs renormalized, which is to be expected.
**5/** **@BrookeHodgman** ^1866664013746102746
**@EricLengyel** **@SebAaltonen**
That can output 0,0,0 (and then normalise to NaN) for some inputs though, so isn't quite the same as above 😓
**6/** **@EricLengyel** ^1866668063334293551
It is provably the correct matrix to use for transforming normals when there's a zero scale in the x direction. Any surface having a normal with zero x component would no longer exist after the scale is applied, so a NaN normal actually makes sense and would only appear on degenerate triangles that get culled anyway. To avoid interpolating with a NaN normal at a vertex, the scale transform would need to be applied after interpolation occurs.
**7/** **@BrookeHodgman** ^1866670373972087037
**@EricLengyel** **@SebAaltonen**
Yeah it's correct in theory... But in practice (with interpolation like you mention or normal maps, etc) you often do see surfaces that have "wrong" normals so have to worry about handling those NaNs 😓
You don't want an unlucky normal map sample to result in a random black pixel
**8/** **@SebAaltonen** ^1866757644486414718
**@BrookeHodgman** **@EricLengyel**
Random NaN pixel would be even worse. It will propagate and ruin the whole image.
**9/** **@EricLengyel** ^1866767238734504032
**@SebAaltonen** **@BrookeHodgman**
A normal map would need to contain vectors tangent to the surface for this to happen. So just don’t allow it! It can’t occur if the normals are calculated from a height field anyway.
**10/** **@SebAaltonen** ^1866772316983578634
**@EricLengyel** **@BrookeHodgman**
You don't even need a normal map to see "backfacing" pixels. Interpolated normal makes it possible. Let's say you have a smoothed cube. Normal vectors on the same triangle have 90-degree angle between them. Let's say we are flattening such cube...
**11/** **@SebAaltonen** ^1866772609712656859
**@EricLengyel** **@BrookeHodgman**
If we flatten vertex normals, then we get triangles with (1,0,0) and (-1,0,0) normals and interpolating those will result in (0,0,0) in the midpoint. Cube could be slightly rotated so that these triangles are visible.
**12/** **@SebAaltonen** ^1866773052958142802
**@EricLengyel** **@BrookeHodgman**
If you flatten per pixel, then you will get a triangle that is facing (-1,0,0) halfway and facing (+1,0,0) halfway, and there's a possibility that the center pixel hits (0,0,0) exactly it's normal vector.x = 0.
**13/** **@SebAaltonen** ^1866773630199402991
**@EricLengyel** **@BrookeHodgman**
The same can happen in completely flat surfaces with normal map. The same slightly rotated cube, but with flat faces. Now the normal map makes some pixels have negative X normal (most are positive), and there can be some with normal.X=0, which causes problems.
**14/** **@SebAaltonen** ^1866774168869671329
**@EricLengyel** **@BrookeHodgman**
A simple example with planar surface. You have a normal map on the plane that has half-sphere bumps. If this surface is flattened in X direction, then bumps of course disappear, as bumps are flattened too. But if you rotate it slightly, then some of those bump pixels face -X.
**15/** **@SebAaltonen** ^1866774427310190975
**@EricLengyel** **@BrookeHodgman**
This kind of normal map
![](https://pbs.twimg.com/media/GegdbifW4AAeNfx?format=png&name=orig)
**16/** **@SebAaltonen** ^1866775636779655651
**@EricLengyel** **@BrookeHodgman**
The flattening matrix still works, but randomly some pixels have normal.x = 0 exactly, and those will have invalid normals after renormalize. Maybe we just nudge the math a bit to make them choose either +X or -X path.
+1
View File
@@ -22,6 +22,7 @@ tags:
- [[archive/threads/SebAaltonen/2023-09-03-somebody-asked-why-you-cant-return-arrays-dynamic]]
- [[archive/threads/SebAaltonen/2024-04-04-this-is-how-slow-code-feels-like]]
- [[archive/threads/SebAaltonen/2024-05-03-why-should-one-be-able-to-code-without]]
- [[archive/threads/SebAaltonen/2024-12-09-bug-report-i-want-to-scale-an-object-to-be-flat]]
- [[archive/threads/SebAaltonen/2024-12-18-fixed-all-our-vulkan-bugs]]
- [[archive/threads/SebAaltonen/2025-03-08-stupid-hardware-question-why-does-amd-use-several]]
- [[archive/threads/SebAaltonen/2025-03-28-indoor-scenes-in-hypehype-are-starting-to-look]]
@@ -0,0 +1,64 @@
---
title: "I've been studying geometric algebra on and off, and recently I'm starting to feel the desire to share what I've learned about GA and its applications in games."
type: archive
source: twitter
source_url: "https://x.com/TheAllenChou/status/1813810499961921915"
author: "Ming-Lun “Allen” Chou | TheAllenChou@bsky"
handle: TheAllenChou
post_id: "1813810499961921915"
date: 2024-07-18
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- TheAllenChou
description: "I've been studying geometric algebra on and off, and recently I'm starting to feel the desire to share what I've learned about GA and its applications in games."
in_reply_to: ""
---
## Source
- URL: https://x.com/TheAllenChou/status/1813810499961921915
- Author: Ming-Lun “Allen” Chou | TheAllenChou@bsky (@TheAllenChou)
- Posted: 2024-07-18 05:38:16
## Thread
**1/** **@TheAllenChou** ^1813810499961921915
I've been studying geometric algebra on and off, and recently I'm starting to feel the desire to share what I've learned about GA and its applications in games. Before I can find time to write, here's a dump of resources I find useful. 🧵
**2/** **@TheAllenChou** ^1813810886794207635
My first contact with geometric algebra was @EricLengyel's GDC talk, Math for Game Programmers: Introduction/Grassmann Algebra in Game Development. The title caught my eye because I had no idea what GA was and I like all things math in games. https://gdcvault.com/play/1020787/Math-for-Game-Programmers-Introduction
**3/** **@worldisall** ^1813819951515566091
**@TheAllenChou** **@EricLengyel**
There is a solid discord of GA people. I had to self-teach in a hurry to work with conformal GA and the discord has a bunch of helpful people on it. Can’t recall its name but not a ton of GA discords out there
**4/** **@EricLengyel** ^1813823618163601527
**@worldisall** **@TheAllenChou**
Mine is here:
https://discord.gg/4ChbFr78R2
**5/** **@worldisall** ^1816263872468131857
**@EricLengyel** **@TheAllenChou**
Can’t remember if that is the one I was on or not. Lost phone with my outlook
2-factor app so can’t log into Discord at the moment. I recall there being a nice (to me) but (generally) grumpy guy that either used or maintained ganja.There was a British dude that was always helpful
**6/** **@EricLengyel** ^1816291818419708355
**@worldisall** **@TheAllenChou**
Mine is pretty new, so you were likely on bivector. I know who the person you're talking about is, and he has caused a lot of problems in the past, unfortunately, along with several others who hang out there. If the British dude is who I think he is, he also visits my channel.
**7/** **@EricLengyel** ^1816291895355793780
Please also be aware that much of the information you'll find on the bivector Discord is outdated or downright incorrect. Various ego problems have led to them suppressing newer research that makes their methods look not so stellar, and they're handling it badly. I'm not trying to be aggressive, competitive, or malicious in any way by saying this, but people learning GA should understand the possibility they're being fed a load of crap from questionable sources. If something seems intuitively inelegant and hacky, then listen to your gut because you might actually be correct.
+12
View File
@@ -0,0 +1,12 @@
---
title: TheAllenChou
type: note
draft: false
description: Archived threads by TheAllenChou.
tags:
- archive
- twitter
- TheAllenChou
---
- [[archive/threads/TheAllenChou/2024-07-18-ive-been-studying-geometric-algebra-on-and-off]]
@@ -0,0 +1,66 @@
---
title: "Not surprising since geometric algebra is a cult outside of mathematics, per John Baez."
type: archive
source: twitter
source_url: "https://x.com/anisomorphism/status/2092700125550240108"
author: "Nick"
handle: anisomorphism
post_id: "2092700125550240108"
date: 2026-08-26
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- anisomorphism
description: "Not surprising since geometric algebra is a cult outside of mathematics, per John Baez."
in_reply_to: ""
---
## Source
- URL: https://x.com/anisomorphism/status/2092700125550240108
- Author: Nick (@anisomorphism)
- Posted: 2026-08-26 19:46:05
## Thread
**1/** **@anisomorphism** ^2092700125550240108
Not surprising since geometric algebra is a cult outside of mathematics, per John Baez. Anyone with education in linear algebra fundamentals has realized this.
**2/** **@EricLengyel** ^2092701099761532944
**@anisomorphism**
I agree with that statement on several levels, but I fail to see how that's in any way relevant to this situation.
**3/** **@anisomorphism** ^2092701802433020134
**@EricLengyel**
You call yourself a geometric algebra researcher. Have I misunderstood your perspective or priorities? Not everyone is looking for a conflict, so maybe they simply have different values and are not arguing them.
**4/** **@EricLengyel** ^2092704583927914832
**@anisomorphism**
It sure sounds like you have misunderstood my perspective. My book makes it clear that I am not the typical GA zealot, and it dedicates significant space explaining why it's a *bad idea* to use geometric algebra in many cases.
**5/** **@anisomorphism** ^2092705035285102781
**@EricLengyel**
Why not just write a linear algebra book? In my experience the wrong kinds of people are attracted to GA in the first place, because they are uninterested in fundamentals.
**6/** **@EricLengyel** ^2092706266246509022
**@anisomorphism**
I agree! If you've ever looked at my blog, you'll find that I have been very critical of the traditional foundations of GA.
**7/** **@EricLengyel** ^2092706341609693393
**@anisomorphism**
What I write extends well beyond what most would consider to be linear algebra (even though it is), so I need another term. I was using "Grassmann" algebra a long time ago, but even that seems insufficient. Maybe "Clifford" is all I need.
+12
View File
@@ -0,0 +1,12 @@
---
title: anisomorphism
type: note
draft: false
description: Archived threads by anisomorphism.
tags:
- archive
- twitter
- anisomorphism
---
- [[archive/threads/anisomorphism/2026-08-26-not-surprising-since-geometric-algebra-is-a-cult]]
@@ -0,0 +1,37 @@
---
title: "Dual numbers (the surreals) are at least as exciting and useful as imaginary ones if not moreso, but far less widely known."
type: archive
source: twitter
source_url: "https://x.com/eshear/status/2011549317119803830"
author: "Emmett Shear"
handle: eshear
post_id: "2011549317119803830"
date: 2026-01-14
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- eshear
description: "Dual numbers (the surreals) are at least as exciting and useful as imaginary ones if not moreso, but far less widely known."
in_reply_to: ""
---
## Source
- URL: https://x.com/eshear/status/2011549317119803830
- Author: Emmett Shear (@eshear)
- Posted: 2026-01-14 21:21:44
## Thread
**1/** **@eshear** ^2011549317119803830
Dual numbers (the surreals) are at least as exciting and useful as imaginary ones if not moreso, but far less widely known. I wonder why?
**2/** **@EricLengyel** ^2011985198393749713
**@eshear**
I think you'd find the hyperreals to be more useful than the surreals. As for dual numbers, they show up everywhere in projective geometric algebra (PGA) and represent homogeneous magnitudes. See the following for a small taste of PGA over spacetime:
https://terathon.com/blog/relativistic-quaternions.html
+12
View File
@@ -0,0 +1,12 @@
---
title: eshear
type: note
draft: false
description: Archived threads by eshear.
tags:
- archive
- twitter
- eshear
---
- [[archive/threads/eshear/2026-01-14-dual-numbers-the-surreals-are-at-least-as]]
@@ -0,0 +1,37 @@
---
title: "@EricLengyel Will correct this in the morning, thanks!"
type: archive
source: twitter
source_url: "https://x.com/hamish_todd/status/1804308289020195044"
author: "Hamish Todd"
handle: hamish_todd
post_id: "1804308289020195044"
date: 2024-06-22
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- hamish_todd
description: "@EricLengyel Will correct this in the morning, thanks!"
in_reply_to: ""
parent_post_id: "1804291168035057714"
---
## Source
- URL: https://x.com/hamish_todd/status/1804308289020195044
- Author: Hamish Todd (@hamish_todd)
- Posted: 2024-06-22 00:19:53
## Branch
**1/** **@hamish_todd** ^1804308289020195044
**@EricLengyel**
Will correct this in the morning, thanks!
## Related
- Spine: [[archive/threads/hamish_todd/2024-06-21-short-post-comparing-projective-geometric-algebra]]
@@ -0,0 +1,51 @@
---
title: "Short post comparing Projective Geometric Algebra and Conformal Geometric Algebra for the simple problem of line-sphere intersection:"
type: archive
source: twitter
source_url: "https://x.com/hamish_todd/status/1804130765296263172"
author: "Hamish Todd"
handle: hamish_todd
post_id: "1804130765296263172"
date: 2024-06-21
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- hamish_todd
description: "Short post comparing Projective Geometric Algebra and Conformal Geometric Algebra for the simple problem of line-sphere intersection:"
in_reply_to: ""
---
## Source
- URL: https://x.com/hamish_todd/status/1804130765296263172
- Author: Hamish Todd (@hamish_todd)
- Posted: 2024-06-21 12:34:28
## Thread
**1/** **@hamish_todd** ^1804130765296263172
Short post comparing Projective Geometric Algebra and Conformal Geometric Algebra for the simple problem of line-sphere intersection:
https://hamishtodd1.substack.com/p/line-sphere-intersection-in-projective?r=hhpio&utm_campaign=post&utm_medium=web&showWelcomeOnShare=true&triedRedirect=true
![](https://pbs.twimg.com/media/GQmPXceXsAA5Dme?format=jpg&name=orig)
**2/** **@EricLengyel** ^1804275521121063420
**@hamish_todd**
That method of point extraction in the CGA case is outdated.
**3/** **@EricLengyel** ^1804288269359943780
Also, your calculation of d² gives the negative squared radius in the CGA case, so there's no intersection when it's positive, and you need to negate it before taking the square root.
**4/** **@EricLengyel** ^1804291168035057714
**@hamish_todd**
Also also, using the geometric product to calculate the squared radius is overkill and generates 5 unnecessary terms. Use the much simpler inner product instead.
Branches: [[archive/threads/hamish_todd/2024-06-21-short-post-comparing-projective-geometric-algebra/2024-06-22-hamish_todd-will-correct-this-in-the-morning-thanks]]
+12
View File
@@ -0,0 +1,12 @@
---
title: hamish_todd
type: note
draft: false
description: Archived threads by hamish_todd.
tags:
- archive
- twitter
- hamish_todd
---
- [[archive/threads/hamish_todd/2024-06-21-short-post-comparing-projective-geometric-algebra]]
+6
View File
@@ -15,6 +15,7 @@ Example of the note shape (single spine, no branches): [[archive/threads/How to
- [[archive/threads/AgileJebrim]]
- [[archive/threads/alexdotjs]]
- [[archive/threads/anisomorphism]]
- [[archive/threads/bmcnett]]
- [[archive/threads/Bobby_Anguelov]]
- [[archive/threads/BOENSAW]]
@@ -25,7 +26,10 @@ Example of the note shape (single spine, no branches): [[archive/threads/How to
- [[archive/threads/danishnxt]]
- [[archive/threads/Dispatch_Graph]]
- [[archive/threads/EricLengyel]]
- [[archive/threads/eshear]]
- [[archive/threads/FFmpeg]]
- [[archive/threads/FreyaHolmer]]
- [[archive/threads/hamish_todd]]
- [[archive/threads/hasen_95dx]]
- [[archive/threads/HostOfMeta]]
- [[archive/threads/hsn8086]]
@@ -41,6 +45,7 @@ Example of the note shape (single spine, no branches): [[archive/threads/How to
- [[archive/threads/levelsio]]
- [[archive/threads/m_schuetz]]
- [[archive/threads/martin_cohen]]
- [[archive/threads/matiasgoldberg]]
- [[archive/threads/meesedev]]
- [[archive/threads/mike_acton]]
- [[archive/threads/MissQuickstep]]
@@ -62,6 +67,7 @@ Example of the note shape (single spine, no branches): [[archive/threads/How to
- [[archive/threads/sh4forever]]
- [[archive/threads/SheriefFYI]]
- [[archive/threads/simplex_fx]]
- [[archive/threads/TheAllenChou]]
- [[archive/threads/TheGingerBill]]
- [[archive/threads/ThePrimeagen]]
- [[archive/threads/TimSweeneyEpic]]
@@ -0,0 +1,103 @@
---
title: "Lately I see games where basically \"those SSR reflections could've been planar reflections\"."
type: archive
source: twitter
source_url: "https://x.com/matiasgoldberg/status/1767548825407766692"
author: "Matías N. Goldberg"
handle: matiasgoldberg
post_id: "1767548825407766692"
date: 2024-03-12
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- matiasgoldberg
description: "Lately I see games where basically \"those SSR reflections could've been planar reflections\"."
in_reply_to: ""
---
## Source
- URL: https://x.com/matiasgoldberg/status/1767548825407766692
- Author: Matías N. Goldberg (@matiasgoldberg)
- Posted: 2024-03-12 13:50:54
## Thread
**1/** **@matiasgoldberg** ^1767548825407766692
Lately I see games where basically "those SSR reflections could've been planar reflections".
Way better quality IMO.
My guess is either inexperience/ignorance, the easiness of just toggling a post process, or the engine has lots of trouble issuing twice as many drawcalls
**2/** **@KasperArnklit** ^1767818373100925193
**@matiasgoldberg**
I wonder if the many optimizations made in some engines for rendering the same scene twice for VR also spilled back over into planar reflections being faster.
**3/** **@matiasgoldberg** ^1767920895576756533
**@KasperArnklit**
It never really occurred to me!
But one issue I see is that planar refl. need clipping planes, which can incur in additional penalties you may not want for the regular pass (like disabling depth compression or even early Z).
**4/** **@EricLengyel** ^1767932834730418646
**@matiasgoldberg** **@KasperArnklit**
You don't need an extra clipping plane for planar reflections! You can always change the projection matrix to clip at the reflection plane for free. (See FGED2, section 6.4.)
**5/** **@matiasgoldberg** ^1767943136146305373
**@EricLengyel** **@KasperArnklit**
Yeah, I know. But it loses depth precision and makes shadow mapping harder because the fudged projection should be ignored, making clipping planes the easier path.
Though yes, you can avoid clip planes by tweaking the near plane.
**6/** **@EricLengyel** ^1767957954689667439
**@matiasgoldberg** **@KasperArnklit**
In my extensive experience with this technique, depth precision is not a problem, especially if you're using reversed depth (which you should be), and shadow mapping is not affected in any way. Modifying vertex shaders to set up a user clipping plane is not easier.
**7/** **@JoaoBapt** ^1883701708511141934
**@EricLengyel** **@matiasgoldberg** **@KasperArnklit**
I remember reading the paper and I don’t remember why, but I found out it doesn’t work with infinite perspective projection.
**8/** **@EricLengyel** ^1883761292936380672
**@JoaoBapt** **@matiasgoldberg** **@KasperArnklit**
That is not correct. The modified projection matrix that puts the near plane wherever you want works just fine with an infinite perspective projection. The paper even specifically addresses that case on page 7.
**9/** **@JoaoBapt** ^1883761760714518991
**@EricLengyel** **@matiasgoldberg** **@KasperArnklit**
I’ll have to check my book when I get home. I actually read another paper where the mathematical derivation didn’t give me a lot of faith.
**10/** **@EricLengyel** ^1883763616358477849
**@JoaoBapt** **@matiasgoldberg** **@KasperArnklit**
What book? What paper? The math was worked out 20 years ago and is extremely well battle-tested. The near clip plane modification is used very effectively with infinite projections all the time in many engines. Are you really questioning this?
**11/** **@JoaoBapt** ^1883764421870457260
**@EricLengyel** **@matiasgoldberg** **@KasperArnklit**
Chill, I don’t learn any kind of science by just blind-faith believing an article when I read it. I do the math myself to verify and make sure I learned it properly. I got YOUR book, just didn’t get to that part yet. And tbh I don’t remember which paper I read anymore.
**12/** **@JoaoBapt** ^1883764588879176035
**@EricLengyel** **@matiasgoldberg** **@KasperArnklit**
I believe what you said is right, since you talked about it in the book, I just want to see it with my own eyes. That’s not a reason for dumb arguing.
+12
View File
@@ -0,0 +1,12 @@
---
title: matiasgoldberg
type: note
draft: false
description: Archived threads by matiasgoldberg.
tags:
- archive
- twitter
- matiasgoldberg
---
- [[archive/threads/matiasgoldberg/2024-03-12-lately-i-see-games-where-basically-those-ssr]]
@@ -0,0 +1,72 @@
---
title: "I've decided to make this explanation public, in case someone else is also interested."
type: archive
source: twitter
source_url: "https://x.com/pikuma/status/1931455040965009503"
author: "pikuma.com"
handle: pikuma
post_id: "1931455040965009503"
date: 2025-06-07
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- pikuma
description: "I've decided to make this explanation public, in case someone else is also interested."
in_reply_to: ""
---
## Source
- URL: https://x.com/pikuma/status/1931455040965009503
- Author: pikuma.com (@pikuma)
- Posted: 2025-06-07 20:55:41
## Thread
**1/** **@pikuma** ^1931455040965009503
I've decided to make this explanation public, in case someone else is also interested.
First, let's write down the operations on z without the matrix:
Pay attention to how we have a multiplication and a subtraction. Let's look at the multiplication first.
Our goal is to normalize the original z values so they are all from 0 to 1, where znear is 0 and zfar is 1.
Keep in mind that we are not showing here the perspective divide (division by the original z). The actual normalization (from 0 to 1) will occur after we divide things by the original z later. In other words, because the normalized z value will (in the perspective divide) still be divided by the original z value, it is normalized between 0 and zfar. The division by the original z value (inside w) will make it actually normalized between 0 and 1.
Therefore, the first thing we do is to normalize values between znear and zfar. This can be achieved using the fraction 1/(zfar-znear).
At the same time, we want our z values that are equal to zfar to be transformed to zfar, since the perspective divide is going to normalize that back to 1. We can accomplish this by scaling things by zfar. This gives us an intermediate result of zfar/(zfar-znear).
These steps take care of the zfar mapping and explain the multiplication part of our formula.
...continues 👇
![](https://pbs.twimg.com/media/Gs3l5rdWcAALHS6?format=png&name=orig)
![](https://pbs.twimg.com/media/Gs3mAbnW4AAW3WJ?format=jpg&name=orig)
![](https://pbs.twimg.com/media/Gs3mdZgXcAArODD?format=png&name=orig)
![](https://pbs.twimg.com/media/Gs3mmdXWcAAZ57r?format=png&name=orig)
**2/** **@pikuma** ^1931455044877971797
Finally, we also want the z values that are equal to znear to be transformed to 0. We can accomplish that by offsetting (subtracting) *something* from the previous intermediate result. This is what we called the "difference between the eye and the near plane" in our lecture.
Imagine for a second that we have a z value that is exactly znear. If we multiply this value with the previous intermediate result zfar/(zfar-znear), we get (znear*zfar) / (zfar - znear). Therefore, this is the "correction" we need to apply to transform our z values that are equal to znear to be equal to 0.
All of these steps will give us the final entries of the projection matrix to help us perform the desired z normalization.
In our lectures, I also chose to call zfar/(zfar-znear) as lambda (λ). This is just notation and does not change anything in the meaning of our z normalization formula.
After we multiply our vertex with the projection matrix we proceed to do the perspective divide (division by the original depth value, which is saved inside w). Only after the perspective divide is that our z value will be in the range [0,1] for depth values between znear and zfar.
I hope this breakdown helps you connect things. I like to discuss things in a high-level and postpone an actual algebraic derivation if possible. If you want a proper derivation of the perspective projection matrix, one of our students created a great video with his explanation of it: https://www.youtube.com/watch?v=k_L6edKHKfA.
![](https://pbs.twimg.com/media/Gs3nNX5WUAAHfSs?format=png&name=orig)
![](https://pbs.twimg.com/media/Gs3nk5oWEAA-q_K?format=png&name=orig)
**3/** **@EricLengyel** ^1931542043433836638
**@pikuma**
Please note that ever since z buffers have been floating-point (about a decade now), the best practice is to map znear to 1 and zfar to 0 and use a reversed depth test. This gives you much greater depth precision for objects rendered far from the camera. See FGED2, Chapter 6.
**4/** **@pikuma** ^1931669715165860205
**@EricLengyel**
Right on! I was discussing this on a Discord server with HiddenAsbestos a couple of months ago for his flight sim experiments. :)
@@ -0,0 +1,37 @@
---
title: "@KentoAsashima @pikuma @rygorous You could, but the information needed to construct the projection matrix in the first place includes the values of s and g that I mentioned above."
type: archive
source: twitter
source_url: "https://x.com/EricLengyel/status/1960798301269450968"
author: "Eric Lengyel"
handle: EricLengyel
post_id: "1960798301269450968"
date: 2025-08-27
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- pikuma
description: "@KentoAsashima @pikuma @rygorous You could, but the information needed to construct the projection matrix in the first place includes the values of s and g that I mentioned above."
in_reply_to: ""
parent_post_id: "1960778289288765939"
---
## Source
- URL: https://x.com/EricLengyel/status/1960798301269450968
- Author: Eric Lengyel (@EricLengyel)
- Posted: 2025-08-27 20:15:19
## Branch
**1/** **@EricLengyel** ^1960798301269450968
**@KentoAsashima** **@pikuma** **@rygorous**
You could, but the information needed to construct the projection matrix in the first place includes the values of s and g that I mentioned above. You already have exactly what you need, and going through the projection matrix just adds extra steps.
## Related
- Spine: [[archive/threads/pikuma/2025-08-26-assuming-the-risk-of-appearing-extremely-dumb-in]]
@@ -0,0 +1,52 @@
---
title: "Assuming the risk of appearing extremely dumb in front of everyone here but, how would you find and explain your rationale for the value of the angle β in the diagram below? Someone told me that my approach is wrong so I just want to check that I'm not going crazy."
type: archive
source: twitter
source_url: "https://x.com/pikuma/status/1960444602227269928"
author: "pikuma.com"
handle: pikuma
post_id: "1960444602227269928"
date: 2025-08-26
archived: 2026-08-28
draft: false
tags:
- archive
- twitter
- pikuma
description: "Assuming the risk of appearing extremely dumb in front of everyone here but, how would you find and explain your rationale for the value of the angle β in the diagram below? Someone told me that my approach is wrong so I just want to check that I'm not going crazy."
in_reply_to: ""
---
## Source
- URL: https://x.com/pikuma/status/1960444602227269928
- Author: pikuma.com (@pikuma)
- Posted: 2025-08-26 20:49:51
## Thread
**1/** **@pikuma** ^1960444602227269928
Assuming the risk of appearing extremely dumb in front of everyone here but, how would you find and explain your rationale for the value of the angle β in the diagram below? Someone told me that my approach is wrong so I just want to check that I'm not going crazy. 😐
![](https://pbs.twimg.com/media/GzTl-eyXwAAxMV0?format=jpg&name=orig)
**2/** **@EricLengyel** ^1960464041023070434
I see nothing wrong with thinking of β as the angle rotated away from the −x axis as you open the field of view from the z axis by the angle fov/2 = β. But if it's the normal vector you're ultimately after, I think it's best to compute with the aspect ratio s = w/h and focal length g = s / tan(fov/2). The unit-length inward-pointing normal vector of the right frustum plane is then simply (−g, 0, s) / sqrt(g² + s²). The other three side planes have similarly simple forms in terms of g and s. See FGED2, Section 6.1 for more details.
**3/** **@pikuma** ^1960471322858770840
**@EricLengyel**
Thank you. 💪 This was recorded years ago and I'm thinking of re-designing this module. I'll definitely consider your take. Even though this is just computed once I salwe the sqrts so I want to think about proper cost tomorrow with a bit more time and with a clear mind.
**4/** **@KentoAsashima** ^1960778289288765939
**@pikuma** **@EricLengyel**
Why not the Gribb and Hartmann method as outlined by @rygorous where we use the perspective matrix axes? See https://fgiesen.wordpress.com/2012/08/31/frustum-planes-from-the-projection-matrix/
The extremes of our frustum are where the different axis components will be 1 or -1 thus we can use the corresponding axes directly.
Branches: [[archive/threads/pikuma/2025-08-26-assuming-the-risk-of-appearing-extremely-dumb-in/2025-08-27-EricLengyel-you-could-but-the-information-needed-to-construct]]
+2
View File
@@ -13,5 +13,7 @@ tags:
- [[archive/threads/pikuma/2023-08-23-nobody-cared-about-graphics]]
- [[archive/threads/pikuma/2023-11-16-unpopular-opinion]]
- [[archive/threads/pikuma/2024-06-12-hardware-os-are-extremely-more-complex-now-and]]
- [[archive/threads/pikuma/2025-06-07-ive-decided-to-make-this-explanation-public-in]]
- [[archive/threads/pikuma/2025-08-19-you-need-to-walk-before-you-run]]
- [[archive/threads/pikuma/2025-08-26-assuming-the-risk-of-appearing-extremely-dumb-in]]
- [[archive/threads/pikuma/2026-05-26-nobody-cracks-open-a-programming-book-anymore]]