After receiving a Ph.D. in mathematics at Ohio State, I taught for several years at Merrimack College in Massachusetts, followed by a visiting position at Hamilton College, before settling into teaching mathematics and computer science at Hopkins School in New Haven, Connecticut. Although I teach mathematics for a living, I am also passionate about coding, music, and visual arts. I have helped to maintain the Flash tutorial site flashandmath, and more recently my own HTML5 Canvas and JavaScript blog, rectangleworld.

— *Daniel Gries (Hopkins School, New Haven, CT)*

This image is based on a morphing fractal curve method, but shaped into an abstract jellyfish through the use of parametric curves and other mathematical tricks. Additive color blending creates the lighting effect. Coded in JavaScript.

This image is based on a morphing fractal curve method, but shaped into an abstract jellyfish through the use of parametric curves and other mathematical tricks. Additive color blending creates the lighting effect. Coded in JavaScript.

Lines emerge from regular grid positions in the canvas, and proceed to grow according to a vector field defined by Perlin noise, a generative texture first created by Ken Perlin for computer animation in the 1982 movie "Tron". As the lines grow in this image, they slowly change color from red to yellow, producing the fiery effect. Coded in Processing.

This image was created with the "Fractal Flame" algorithm, a modification by Scott Draves of the classic Chaos Game algorithm. In this algorithm, a cloud of points is formed when a particle leaps from one position to the next as it is transformed by a linear transformation, randomly selected from a small fixed collection. The colors are a result of a special averaging of colors associated to each transformation. Coded in JavaScript.

This image was created with the "Fractal Flame" algorithm, a modification by Scott Draves of the classic Chaos Game algorithm. In this algorithm, a cloud of points is formed when a particle leaps from one position to the next as it is transformed by a linear transformation, randomly selected from a small fixed collection. The colors are a result of a special averaging of colors associated to each transformation. Coded in JavaScript.

This image was created with the "Fractal Flame" algorithm, a modification by Scott Draves of the classic Chaos Game algorithm. In this algorithm, a cloud of points is formed when a particle leaps from one position to the next as it is transformed by a linear transformation, randomly selected from a small fixed collection. The colors are a result of a special averaging of colors associated to each transformation. Coded in JavaScript.

A parametric surface like the one shown here is defined by mapping two variables into three-dimensional space. This surface was the result of playing with the points on a sphere, perturbing them in different directions by some sinusoidal functions. The surface is rendered so as to appear to be lit from different positions by differently colored point lights. Coded in Processing.

Paths meander on a sphere with each small step taken at a random turning angle. The turn angle at each step is required to stay near the previous turn angle, as if the steering wheel of a car can only be turned slowly from one position to the next as the car drives forward. Computing random walks on a sphere has to be handled carefully with local coordinates so all random directions have an equal probability. Coded in Processing.

A curve which is defined through a fractal subdivision process, and then smoothed out, is drawn from the top of the canvas to the bottom. This curve then sweeps from the left of the canvas to the right, as it morphs into other similarly defined fractal curves, and intermittently changes from red to white. Some mathematical tricks are used to create the most turbulence in the middle of the picture, while maintaining fixed straight edges along the sides of the rectangle.