In the summer of 2023, I was working to fast-track the completion of my MBA and prepare for a master’s in CS. As a self-taught coder with a bachelor’s degree in political science, I had some gaps to fill, so I was taking Organizational Behavior & Leadership at the same time as Linear Algebra Foundations, Calculus III, and Data Structures.

I’m always looking for interesting ways to apply the concepts I learn about in courses. One of my favorite examples came from calculus, when I started thinking about two skew lines in three-dimensional space.

Two skew lines do not intersect, but there is a shortest segment connecting them. That segment is perpendicular to both lines, and it gives the geometry a natural axis of separation. I wondered about a surface that twists uniformly along that connecting vector: a ribbon-like surface tangent to both lines, completing a smooth twist from one line to the other.

Open the interactive plot on Math3D

Finding the coordinates of that connecting vector for arbitrary skew lines in ℝ³ gives rise to an optimization problem. I needed to write the geometry algebraically, take derivatives, and solve the resulting system of equations.

This happened to intersect with another project I had developed that summer: a SymPy linear algebra calculator. It started as a way to make row reduction and other matrix operations easier to work through visually, including rendering steps in LaTeX for assignments. It was perfect for handling the messy algebra and generating a formula I could simply plug in to Math3D.

I like this problem because it sits at the edge of several things I care about: creating tools to solve problems, connecting topics from courses to applications, and learning by applying. This is a small record of a habit I still value. The set of things I know how to build, and the problems I know how to approach, has only grown since then.

The twisting ribbon is still alive on Math3D, which makes me very happy.