Although the Superformula can produce a bewildering variety of patterns, I wanted to build an automated demo that plotted interesting sets of similar results. Herewith, some notes after an evening of fiddling around with the machinery.

Starting with the original Chiplotle formula, tweaked for B size paper:

`ss=geometry.shapes.supershape(8000,5000,5.3,0.4,1,1,point_count=1+10*1000,travel=10.001*2*math.pi)`

The first two parameters set the more-or-less maximum X and Y values in plotter units; the plot is centered at zero and will extend that far in both the positive and negative directions. For US paper:

- A = Letter = 11 x 8½ inch → 4900 x 3900
- B = 17 x 11 inch → 8000 x 5000

The `point_count`

parameter defines the number of points to be plotted for the entire figure. They’re uniformly distributed in *angle*, not in *distance*, so some parts of the figure will plot very densely and others sparsely, but the plotter will connect all of the points with straight lines and it’ll look reasonably OK. For the figures below, 10*1000 works well.

The `travel`

value defines the number of full cycles that the figure will make, in units of 2π. Ten cycles seems about right.

The four parameters in between those are the `m, n1, n2,`

and `n3`

values plugged directly into the basic Superformula. The latter two are exponents of the trig terms; 1.0 seems less bizarre than anything else.

Sooo, that leaves only two knobs…

With `travel`

set for 10 full cycles, `m`

works best when set to a value that’s equal to `prime`

/10, which produces `prime`

points around the figure. Thus, if you want 11 points, use `m=1.1`

and for 51 points, use `m=5.1`

. Some non-prime numbers produce useful patterns (as below), others collapse into just a few points.

The `n1`

parameter is an overall exponent for the whole formula in the form `-1/n1`

. Increasing values, from 0.1 to about 2.0, expand the innermost points of the pattern outward and turn the figure into more of a ring and less of a lattice.

So, for example, with `m=3.1`

, setting `n1= 0.15, 0.30, 0.60`

produces this pattern with 31 points:

Varying both at once, thusly:

`(m,n1) = (1.9,0.20)=green (3.7,0.30)=red (4.9,0.40)=blue`

produces this pattern:

Yeah, 49 isn’t a prime number. It’s interesting, though.

Note that `n1`

doesn’t set the absolute location of the innermost points; you must see how it interacts with `m`

before leaping to any conclusions.

It’s still not much in the way of Art, but it does keep the plotter chugging along for quite a while and that’s the whole point. I must yank the functions out of the Chiplotle library, set my default values, add one point to automagically close the last vertex, and maybe convert them to polar coordinates to adjust the magnitude as a function of angle.

Yes, that poor green ceramic-tip pen is running out of ink after all these decades.