Spaces of constant curvature and their isometries

February 17, 2024

In this post, I want to kind of bring together the theme of curvature and the theme of affine or projective geometry.

Understanding curvature II: Gaussian curvature

February 15, 2024

The purpose of this post is to pick up where the last one left off: the story of curvature from a, like, “geometer’s geometer” standpoint.

Understanding curvature: curves in the plane

February 14, 2024

As a geometric group theorist interested in “CAT(0)” and “hyperbolic geometry”, I appear to care very deeply about notions like “curvature”, but I have to admit my understanding of what it means is not that deep. This post is an attempt (one of likely several) to deepen my understanding. I’d like to bring you along for the ride.

Computing intersections, projectively

February 11, 2024

This is a post about affine or projective geometry. It's also a post about intersections. Like, suppose you take two line segments and you want to ask: do these line segments intersect? And suppose you're a little obsessed with linear algebra. So let's use it if we can. As I mentioned in my last post, one useful aspect of the affine or projective perspective on geometry is that it turns affine subspaces, like points and lines that don't have to go through the origin, into linear subspaces of one larger dimension which do contain the origin and thus can be reasoned about and manipulated with matrices and the tools of linear algebra.

Notes on notes of Shewchuk

February 4, 2024

After my last post, I tried and failed to implement the Bowyer–Watson algorithm. A picture of that failure is below—turns out plotting semi-random triangular meshes with random colors? Very pretty. Anyway, I was talking about my struggles with the algorithm on a Discord and Michael Dewberry kindly directed me to some notes by Jonathan Richard Shewchuk. They’re fantastic, and the purpose of this post, besides providing a place for me to put the link in case I lose it, is to do a little riffing.

Delaunay triangulations

February 2, 2024

This is a post about a triangulation algorithm to support the creation and rendering of arbitrary 2D meshes in Zig and Metal. Triangulation is a pretty neat piece of math! But first, why? Off and on I’ve been working on prism, a Zig library that aims to support creation of native apps. At the moment it only does something interesting on macOS, since that’s the operating system I’m usually running, but eventually I’d like to include various configurations of macOS, Linux and Windows, along with Metal, OpenGL, Vulkan and D3D12 as graphics backends.

Porting softcut

January 20, 2024

Last weekend I wrote C and Zig bindings for softcut, a C++ buffer-manipulation library written by Ezra Buchla. I also wrote a basic consumer of the library, softcut-client, which at least in theory runs on macOS, Linux and Windows—that being said, I’ve only taken it for a spin on my MacBook, so perhaps there are platform-specific things lurking in the code that I’m not aware of. Anyway, the purpose of this post is to chat a little about the program and the project of writing it.


December 16, 2023

The purpose of this post is to try to get my head wrapped around a couple of “analytic” concepts: the Baire property, meagreness and so forth. I’ll attempt to give full definitions and proofs, since this is mostly for my reference.

Arranging rectangles: a proposal

December 3, 2023

I've been dreaming up a way to replace seamstress's dependence on SDL for about a month now. My goals (which I'll describe below) are such that I'll be writing something new, a Zig library I'm calling prism. The purpose of this post is to put down in words some of the thoughts I have about how prism should feel to use. While my primary goal is to write something that maybe just I will find useful, since I'd like to reuse prism beyond just seamstress, it would be great to get your feedback (yes yours!

William Hazard's Theatre of the Flat Imagination

November 29, 2023

I had the great pleasure of playing William Hazard’s Theatre of the Flat Imagination Volume 2: Jack the Modernist on November 18th in Philadelphia together with Dan Derks as parens chat. The purpose of this post is to share the recording of the performance that Dan thoughtfully edited and to talk a little about the set we played.