Blake Courter
banner
bcourter.bsky.social
Blake Courter
@bcourter.bsky.social
Incubating engineering software startups. Applying SDFs to design and manufacturing problems by generalizing them to fields with unit gradient magnitude (UGFs).

https://www.blakecourter.com/
Loxodromes!
December 1, 2025 at 2:46 PM
For example, a laid-off friend doing back-end webdev applied to over 100 positions without response, but after one intro was hired at a client and is thriving.

Anyhow, the story seemed like it might be good radio.
July 30, 2025 at 12:59 PM
Several interesting startups I advise are hiring but have difficulty getting attention. Research labs have been letting amazing talent go due to lost gov’t funding, especially in biotech. I find myself doing an unusual amount of matchmaking.
July 30, 2025 at 12:51 PM
IQ's smin post has many graphics friendly versions. iquilezles.org/articles/smin/
Inigo Quilez
Articles on computer graphics, math and art
iquilezles.org
February 17, 2025 at 6:51 PM
BTW, my biz partner at GCL, Luke Church, is working on a side project with Kai Bachman, who originally introduced me to Luke! We are building a UGF-based modeler at GCL. Happy to chat.
February 17, 2025 at 12:43 PM
Well, perhaps I could be explaining it better. There’s nothing too profound, just that UGF are an abstraction of SDFs that happen to be very useful for engineering. Most folks don’t realize SDFs closure problems, so I try to clarify the picture.
February 17, 2025 at 12:36 PM
Great to see you found the UGF material, and curious whether it helped. If you can find the offset intersection, you should be able to create a UFG result with no bulging.

There are other results based on gradients and intersection curves as well. I was just OCD for rolling ball blends.
February 16, 2025 at 6:24 PM
Looking forward to giving your model a spin!

Curious to see if you’re using explicit or implicit geometry and what kind of IDs or classifiers you throw on topology. Also parameterizations.

(At GCL, we make an implicit modeling kernel and work with CAE startups.)
January 28, 2025 at 12:05 PM
Thanks. I started moving into zotero yesterday.

I think I have been capitalizing titles wrong in my bibtex.
December 3, 2024 at 12:28 PM
With this approach, you can create any surface in the local 2D coordinate system of the edge.

In the next session, we'll look at that two-surface coordinate system more closely, treating it as a basis for remapping any kind of edge treatment!

(10/n, n = 10)
November 25, 2024 at 3:39 AM
Instead, we can create a surface at an arbitrary angle Θ to the normalized S or D fields via S * cos(Θ) + D * sin(Θ) .

Algebraic geometers call this family a "pencil".

With such an angled face at any angle and offset, we can describe any surface from the edge in "Hesse normal form".

(9/n)
November 25, 2024 at 3:35 AM
But what about asymmetric chamfers? One approach is to expand A + B into

A * t + B * (1 - t)

Indeed, such interpolating will create suitable geometry, but how do we control it with CAD-like parameters?

(8/n)
November 25, 2024 at 3:29 AM
To convert to a constant width or a constant setback chamfer, one simply does some trig on the triangle to figure out what the inset should be based on the angle between the gradients of A and B.

(7/n)
November 25, 2024 at 3:27 AM
To get a chamfer, we just need to offset our normalized A + B field inward and intersect again. This result produces a constant inset chamfer, where the width increases with dihedral angle between faces.

(6/n)
November 25, 2024 at 3:14 AM
Here is A + B with A ∩ B overlaid above. Looks okay at first glance, but notice (left) that the spacing between the contours is wider than our original fields. It's gradient magnitude is not unity, but we can normalize the field by dividing by that magnitude (right).

(It's a bit subtle.)

(5/n)
November 25, 2024 at 3:12 AM
UGFs are more special than general implicits because their gradient has unit magnitude. The sum and difference of two unit vectors are perpendicular, as seen in the diagonals of the rhombus of the vectors.

Defining:
S = A + B
D = A - B

Interactive version: www.shadertoy.com/view/dd2cWy

(4/n)
November 25, 2024 at 3:07 AM