Parametric curves

Parametric curves are curve where the x and y positions are defined by functions eg. \((\cos(3t),\sin(2t))\). I have used them for years to make interesting patterns and animations with desmos and python. I use them in laser cutting, rendering, puzzle box and the sebsite logo.

Desmos dots

The first thing I did with parametric functions was in desmos, a graphing calculator. I defined a parametric curve as a path and them made a lot of points follow that path all at slightly faster speeds. This is a simple definition that creates beautiful emergent behaviors. You can change the parameters in the graph here.

Rendering

Python + rendering engine > graphing calculator

When I started teaching myself python I quickly realized I could do so much more than with a graphing calculator, which lead to me finding a rendering engine to use with python. I did some of the same 2D things, but was also able to expand into 3D parametric curves and model waves in 2D planes and 3D volumes. Look at some of these renderings on my rendering page.

Every ball moves in a circle, and the outer balls circle faster than the inner balls.

Python DXF

I wanted to laser cut some of the parametric curves so I found a method to turn equations into a DXF file using a python module called ezdxf. The first version worked by approximating parametric curves using a lot of really small straight lines, then I improved this to make a fitted curve through a bunch of points on the parametric curve.

DXF To create these patterns I started by defining an equation with constants and then vary the constants to find interesting shapes. For example: $$ (X,Y) \\ X=\sin(t)+\frac{\sin(at)}{2}+ \frac{\sin(bt)}{4} \\ Y=\cos(t)+\frac{\cos(at)}{2}+ \frac{\cos(bt)}{4}\\ $$ However manually varying the constants a and b is slow. So I simply added a few lines to my python DXF program to loop through 40 values of a and b between 0 and 20. This created thousands of curves at a time! Then, I just had to find my favorites.

I used these DXFs to laser cut parametric coasters.