36 Days of Type 2023

Created as part of 36 Days of Type 2023, this project was an attempt to play with Discrete Fourier Transformation (DFT) and Epicycles using P5.js. The font used for this project is Computer Modern Unicode (CMU) Serif Roman - the default font used by LaTeX and created by Donald Knuth as part of TeX. It seemed right to choose a font so closely linked to mathematics for a project that uses DFT as part of the generation process. I had to modify some of the characters (see A, B, D, et cetera) to convert them into single paths in order for the epicycles to work. I then used the svgpathtools Python package to convert my character paths from SVGs to coordinates, which I then passed to the P5.js sketch.

I learned about epicycles from the 3Blue1Brown video on Fourier series which them led me to an educational journey of figuring out how to generate the Fourier constants for a given figure. Having tried out a couple of methods, I finally found the videos from The Coding Train that taught me exactly what I wanted to know. I then built upon an implementation of this logic by Juan Carlos Ponce Campuzano (see original sketch here) which allowed by me to manipulate the number of constants used in the approximation. The video for each character shows the path traced by the epicycle with 150 terms, followed by a simulation of what the traced path with number of terms going down from 150 to 3 and back up to 150. Feel free to let me know which ones you like the most!