DEV Community

stepinto.dev
stepinto.dev

Posted on Edited on Originally published at stepinto.dev

The Seventeen Ways a Wall Can Repeat

I have been building a series of pages where the computer generates the pattern: tin-glazed tiles painted by rule, cut tile and poured cement, heraldry, knotwork, a piece that breaks another piece, and last time brick in raking light and Granada's green and blue. The tile walls in that run all repeat the same way. A square design is laid four times, mirrored or turned, and the wall is that block over and over. It worked for every wall so far, and it is one of seventeen.

A grid of seventeen panels of pink roses on green sprigs on cream paper, each labelled with a wallpaper group name from p1 to p6m. The sprig is the same in every panel. In the first it simply repeats; in others it is mirrored, turned upside down, slid, or laid in fours around a point; in the last rows it is cut into wedges and folded into three-fold and six-fold rosettes

One sprig, the same seed, and the seventeen groups. The sprig never changes. The group is what the wall does with it.

Every repeating pattern in the plane has one of seventeen symmetry groups. This was proved in 1891 by Evgraf Fedorov, a crystallographer who was after the 230 groups of three dimensions and did the plane on the way, and the groups are called the wallpaper groups because wallpaper is where most people meet them. A wallpaper is a repeating pattern, so it has one of these seventeen symmetries whether its designer knew or not. William Morris did not know, as far as I can tell, and his papers still sort neatly into the groups: a mirror here, a glide there, a trellis with mirrors both ways. Papel Pintado draws one sprig in a square and makes the group a control.

What a group is, on a wall

A symmetry of a pattern is a movement that leaves it looking the same. Slide a wallpaper by one repeat and it looks the same, so translation is a symmetry of every wallpaper. The seventeen groups are the seventeen ways you can add to that: a half turn, a quarter turn, a third of a turn, a mirror, a glide (reflect and slide along the mirror by half a repeat), and the combinations of those that are consistent with a lattice. There is no fifth of a turn because pentagons do not tile, which is also why Çini has to work so hard for its stars.

The engine's old repeats are three of the seventeen in disguise. Lay a diagonal-symmetric tile four times mirrored and you have pmm; lay it four times turned and you have p4; and because the tile is symmetric across its own diagonal, the mirrored module is actually p4m, the kaleidoscope. The new page's sprigs are deliberately asymmetric, because a symmetric design hides the group. Give p1 a tile with a mirror in it and what you see is cm.

Each group in the engine is three things:

pgg: {
  cell: [[2, 0], [0, 2]],
  domain: null,
  copies: [I, glide, rotate(PI, 1, 1), mul(translate(2, -2), mul(glide, rotate(PI, 1, 1)))],
  lattice: 'rectangular', note: 'glides both ways and never a mirror',
},
Enter fullscreen mode Exit fullscreen mode

The cell is the lattice, two vectors in tiles. The domain is the part of the tile that is drawn: the whole square for twelve of the groups, half of it cut along a diagonal for cmm, p4m and p4g, and for the five hexagonal groups the 60° rhombus whose long diagonal runs from corner to corner, or a third, a sixth or a twelfth of it. The copies are the matrices that lay the domain out inside one cell. Lay the cell at every lattice point and the plane is covered exactly once. The wall's painter walks the cells a window touches, and for each copy sets the transform, clips to the domain, and draws the tile image into it.

Three panels of green sprigs on cream. In the first, pm, each sprig has a mirror image beside it and the rows line up. In the second, pg, the mirror images are slid half a row down, so the rows zigzag. In the third, cm, the sprigs are mirrored and every row is stepped by half a repeat

pm, pg and cm with the willow inks. A mirror, a glide, and a mirror on a lattice whose rows step by half.

Every domain keeps the design's main corner. For the hexagonal groups that matters, because the twelfth of a rhombus that p6m draws is a thin wedge, and it is the wedge with the root of the sprig in it. Twelve copies of that wedge about a point is a rosette, and the cuts heal, because wherever the domain is cut by a mirror line the two halves of a cut bloom meet their own reflection and close. Only a cut across a translation leaves a seam, and that is the seam every tile wall has had from the start.

