Recent submissions

Comment · 1 month ago
* The provisional patent application for the Slug algorithm was filed on March 27, 2017, and this is incorporated into the final patent at the beginning of the Description section. A provisional patent establishes a priority date for everything it discloses (which was the whole algorithm), and it gives the inventor one year to complete the application process.

* The JCGT paper was published a few months later on June 14, 2017, after the priority date.

* The final patent application was submitted on February 1, 2018, before the one-year deadline.

* The patent was granted about 1.5 years later by the USPTO on August 6, 2019.

Comment · 7 months ago
> All modern vector renderers I know of avoid triangle rasterization entirely.

Well, now you know of a modern renderer that does use triangle rasterization. The reason is simple -- Slug was designed to render text and vector graphics inside a 3D scene. It needs to be able to render with different states for things like blending mode and depth function without having to switch shaders. It also needs to be able to take advantage of hardware optimizations like hierarchical Z culling. And sometimes, you need to clip glyphs against some surface that the text has been applied to. Using the conventional vertex/pixel pipeline makes implementation easier because it works like most other objects in the scene. Having this overall design is one of many reasons why a huge swath of the games industry has licensed Slug.

Comment · 7 months ago
You don't seem to have grokked the main feature that makes Slug interesting. The algorithm handles every single possible case uniformly through the use of a very fast classification and root eligibility determination technique. On some GPUs (including all NV from the last 10+ years), handling the full set of cases shown on the poster reduces to a single instruction (LOP3). The algorithm also eliminates all numerical precision issues -- provably -- making it the most robust of all time. There are no valid inputs for which the algorithm fails, so to say Loop-Blinn is somehow more robust is incorrect.
Comment · 7 months ago
Thanks -- nice to hear from you!
Comment · 7 months ago
The Slug Library can convert each cubic curve into a small set of quadratic curves that approximate extremely well.
Comment · 7 months ago
Vello is intended more for general vector graphics and would probably perform better with pictures containing lots of large paths. Slug is designed specifically for rendering glyph-like objects and would perform better with lots of text and icons.
Comment · 7 months ago
Glyph complexity has no effect on the calculations done in the pixel shader and does not change how glyphs are preprocessed. There are no edge cases. If you'd like to see some ridiculously complex fonts get rendered with Slug, check out the 8th page in the demo at sluglibrary.com. Some of those individual glyphs are composed of over 1000 Bézier curves!
Comment · 7 months ago
Comment · 7 months ago
I took care of the whole thing myself without lawyers, so I ended up paying something like $950 in various filing fees.
Comment · 1 year ago
Comment · 2 years ago
My position is that the geometric product and antiproduct are good for one thing, performing transformations with sandwich products q ⟑ p ⟑ q̃ or q ⟇ p ⟇ q̰ and composing those transformations. Literally everything else (join, meet, contraction, expansion, projection, inner product, norm, ...) can and should be done in the exterior algebra without any geometric products.
Comment · 2 years ago
Hi Alex -- In PGA, every operation comes in pairs. There are two exterior products, two inner products, and two geometric products (and the list goes on). If points are represented by vectors, then the quaternion-like sandwich qpq* with the geometric product, where q is now a more general operator in the algebra, always fixes the origin. Thus, it cannot perform Euclidean isometries in regular space because those (in general) move the origin. However, a fixed origin in regular space means that the horizon is fixed in antispace, so if you were to reinterpret vectors as planes instead, then you do get the set of Euclidean isometries that you want. If you had no knowledge of the geometric antiproduct, then you would just say "vectors are planes" and call it a day. That's where plane-based GA comes from. Just use the geometric product and interpret all geometries in antispace instead of regular space. But this throws out the geometric intuition shown in Figures 2.4, 2.5, and 2.7, where vectors, bivectors, and trivectors are simply projected into the w=1 subspace to de-homogenize points, lines, and planes. Furthermore, we need the general notion of product-antiproduct pairs to get things like norms working, anyway, so we might as well use them to avoid dualizing all the geometries.

The space/antispace duality is discussed in Section 2.6, and the fact that the geometric product fixes the origin is discussed in Section 3.5.1. (In case anyone else is wondering, I know ajkjk has a copy of my book.)

Comment · 2 years ago
I think Macdonald's book is very concise and clean compared to others, but it does have some of the same issues that I wrote about in my post. In particular, Definition 6.15 gives one of the problematic definitions of the inner product, and Definition 6.23 gives the same broken definition of dual that has an inconsistent orientation and fails to extend to the degenerate metrics of projective algebras. Has also says, at the bottom of page 111, that the Hodge dual can't be defined directly in the exterior algebra, which is not correct.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton