## Planar Symmetry Groups

The three web pages wallpaper.html, rosette.html, and frieze.html let the user draw symmetric patterns in the plane. (The wallpaper page is the most interesting.)

In many browsers, you will be able to save your image by right-clicking the drawing area and choosing "Save Image" or "View Image" from the pop-up menu. There is a "Save" button that can save the data that defines the image to a local file on your computer, and there is a "Load" button for reloading the file back into the app. In most browsers, saving and loading files will use file save/open dialogs similar to those used in other programs. (Some browsers still use an older kind of file handling. In those browsers, saving a file will look just like downloading a file from the Internet, and loading a file will look like uploading a file to the Internet.)

The programs should be easy to use, and you can hover your mouse over a button or text input to get more information about it. And you will find a few instructions later on this page. First, however, some explanation of what is meant by symmetry.

A "symmetry" of a pattern is a transformation, or motion, for which the pattern is the same before and after the transformation. As a simple example, if you rotate a square by 90 degrees around its center, the square looks the same before and after the rotation. You can't tell that it's been rotated by looking at it. On the other hand, if you rotate it by 45 degrees, you can see that the square has been tilted:

A square has other symmetries. It can be rotated 180 degrees or 270 degrees, and it can be reflected
vertically, horizontally, and through either of its diagonals. We also consider the operation of "doing
nothing" to be a symmetry, even though its a trivial case. The "do nothing" operation is called the
**identity transformation**, and it is a symmetry for every pattern. (You might think that rotation through
minus 90 degrees is yet another symmetry, but it's considered to be the same as rotation through
270 degrees, since both rotations leave the square in exactly the same position, and not just visibly
in the same position. Similarly, a 360 degree rotation is the same as not transforming the square at all.)

The set of all symmetry transformations of a pattern form what is called the "symmetry group" for that
pattern. Different patterns have different symmetry groups. The symmetry group of a square is
named **D _{4}**.

For some patterns in the plane, there is a point at the center of the pattern that is left in place
by every symmetry. The possible symmetry operations for such a pattern are rotations about the center
of the pattern and reflections about a line that passes through the center. The pattern on the
left below has 7 rotation symmetries (including the identity transformation) and 7 reflection symmetries.
Its symmetry group is called **D _{7}**. The pattern on the right has 12 rotation symmetries
(including the identity) and no reflection symmetries. Its symmetry group is called

**R**.

_{12}We can define **rotation groups** with any number of rotations. For example, the rotation
group **R _{137}** is the symmetry group of a pattern that has 137 rotation symmetries and
no reflection symmetries. The groups that we get when we add reflection symmetry are called the

**dihedral groups**. For example, the dihedral group

**D**is the symmetry group of a pattern that has 137 rotation symmetries and 137 reflection symmetries. The rotation and dihedral groups are sometimes referred to collectively as

_{137}**rosette groups**. The web app rosette.html lets you draw patterns with symmetry group

**R**or

_{n}**D**for

_{n}**n**up to 20. There is a set of radio buttons that allows you to select the number of rotation symmetries, and there is a checkbox that adds reflection symmetries. When you draw something in the white area, all the symmetric transformations of the thing that you draw are also shown.

If we drop the requirement that a pattern should have a center point that is left in place
by all symmetry operations, then we get new kinds of symmetry. In particular, we get
**translation** symmetries. A translation operation moves everything by a certain distance in
a certain direction. If a pattern has one translation symmetry, it automatically has an
infinite number of them. For example, if moving everything one inch to the right is a symmetry of a pattern,
then moving two inches to the right, or three inches, or four inches, ..., are also symmetries.
A pattern that has a translation symmetry is necessarily infinite. Here is an example of a pattern
that has a horizontal translation symmetry. You have to imagine the pattern extending infinitely
to the left and right:

This image was made with the program frieze.html, which
lets you draw patterns that have horizontal translation symmetries. The symmetry groups
for the patterns in that program are called **frieze groups**. A frieze group includes
translations symmetries in one direction (but not in a second independent direction).
Furthermore, the group is "discrete" in the sense that there is a minimum translation distance
that is a symmetry. For example, this picture has arbitrarily small horizontal translation
symmetries, so its symmetry group is **not** a frieze group:

With this restriction there are only seven different frieze groups. They have names
like **p1m1** and **pma2** (though other names are also used). In the program,
there is a set of radio buttons for selecting
the frieze group that you want to use.

The simplest frieze group, **p111**, has translation symmetry
and no other symmetry. The other groups add additional symmetries.
For example, **p112** adds a 180-degree rotation symmetry. (180 degrees is the only
possible rotation symmetry in a frieze group.) **p1m1** adds a reflection through
a vertical line, while **pm11** adds reflection through a horizontal line, and
**pmm2** adds both. (An "m" stands for "mirror" and indicates a reflection symmetry.)
The groups **p1a1** and **pma2** add another
kind of symmetry called a **glide reflection**. A glide reflection consists of
a translation followed by a reflection over a line that is parallel to the direction
of translation.

If we add translation symmetry in a second, independent direction, we get
**wallpaper groups**. It turns out that there are only 17 different wallpaper groups
(again, considering only discrete groups). The program wallpaper.html
has a set of radio buttons that let you pick the group that you want to draw with.
Here are three examples from the program, shown at reduced size. These were made using
the groups **p6m**, **pgg**, and **p4m**. As always, you have to imagine
the patterns extended infinitely in all directions:

If a wallpaper group has any rotational symmetries, then the smallest rotational symmetry must be one of 180, 120, 90, or 60 degrees. A wallpaper group can also have reflection symmetries and glide reflection symmetries. An "m" in the group name indicates a reflection symmetry. A "g" indicates a glide reflection symmetry.

For a wallpaper group, the pattern can be made out of translated copies of a basic area,
whose shape can be a rectangle, a square, or a parallelogram. There are input boxes at
the top of the program that affect the shape of the basic area. There is always
a "Translation amount" input box, which gives the horizontal size of the basic area.
That is, it is the size of the smallest horizontal translation symmetry (in pixels).
For the first eight groups, the size of the smallest translation in the second direction
can be different from the horizontal translation size. For those groups, there is a
second input box, "2nd Translation", that gives the vertical size of the basic area.
For the groups **p1** and **p2**, the basic area can be
a parallelogram. For those two groups, there is a third input box, "Row Offset", that
gives the horizontal offset of one row of copies of the basic area from the row above.

For the last five groups, the basic area can be taken to be a parallelogram (actually a rhombus), and the Translation Amount specifies the length of a side of that parallelogram. However, visually, it is more natural to see the pattern as made up of regular hexagons. (Each of the hexagons contains three of the parallelograms.)

The "Show Grid" option at the bottom of the program draws thin lines that divide the drawing region into basic areas. For the last five groups, the grid divides the drawing area into triangles; a basic parallelogram is made up of two of those triangles, and a basic hexagon is made up of six triangles.

For more information about symmetry groups of patterns in the plane, you can check out the Wikipedia articles on Wallpaper Groups, Frieze Groups, and Dihedral Groups.