Checked before it was looked at

I did not trust myself to get seventeen groups right by eye, and some of the pairs are easy to confuse. p3m1 and p31m both have thirds of a turn and mirrors; the difference is whether every centre of rotation sits on a mirror line. pmg and pgg both have half turns; one has a mirror and the other only glides. So before the page existed, two scripts checked the module.

The first drops thousands of random points on the plane and counts how many copies of the domain each one falls in. The answer has to be one, for every group, every time, and it was. The second takes three asymmetric points in the domain, generates their orbit under the group, and then tries candidate symmetries against it: rotations of every order about a grid of centres, and reflections in lines at every multiple of fifteen degrees. For each group it reports the highest rotation order, how many mirror directions there are, and whether the rotation centres sit on mirrors. That table matched the textbook for all seventeen, once I had taught the checker to look at fifteen degrees and at the irrational centres the hexagonal groups use.

Two panels of brown sprigs with orange flowers on cream. Left, p3m1: six-pointed rosettes of stems with small buds, every centre on a line of mirror symmetry. Right, p31m: triangles of stems with orange blooms clustered at the corners, the blooms in threes about centres that are not on mirror lines

p3m1 and p31m, same seed, same inks. Both have thirds of a turn and mirrors. In the first every centre is on a mirror; in the second one kind of centre is not, and the blooms gather there in threes.

Block print

The material is wallpaper, which was printed from blocks: one block per colour, pressed by hand down the length of the paper, and the blocks never land quite where the last one did. On the page each colour's block is given a small random offset per tile, and the key block, the dark outline, has its own. The register slider is how far they stray. At the far end of it the outline sits visibly beside the colour it was meant to enclose, which is how a Morris paper looks if you get close to it.

A close view of pink roses with dark outlines on cream paper, the rose colour sitting slightly to one side of its outline and the green leaves a hair off theirs, on paper covered in fine fibres

The trellis preset with the register slider all the way up. Each colour is its own block and none of them agree.

The inks are flat, because block printing is flat. The paper has fibres lying every way, drawn once per tile, and clouds of tint laid over the whole sheet rather than per tile, since a sheet of paper is one sheet and nothing on it may show where a tile ends. The first version put the clouds on the tile, and the lattice showed through as hexagons behind the jasmine. Age foxes the paper with brown spots, yellows it, and fades it where the sun has been.

Red five-petalled flowers on green sprigs with yellow berries on a dark indigo ground, the sprigs laid in a zigzag so that each one is the glide reflection of its neighbour

The strawberry preset, pgg: glides both ways and never a mirror. Red and cream on indigo, after the paper of the same name.

The presets are named for Morris papers because the groups they use are the groups those papers use. Trellis is pmm. Willow Bough glides, so willow is pg. Daisy is p6m, which turns the sprig into a snowflake, and honeysuckle is cm, mirrors with every row stepped by half.

What it leaves behind

The groups went into the engine as a module of their own, groups.js in azulejeria 2.4.0, and any wall built on the engine can now set its repeat to a group's name. The four classic repeats and the whole-tile picture are untouched: every preset on every existing page renders byte for byte as it did before, which was checked the way the engine's notes insist on, by hashing every canvas before and after.

There is a second new piece this week, Rejería, wrought iron and its shadow on whitewash, where the repeat is one-dimensional, a frieze of scrolls along a rail, and the piece is the shadow the grille throws. It gets its post together with the embroidered silk it will share a light with.

A wrought-iron grille of vertical bars and horizontal rails in front of a whitewashed wall lit by low evening sun, a frieze of lyre-shaped scrolls along one rail with a rosette every few bays, and the whole grille cast as a soft shadow on the wall well to the left of itself

Rejería, the úbeda preset. The grille stands half a bay off the wall and the sun is at seven in the evening.

Top comments (0)