Top all-time · #3365
Jeremy's Blog
Personal blog · jeremyong.comprogramminggames
Jeremy's Blog is a personal blog at jeremyong.com about programming and games. Since 2013, 22 different Hacker News readers have linked it 41 times, most often “Show HN: A C++17 SIMD Implementation of Projective Geometric Algebra”. It is still writing: the last post was on 2024-11-03, and you can follow it by feed.
A blog about game engines, graphics, C++, and more.
Most-linked posts?
- Show HN: A C++17 SIMD Implementation of Projective Geometric Algebra7 people · 8 mentions · first linked 2020-02-24
- Getting Started in Computer Graphics3 people · 3 mentions · first linked 2024-05-26
- Basic skeletal animation with geometric algebra2 people · 3 mentions · first linked 2020-03-11
- Interviewing Graphics Programmers2 people · 3 mentions · first linked 2023-08-06
- Thoughts on the Cpp Graphics Proposal2 people · 2 mentions · first linked 2018-11-06
- /klein/geometry-potpourri/2 people · 2 mentions · first linked 2020-03-22
- Windows Memory Mapped File IO2 people · 2 mentions · first linked 2024-11-07
- Evaluating Game Engines2 people · 2 mentions · first linked 2023-09-16
What Hacker News says?
> (mmap's created could only be as large as the file's current size as in Windows, while Linux/BSD semantics allows for a mmap larger than the file that's usable without constant remapping as the file grows). I thought you could do it using ntdll functions, no? https://www.jeremyong.com/winapi/io/2024/11/03/windows-memor...
Comment linking /winapi/io/2024/11/03/windows-memory-mapped-file-io/
on “The Windows Subsystem for Linux is now open source”Submitted Basic skeletal animation with geometric algebra as a story · 170 points
HN discussionSomething like that exists in C++ and Rust: * https://www.jeremyong.com/klein/ * https://github.com/wrnrlr/g3
Comment linking /klein/
on “Quaternions”Submitted Graphics Pipelines for Young Bloods as a story · 136 points
HN discussionDo you have some before-and-after code that you can share? I've seen two other efforts in that general direction: * "Let's Remove Quaternions from Every 3D Engine"[0], which was underwhelming: let's ask other people to rename existing code for no practical benefit? * "Klein"[1], a projective geometric algebra library that is amazingly nice to use, and claims to be very fast. [0]: https://marctenbosch.com/quaternions…
Comment linking /klein/
on “All Hail Geometric Algebra”Submitted The C++20 Naughty and Nice List for Game Devs as a story · 132 points
HN discussionThanks for the feedback. You may find https://www.jeremyong.com/klein/geometry-potpourri/ more approachable but I admit I don't have finalized material I'm completely satisfied with showing yet :( The math is definitely more easy to grok if you've seen/used Lie Algebra/Group formalisms before so that's another shortcoming, but the main thing GA gives us here is a "dual-quaternion slerp" which I literally could not f…
Comment linking /klein/geometry-potpourri/
on “Basic skeletal animation with geometric algebra”Submitted Windows Memory Mapped File IO as a story · 63 points
HN discussionThanks for the questions. > re: introductory materials The 3 links I compiled here ( https://www.jeremyong.com/klein/references/ ) I consider an absolute must for starting to consume GA. The book (ref #3) has one chapter undergoing revision regarding the usefulness of the degenerate metric for modeling projective geometry. My understanding is the chapter will be released for free once finished. From this alone, I wa…
Comment linking /klein/references/
on “Basic skeletal animation with geometric algebra”Submitted Thoughts on the Cpp Graphics Proposal as a story · 11 points
HN discussionNice, I was just reading how to solve the same problem using geometric algebra: https://www.jeremyong.com/klein/case_studies/ga_skeletal_ani...
Comment linking /klein/case_studies/ga_skeletal_animation/
on “Game Engine: How I Implemented Skeletal Animation”Submitted Thoughts on C++ Graphics proposal as a story · 10 points
HN discussionThat is correct - matrices are the natural companion of the general linear group. The GA representation exists, and is called 'the mother algebra', for general 4x4 matrices the GA equivalent is R4,4. (where general linear transformations are versors). For other subgroups GA reps will also exist. (like e.g. if one wants to include projective transformations as versors, that would be the projective group (which preser…
Comment linking /gal/
on “Geometric Algebra (2012)”Submitted Basic skeletal animation with geometric algebra as a story · 4 points
HN discussionHere's yet another page with some code examples: https://www.jeremyong.com/klein/geometry-potpourri/
Comment linking /klein/geometry-potpourri/
on “Geometric Algebra (2012)”Submitted Getting Started in Computer Graphics as a story · 3 points
HN discussionTake a look at Klein : https://www.jeremyong.com/klein/ (arm implementation is coming) Its geometric product between motors is the equivalent of the 4x4 matrix product. Although the basic computational complexity tells the story : 4x4 matrix product : 16 floats storage, 64 multiplies, 48 additions. 3D PGA versor product : 8 floats storage, 48 multiplies, 40 additions.
Comment linking /klein/
on “Geometric Algebra (2012)”Submitted Getting Started in Computer Graphics as a story · 3 points
HN discussionYou're missing the big idea a bit. Coroutines in C++ can be used to implement generators or goroutines or async/await, etc. They are intended for library authors as a lower level construct. See for example: https://www.jeremyong.com/cpp/2021/01/04/cpp20-coroutines-a-...
Comment linking /cpp/2021/01/04/cpp20-coroutines-a-minimal-async-framework/
on “C++20: Building a Thread-Pool with Coroutines”Submitted Dual Quaternions for Mere Mortals as a story · 3 points
HN discussionI don't have a book recommendation handy. It's "just" a combination of two neat techniques. Get books on each of those and understand them each, and you have the combination. GA has been well discussed here, so, the other half: Projectivization is a fairly standard trick even for normal geometry. It's adding an additional dimension, which is in most contexts just set to 1. (Projective actually just means treating al…
Comment linking /klein/
on “Electromagnetism using geometric algebra versus components”Submitted Learn to read dissasembly as a story · 3 points
HN discussionClearly the generic n-dimensional GA libraries out there have little use for real time graphics, but projects like https://www.jeremyong.com/klein/ that are specialized to 3D with a focus on efficiency look promising.
Comment linking /klein/
on “Vanishing zeroes for geometric algebra in Rust”Submitted Evaluating Game Engines as a story · 2 points
HN discussionHow about geometric algebra libraries like Klein and g3. Klein has operator overloading for the basis elements of the algebra implemented using intel's SSE, while g3 does the same but uses the Rust's portable stdsimd crate. Klein: https://www.jeremyong.com/klein/ g3: https://github.com/wrnrlr/g3
Comment linking /klein/
on “Three Fundamental Flaws of SIMD”Submitted Interviewing Graphics Programmers as a story · 2 points
HN discussionSome GA libraries[1][2] define types for the different kind of objects (grades), although they are time consuming to implement and fixed in the number of dimensions they describe. But you are right that the most implementation combine all grades into a single array, but the biggest problem with those is that the size of the array in 2^n with n the number of dimensions. To work in 3D you probably want to use R(3,0,1)…
Comment linking /klein/
on “Geometric Algebra to Geometric Computing Software Developers”Submitted Grokking Big Unfamiliar Codebases as a story · 2 points
HN discussionHonestly, I couldn't say Johnny. I'm not a graphics engineer, just a hobbyist game programmer who works in construction. I did do some internet searching and came across some blogs that I found interesting and might help you. 1. Finding Your Home in Graphics Programming, https://alextardif.com/LearningGraphics.html 2. Applying for Entry Level Graphic Jobs in Games, https://alextardif.com/GraphicsJobGuide.html 3. Jun…
Comment linking /graphics/interviewing/2023/08/05/graphics-programmer-interviewing/
on “How do I become a graphics programmer? – A guide from AMD Game Engineering team”Submitted Show HN: A C++17 SIMD Implementation of Projective Geometric Algebra as a story · 2 points
HN discussion