Jump to my Home Page Send me a message Check out stuff on GitHub Check out my photography on Instagram Check out my profile on LinkedIn Check out my profile on reddit Check me out on Facebook

Mitch Richling: Circle Art Part 1

Author: Mitch Richling
Updated: 2022-06-23

Table of Contents

1. Circle Art

The images here were inspired by a Scientific American blog post. The idea is is to draw a collection of circles that form an artful shape. Circles have a center and radius, so all we must do is figure out where to put the centers and how big to make the circles. The centers are placed along a parametric curve showing some symmetry in the plane. As for the size of the circles, any nicely periodic function with the same period as the overall parametric curve will do. Doing something similar with color adds to the final image. I know. This all sounds a bit vague, and the best way to make it concrete is to look at some code.

For this "Part 1" I have used a vector graphics approach with SVG, and LISP as the programming language. The code is one of the example programs that I ship with my LISP Mathematical Library (MJRCALC). Because we are using a pretty sophisticated rendering model with SVG, it's the same one use by Postscript & PDF, we can can produce some pretty organic images using only a 10K to 40K images.

2. Gallery

Here are a few examples. When you draw one of these images with a random set of parameters, the odds are that you are the first human being ever to see that precise image – with five, 32-bit parameters the odds of someone else picking the same parameters is 1 in 2^160.

exp-svgCircles-OUT-craneknotA_256.jpg exp-svgCircles-OUT-flightA_256.jpg exp-svgCircles-OUT-flowerA_256.jpg exp-svgCircles-OUT-frogA_256.jpg exp-svgCircles-OUT-gatewayA_256.jpg exp-svgCircles-OUT-skinnyfrogA_256.jpg exp-svgCircles-OUT-turbulenceA_256.jpg exp-svgCircles-OUT-victorianbulbA_256.jpg

3. Another Approach

The techniques used for the images above work well with the SVG imaging model; however, they start to breakdown when the number of circles grows very large. In Part 2, I use a direct raster rendering approach capable of handling an enormous number of circles. So check out! Here is an example image:

circles_014v2.png