Roots of Unity
Geometron deals with angles differently than languages you might be used to. Usually in a computer language there is a choice between the familiar degree units typically used by people and radians, which divide the circle by 2 times pi instead of 360. Geometron on the other hand expresses the symmetry nature of the angle rather than the numerical value of it. Instead of 90 degrees and 60 degrees being just random numbers which happen to represent dividing the circle into 4 parts or 6 parts, we express these angles based on those symmetries and build all angles on the basis of these types of fundamental angle.
Just as it is possible to express any arbitrary angle using degrees or radians, it is possible with the language described here. We are just starting from a different conceptual place. One advantage of this approach is that in many cases in machine control it makes sense to only allow the machine to move along two directions, much like the grid in a set of city streets. In other cases with a triangular lattice it might make sense to just use 60 degree angles.
The first and most widely used angle symbol is this:
=
This symbol is literally dividing the circle up into four parts. While it is used to denote 90 degrees in some sense it's not exactly the same meaning as "90 degrees" might be in a human or existing computer language. More specifically it means that the unit of rotation step is 90 degrees. This means that if the rotation operations are applied at any angle for anything, that something(based on context) will rotate by 90 degrees plus or minus. The Geometron symbols to rotate 90 degrees in the two directions:
and
Notice that by expressing rotations with an arrow, we are being completely explicit and language-independent. There are some computer languages where +90 degrees means clockwise and some mean counter-clockwise. But in Geometron, the direction of the arrow very literally indicates the direction of rotation. And the symbol glyph that shows how the circle is divided up also very literally shows how the steps work. To make this even more explicit consider the following symbols:
and
These represent rotating 90 degrees four times. That is to say they do nothing by themselves.
To further explore the fourfold symmetry command, let's look at the arrow movements and how they work with this symmetry. The arrows in Geometron that are used for movement are always as follows:
The way to think of these arrows is like the ones you would see on a road sign or a sign giving directions for walking. The arrow pointing up indicates motion in the direction of the cursor(which I'll elaborate on in the next section), the arrow pointing down means move back, and the left and right arrows are, as with the rotation arrows, literally left and right. Note that the following are equivalent:
and
In English the way to express this is that moving one unit to the left is the same as rotating 90 degrees left, moving forward one unit then rotating 90 degrees back to the right, and the mirror of this on the opposite side. One of the properties of Geometron is that there are typically numerous ways to simply express the same series of actions, and there is no one right one: you use what makes sense to you for your application.
Moving up in complexity and familiarity one step from fourfold symmetry is the symbol for fivefold symmetry:
Fivefold symmetry is much harder for the human mind to grasp than fourfold. It is found both in nature(for instance in cherry blossoms), and in technology(the most common example being the valve nuts on fire hydrants at least in the U.S.). And it's used in many interesting types of art including Penrose tiles and various types of Islamic geometry(also often consisting of tiles). The angle being referenced here is 72 degrees, or 2/5 pi radians. I'll return to this symmetry when studying scales in the next subsection.
Not surprisingly the next symmetry after fivefold(72 degrees) is sixfold symmetry, which has a 60 degree step. This is symbolized by the glyph:
To further clarify how all these things work, I'll show how these symbols are spelled out using symbols.
These three symmetries, 90, 72 and 60 degrees are the default symmetries in the basic Geometron implementation. At first this may seem limiting, but it's no more limited than any other system of angular measurement as I'll now show. I must now introduce four more operations fundamental to Geometron, angle doubling, angle halving, angle tripling and thirding. The symbols for these are :
These commands are in fact more than is needed to define any arbitrary angle. Just as any decimal number can be represented by sums of powers of one half, any angle can be represented as sums of powers of one half and/or one third from
any angle. And yet we have three to choose from! This is different from how we are used to dealing with numbers. Normally if you're using a computer language that expresses and angle as 37.12 degrees, that's it: it's always 37.12 degrees. However in Geometron, one might create a 30 degree symmetry by either taking the third of 90 degrees or half of 60 degrees, shown in symbol glyphs as follows:
So that's how we create the easy and obvious and useful angle 30 degrees. But what about arbitrary angles? Any angle can be represented as a decimal in any base. One could prove this formally, which I will not do here. Instead I will give a meandering account of various angles which are easily constructed which might be useful. With 30 degrees in hand, 10 degrees
To get to five degrees, divide by 2 again:
The next obvious step is to try to get to one degree. And now we see the limitations of any choice of numerical base: to get from one prime number or set of primes(2 and 3) to another (5) we need repeated decimals. There are multiple ways to approach this. The first is to ask a simple question: why do we need one degree? In many cases we don't. Using random integer values of degrees is very useful for homework, but homework is not useful. School is not a place for smart people. For completeness, however, the binary decimal value of 1/5th is 0.0011001100110011... In geometron, we can't make this a single rotation, but must compose the rotations and the angle changes. To rotate 0.0011, we rotate by an eight then a sixteenth.
Now we have to actually do a rotation:
Now in a reasonable world, you might already say this is close enough to one degree because one degree is mostly useless. But we shall soldier on.
And that is more precision than just about any of us will ever encounter in any unit other than time, but it's easy to see how to continue this by repeating the four divisions by two and three rotations.
There are still two other ways to approach this increasingly tedious problem, however. The easiest is the one I would recommend in most cases: just add another command to the Geometron command set, which we'll discuss later. There are several choices for this. The most obvious is to add divide-by-five. While this gets the job done, divide-by-sixty or divide-by-12 are probably more generically useful since they get smaller faster. I like adding divide-by-12 because a clock face is divided into 12 slices so it's simple to create a set of symbol glyphs for divide and multiply using the hands on an analog clock.
The final approach here is to use combinations of 1/2 and 1/3 to get from 5 to 1. This is also tedious, and since I feel that you should never do this, I'm going to leave it out. The point of Geometron is to avoid tedium by changing the rules--the opposite choice you are forced to make in school. So I will now move on.
The final topic to address in this section is the name of the section, the "roots of unity". This terminology will be familiar to those who've studied the math of so-called "complex variables" or "imaginary numbers", which is a small subset of my intended audience here, but it's possible to indicate what is meant with some more colorful imagery. You can just think of everything here as ways of dividing up the unit circle, where "unit" is dependent on the context. One of the claims of Geometron is that this is really what you care about. Not degrees from some arbitrary angle, but number of divisions of a unit circle from whatever angle you happen to care about right now. This is what is meant by "roots of unity" for the purpose of this as a art book: it's how we divide up a unit. These can be thought of in an organic sense like roots of a tree. More formally, there is a mathematical definition that connects these angles with various complex numbers which can be raised to different powers to get the number one. I want to try to have as many double meanings like this as possible in Geometron: a purely artistic interpretation which makes sense and a formal mathematical definition which also makes sense.
Scale
The approach geometron takes to scale and units in distance measurement is just like that in angle measurements. We always start with the most logical thing we can possibly choose, always being as much informed by the physicality of the system as possible, then define everything using simple relative geometric transformations of that unit. In the computer version of the language, there is always a current unit value called "side" which is changed just as the position and angle are(more on this in the next section). When a reset command is issued or at the beginning of a glyph this is set to "unit", which has some numerical value set based on the problem at hand. This is always in real units! And does not always have to use numbers.
This is so different from how computers usually do things that it's important to give an example of how this works and why it's useful. When giving directions in a city it is common to describe distances in blocks. But "block" is not a real unit in any normal mathematical sense. Some blocks are much smaller than others. And intersections do not have zero size, or even uniform size, so there are huge "uncertainties" built in if you view the world as a computer. But we don't! The fact that computers don't work this way is closely related to how infuriating they are for almost all humans but those with insufferable personalities. What is obvious to a human mind, that saying "7 blocks" means something which we can figure out how to interpret is very hard for a computer to parse and something obvious to a computer like the idea that 0.9999999999999999 is not equal to 1 is a very dangerous form of stupidity for a real human to have(which we force children to learn in school because school brainwashes children to behave like computers).
Just as rotations in Geometron involve a changing of what happens when we apply a rotation and two rotation commands for clockwise and counterclockwise, scales involve a set of various choices for how "side" gets scaled and two commands, one for increasing and the other for decreasing "side" by that amount, called "scaleFactor" in the computer implementation.
The increase and decrease size commands are simply a plus and minus in a square, similarly to the other glyphs:
The default scale factor is 2. I'll give an example of using a factor of two before showing the other scales.
It should be clear to anyone who's even seen fractals as just a purely artistic creation that this is a doorway to a whole world of fractal art. I will postpone showing the details of how to make the most interesting fractals until geometric recursion is discussed in a later chapter.
I believe that doubling and halving of lengths are, as with angles, the most natural possible scale that can be done, which is why it's the default. The symbol to set this mode is two squares next to each other:
I will now mention without much further comment the multiples of 3 and 5 that are also part of the default Geometron language:
Of course putting these together like this makes 3X5= 15, but I'm just displaying them like this for convenience. To divide or multiply by 10 the 2 and 5 are combined in a similar way. Where things start to deviate from math you might be used to to reflect the geometric nature of this language is with the other scales. I would argue that in geometry the next most natural scale after 2 is in fact the square root of two. Why? Because the square root of two is the only thing that gets us figures like this:
This figure is special for several reasons. First of all, it is a decorative pattern that is extremely useful in any type of design arts. Any time you want to use a square, you're going to probably also want to cut diagonals of that square. To do that you will very likely get figures like this. Just about any kind of practical engineering design will also end up with figures like this so being able to create them easily is important for the functioning of a language intended to build machines.
To understand better why this is not just special but how it relates to the square root of two let's look at the area of the inner square, the one that is rotated at a 45 degree angle. To make it clearer, it makes sense to add two more line segments to the figure:
Now look at the four smaller squares made by these new lines. Since we have cut the big square in half twice, each smaller square is a quarter of the whole. And each diagonal line cuts one of those smaller squares in half, which we can see again just by looking them. So now we can just count these little triangles and see that there are four in the 45 degree rotated square and four not in that square. Therefore that square has half the area of the larger square. So if the larger square has a side of one unit, what is the length of the side of the smaller square? If the area is 1/2 that of the big square, it has to be the square root of that or 1 over the square root of two!
This is such a natural proof that it was supposedly used in ancient Greece not just by geometers but by philosophers as an example to show that the human mind can access geometrical knowledge even without an education in geometry(as contrasted to say the quadratic formula which is not something you can access without education in the subject). Whether this is true or not, I've chosen it as the symbol for root two scaling. Note that doing a scale operation in this mode twice is the same as one operation in double/half mode, or in symbols:
To further illustrate how this command works I'll draw and spell an equilateral right triangle, one of the fundamental building blocks of all technology and art:
Note that while I've now referred several times to "the square root of two," at no time did I actually write out the numbers "1.414..." which are the decimal approximation to the square root of two. This is deliberate. It is the position of Geometron that the concept of drawing a line connection opposite corners of a square is a fundamental operation which should exist in a language independent of number. This sounds like potentially just meaningless philosophy, so let me illustrate with an example. One of the implementations of Geometron that I'll come back to many times in this work is one where shapes are constructed not witha computer or with compas and ruler as in classical geometry, but by combining artifacts which have built in geometry in such a way as to extend that geometry into whatever figure is being constructed. For example, if you look around your environment you can almost certainly find a rectangular object. If you fold it over carefully you can make the edges line up by feel and by eye to get a figure like this:
With this physical piece of paper in hand(preferably card stock to make it less flexible and easier to use as a ruler), you have a physical tool to construct both square root of two scales and 45 degree angle rotations. No numbers were required, nor was a compass or trammel needed. Just some trash and a pen or pencil.
image here
The next biggest standard scaling after square root of two is the so-called "golden ratio". The reader may have heard many different claims about this number, depending on their background. We must take all statements about this number with some skepticism, as many people both in and out of mathematical sciences have made ludicrous and easily disproven claims about it in a wide range of spheres. What is not pseudoscience, however, is the fact that this ratio is as important for constructing figures with fivefold symmetry as the square root of two is for constructing square-based figures, and in a very similar way. To see how this works I'll use Geometron to build a pentagram, a basic figure used in art for many centuries:
Just as the square root of two gives us the ratio of the side length to the diagonal length of the square, the Golden Ratio gives us the ratio of the side length of a regular(all sides and angles the same) pentagon to the lines that connect non-adjacent corners. This ratio is, in numbers, about 1.62.
Not surprisingly, the next setup up from the pentagon and pengagram is the hexagon and six pointed star or Star of David, as shown here:
The ratio of the side length to the length of a line segment in the star is the square root of three, which is the next scale factor up in Geometron. The numerical value is about 1.73 and the symbol glyph is:
The Global Cursor
If you've used a computer at all you're probably used to the concept of a cursor. This word usually denotes one of two things on a computer: either a blinking line or rectangle in older systems which describe where words will be typed or an arrow of some kind which gets manipulated by a mouse which denote where some type of graphical action will be carried out.
In both cases the cursor concept is doing the same thing and I want to discuss what that is. The cursor is acting as a "tool" in a way that is familiar from physical tools. Computers on their own represent a vast sea of numbers in memory with very little to naturally distinguish them. However physical work of any kind done by a human involves tools that have an actual position and configuration in space. For example a ruler used on paper might be described by the position of both ends(so that's an x and y position for both ends, making this four numbers) as well as the position of a pen along the edge being used, making a fifth number. One might also choose to describe a ruler with one pair of numbers for one end and a single other number to describe the angle of the ruler compared to some base angle such as the "bottom" side of the paper. Likewise, the computer cursor creates a metaphor for a physical tool by defining a unique set of numbers which are special in that they focus the attention of the human mind on on location and configuration above all the others which the computer could in theory work on.
The cursor in Geometron is an extension of the cursor used normally in computers. Rather than just describing a position and possibly one of a couple modes, however, the Geometron cursor describes quite a few things about the current state of the virtual(or non virtual) tool. Properties where are defined by the cursor state include:
- position, denoted by x and y
- origin defined by x0 and y0
- direction denoted by angle theta
- "zero" direction from which directions are defined, denoted by theta_0
- current unit value denoted by "side"
- step angle size stepAngle
- scaleFactor, the factor by which "side" is scaled when "+" or "-" is applied
Now let's look at what the actual cursor looks like on a computer screen. Here is the most common default value of the cursor:
There are three line segments which represent the direction and length which the cursor will move if one of the arrows other than "back" are applied. The dots indicate what size the cursor will be after a scale up or down is applied. I will now give some examples of transformations of the basic cursor to show what it will look like both before and after that transformation.
From 90 to 45 degrees just changes where the wings of the cursor are. Rotate to the right:
Shrink by a factor of two:
Set step angle to 120 degrees by setting to 60 and doubling:
Switch from 2x to 5x for scaleFactor, then shrink once:
This is only one of the two cursors used in the standard editing format for Geometron, however. The other one is a circle used to denote where in the action glyph is currently being edited. This is identical conceptually to how the blinking line cursor in a text editor denotes where typed letters will be introduced. The draw cursor and the edit cursor both follow along the action glyph and symbol glyphs at the same place in the sequence, defined by the integer cursorPosition.
Movements
It is now time to bring this all to life and start letting you, the reader, interact with Geometron a bit. I'll try to show both the physical implementations and the computer examples here to give you a flavor for how this works not just in the way I've been using it but how it can be mutated and bent to various specific implementations.
Now hit buttons at random! Each of the symbol glyphs above this text are buttons, and should respond to mouse clicks on them.
This is by far the best way to learn how these basic controls work. The symbol glyph on the far left may look unfamiliar, that is the reset command, which sets the cursor back to the center and the side back to unit and step angle back to 90 degrees. I've deliberately left off a lot of commands including all the drawing commands and the angle scales so that the reader may become comfortable with the backbone movements of Geometron without distractions which can easily send the cursor into a strange state. Also this canvas is programmed to loop around like an old arcade game in that when you go off screen in any direction your cursor should appear again on the opposite side. Be sure to try rotating and moving then rotating back to get a feel for how rotations and movements interact. As we go through the various parts of Geometron and I show more applications, I'll put more of these live canvases into the document to play with.
Also note that this assumes you're reading this on some type of web browser on some electronic device. If not, I will also show in the hard copy how to do all this with physical paper and pens, and there will be a robotic version where you can do this with a physical control panel with buttons that control a physical pen tool on a plotter.
Lattices and Polygons
Let's take a look at some standard lattices and polygons that will come up over and over. Part of the underlying philosophy of Geometron is to focus on the most useful test cases for whatever application you care about immediately, rather than assuming a general language and only dealing with specifics when we have to.
This section will simply be a list of well-described polygons then lattices, with as much detail as possible, so that it can serve as a reference both for the Geometron language and for the basic geometry which it's assumed will be constantly used in our work with the language.