**XOR Integer Portraits.**

On 9 November 2008 I built a font called "Vinci Integer Polygon." Though the algorithm for building the "integer polygons" seemed fairly straightforward, I could not use an algorithm to assemble the polygons. Instead, the process proved cumbersome, but thankfully I was the fastest draw in the west, AutoCad-wise. I could generate polygons in cad, then port them to Illustrator where I could stack them in layers, activate layers then copy/paste them into their own document and interact the shapes such that the integer polygons were the result. With vector forms available, I could then bring these into the font application and produce a TrueType font.

**Algorithm.**

In order to build an XOR portrait of your favorite integer

*n*, we do the following. First, we generate a

*d*-vertex regular polygon for each divisor

*d*of

*n*. Suppose

*d*= 5. Then we would draw a 5-vertex regular polygon, meaning a regular pentagon. In order to keep apples to apples, all the polygons would have a common origin, and the radii of all the polygons would be constant at 1/2. There are technicalities. Since 1 divides all numbers we could say that we ignore it. At any rate, the "polygon" with 1 vertex has no meaning; it would be a point, but for our purposes we could draw a circle of radius 1/2. We also have a problem with

*d*= 2. A "polygon" defined by two points is called a "digon" and is just a line. For our purposes to render 2 visible, we use the line between two diametrically opposed points, but the return closure arcs round to make a semicircle. We also should align all the first vertices of the polygons such that they appear at "12 o'clock", meaning we start from the top. We could start from the right as geometry might have us do, but the symmetry of these gems is best apparent by starting from the top.

For each figure in turn, we start with the result from the last operation (or null) and use an XOR transform, meaning what was white is now black, and what was black is now white, for each figure in their turn. The figures must have common centers and that first vertex aligned. The result is the integer portrait!

Recently I was able to write a program to generate these polygons. The funny thing is that it still can't produce vector versions, so the 2008 font contains the sharpest images of these figures.

Let's build an integer polygon for the number

*n*= 12:

This is the lineup of figures. Since the divisors of 12 are {1, 2, 3, 4, 6, 12}, we have a circle, digon, triangle, square, hexagon, and dodecagon.

Now we compose the figures in their turn, here they are step by step, starting with 1, then 2 on 1, then 3 on 2-on-1, then 4 on 3-on-2-on-1, etc.:

Here is an enlargement of the last image:

Here is one for the number ten dozen:

Here is a gallery of the portraits of the smallest 36 integers:

The original idea was going to be published in the

*Duodecimal Bulletin*of that year. The notion was that these symbols might serve as a sort of identifier for each of the integers. There are quite a few problems with that. For one, it is hard to execute these symbols by human hand. Another problem regards electronics. Since the "more composite" numbers have more of a complex appearance, we observe many small polygons at their rims with acute angles. Machine recognition of such symbols is likewise difficult. It does get tough to identify each of these symbols when we have numbers with many of the same small factors. One way to tell which symbol is which is simply to count the outermost sides. Again, with a fairly large number (meaning more than, say, eight!) it might be hard to tell whether we're looking at "11" or "13".

You can see a version of this idea serving as the backdrop for my long-running avatar that dates from 2006. Here is an algorithm-generated version of the same using a sort of summatory XOR on the geometric shapes:

They are beautiful as studies, even if they serve no other purpose.