Shaping the world with simple mapping functions.
  1. Clone the “Ed” repository (see previous class exercise post), if you have not, or use your own code to draw functions and modify a square-shaped image on the [0, 1] range in width and height using PySide6, Matplotlib, and NumPy.

  2. Implement “smooth step” and demonstrate.

  3. Choose at least 3 more 1D functions to implement and demonstrate from these linked below or elsewhere linked from The Book of Shaders: http://www.flong.com/archive/texts/code/shapers_circ/, http://www.flong.com/archive/texts/code/shapers_bez/, https://iquilezles.org/articles/functions/.

  4. Choose and implement at least 3 examples in 2D such as from the “shapes, color, or matrices” sections of https://thebookofshaders.com/.

  5. Describe, show images, and document your work in a pdf. Upload a zip file that has your pdf and your code.

Have some fun — see what you can figure out. Can you modify to have color; multiple interactions of shape, color, or pattern; create something similar to cited art works or observed patterns in real-life environments? Could you implement the basics of a tileable square similar to a Substance Designer network you’ve seen somewhere? Can you replace the 2D Matplotlib plot for 1D functions with a 3D plot for 2D functions? Plenty of room for “check plus” material here.

Explore Next

Short exercise to prepare for Numpy and shaping functions.

Other Projects