## Sunday, Dec 09, 2012

# Math for Art class

I just finished teaching my Processing class at the Crucible.

The students were sharp and picked things up quickly, but I
was surprised to find that some were unfamiliar with simple trig
functions [`sin()` and `cos()`] to draw circular motion.

Well, if you are doing algorithmic art (or algorithms in general!) there's some insanely cool stuff that ether you have forgotten or more likely nobody taught you in the first place. The bad news is that it's math. The good news is that we can use Processing to do the heavy lifting, and concentrate on the concepts rather than the calculation!

So here's a first stab at a syllabus:

- Exponentials
- Trigonometry review
- Sines and cosines for circles, ellipses and harmonic motion
- Exponentials for natural decay
- Euler's Theorem just because it totally rocks
- introduction to complex numbers

- Matrix Math (oh my!)
- Intro: matrices are a lazy way to do algebra!
- Vectors: Polar and rectangular positions in 2D and 3D space
- Color spaces and how to convert between them
- Matrix coordinate transformations (e.g. scaling, rotation)
- Conformal mapping in the complex plane

- Space and Surfaces
- Intro: polygons and normals
- Tessellations, triangulations, and Voronoi
- Particle systems, flocking, and boids

- Iteration and Recursion
- Intro: iterative and recursive functions
- Spirals, Fibonacci and the Golden Mean
- Fractals and fractal dimension
- Cellular automata
- Flames and reaction-diffusion

- Randomness
- Intro:
`random()`and distributions - 1D randomness: white noise, random walks, and Martingales
- 2D randomness: Perlin noise and fractal landscapes

- Intro:
- Curves
- Intro: Curvature and calculus
- Conic sections
- Interpolation
- Splines and Bezier curves

- Signal and image processing
- Intro: template matching
- Filters, kernels, and smoothing
- Gentle introduction to the frequency domain
- Compression

So anyway, that's a first cut. If you are interested in learning about this, or have any suggestions, please contact me at the link above.