Quasiperiodic design with 8-fold rotational symmetry from 4-dimensional space

Using the recipe of the last post for four-dimensional space (p=4) I got this image of 8-fold rotational symmetry:

A center of approximate 8-fold rotational symmetry is near the lower left corner. Large brown patches appear at roughly equal distances. They lie at corners of squares, rhombs with an acute angle of 45 degrees and regular octagons. These polygons bear similar decorations. Overall this image seems to be an approximate decoration of the Ammann-Beenker tiling. This is no surprise as a simple superposition of sinusoidal waves too makes a decoration of the Ammann-Beenker tiling, see my post “Quasiperiodic pattern from eight waves and the Ammann-Beenker tiling”.

To do your own experiments, simply get my public repository https://github.com/PeterStampfli/creatingSymmetries and first have a look at “warpingKaleidoscope.html”, which you can open in your browser to create kaleidoscopic images. But beware, everything is changing. The current commit is 929315b.

Posted in Anamorphosis, Kaleidoscopes, Quasiperiodic design | Tagged , , , | Leave a comment

Rotational symmetry from space with an even number of dimensions

For an embedding space with an even number of dimensions p=2q we do similarly as for an odd number of dimensions, see the earlier post “Rotational symmetry from…“. Note that now we should not use an angle of 2π/p between neighboring unit vectors because this would give us pairs of opposed unit vectors. Instead, we have to use a separating angle of π/p resulting in a 2p-fold rotational symmetry.

For even p the unit vectors are

Note that

Rotations are similar to the case of an odd number of dimensions, but we consider here multiples of π/p. To get an image with rotational symmetry we have to sum up a full cycle of 2p rotated basic mapping functions, like that:

where the basic mapping function X(x,y) usually is not symmetric.

Rotating the first unit vector clockwise by π/p now gives the opposite of the last unit vector:


we get

Observe that we have exponential functions of imaginary arguments that come in pairs with opposite signs. This simplifies to

This gives mapping functions from special choices for the wave vector components. With a basic mapping function of only one non-zero component of the wave vector


we get the same symmetric function as for embedding spaces with an odd number of dimensions:

But for the second part of the mapping function Y we now cannot use sine functions. Instead, we can use a basic function with two non-zero wave vector components


resulting in the symmetric mapping function

You best make a drawing of these vector combinations to see the rotational symmetry.

With these mapping functions we easily generate quasi-periodic designs with a rotational symmetry which is a multiple of four.

A note added on the 23rd july: We can use any orientation for the unit vectors as long as they are spaced by angles of π/p. Another choice is obviously



Posted in Anamorphosis, Kaleidoscopes | Tagged , , | 1 Comment

Periodic design with 3-fold rotational symmetry from 3-dimensional space

Three dimensional space gives a three-fold rotational symmetry in the drawing plane. The designs are periodic. Note that if you put a cube on one of its points and look along its space-diagonal from above, then you see an object with three-fold rotational symmetry. This shows that there is an important similarity to isometric projection. The three unit vectors in the drawing plane are

(1, 0), (-½, ½√3) and (-½, -½√3).

They are isometric projections of the three coordinate axis and form a triangular lattice. You do not need to use all three vectors. Often, one replaces the third unit vector by

(-½, -½√3) = – (1,0) – (-½, ½√3).

But for creating designs with three-fold rotational symmetry it might be better to use all three vectors. Then, the symmetry becomes obvious. Similar to the previous post, the simplest mapping functions with three-fold rotational symmetry are

X(x,y) = cos(x) +cos(-½ x+½√3 y) +cos(-½ x -½√3 y) and

Y(x,y) = sin(x) +sin(-½ x+½√3 y) +sin(-½ x -½√3 y).

This results in images like that:

As input image I used a photo of a rosechafer on sedum spectabilis. The green and rose shapes result from the flower. The shiny yellow and blue shape is part of the body of the insect. At the ends you can discover its head.

A minstrel bug and different mapping functions give


Posted in Anamorphosis, Kaleidoscopes, Tilings | Tagged , , | Leave a comment

Inversion symmetry doubles the rotation symmetry for an odd number of dimensions

We now want to impose inversion symmetry in addition to rotational symmetry on our designs. This means that the mapping functions should not change upon inversion of the position. Thus
X(-x,-y)=X(x,y) and Y(-x,-y)=Y(x,y). Let’s consider space with an odd number p of dimensions and look at the earlier post “Rotational symmetry from …“. There we got a p-fold rotational symmetry with rotation by multiples of 2π/p that leave X and Y unchanged. The inversion is simply a rotation by π. Both together give that X and Y are invariant upon rotation by π/p. You can easily verify that, if you take into account that p is an odd number. Thus we get designs with a 2p-fold rotational symmetry.

To create such designs we use that only the cosine function is an even function and does not change if the sign of its argument changes as cos(-x)=cos(x). Thus only cosine waves make up the mapping functions X and Y if we impose inversion symmetry. Taking care to use functions that are not multiples of each other, we get from 5-dimensional space drawings like this:

Here the center of perfect 10-fold rotational symmetry lies near the lower left corner. Look out for shapes with approximate local 5-fold and 10-fold rotational symmetry.

Using an embedding space with an odd number of dimensions we cannot make designs with a rotational symmetry that is a multiple of 4. They result from an even number of dimensions as I will show in a following post.

Posted in Anamorphosis, Kaleidoscopes, Quasiperiodic design | Tagged , , , | Leave a comment

quasiperiodic patterns of 5-fold symmetry from 5 dimensional space

I now want to see some images. Using a photo of a caterpillar as input image I get

I used the simplest quasiperiodic mapping functions resulting from the theory of the last post


The center of perfect 5-fold symmetry is near the lower left corner. Further out you can recognize the head of the caterpillar. At higher magnification you see more clearly how the caterpillar is “anamorphized” into a quasiperiodic image:

To see the quasiperiodicity we need the image of a larger region. Here is the result from an image of a fly on Muscary flowers:

Do you see the various 5-pointed stars and how they are approximately repeated at other places?

Note that these images are mirror symmetric with respect to the x-axis going through the center of perfect rotational symmetry. Actually, it is difficult to create images that are not mirror symmetric. That is quite different to rosettes.

If you want to experiment then look at my public Github repository: https://github.com/PeterStampfli/creatingSymmetries. It has the code for generating images like that and much more. Start with: warpingKaleidoscope.html. Your comments and improvements are welcome. Keep in mind that this is a moving target.

Posted in Anamorphosis, Kaleidoscopes, Quasiperiodic design | Tagged , , , | Leave a comment

Rotational symmetry from space with an odd number of dimensions

We now look at the easier case for the post “Quasi-periodic and periodic kaleidoscope from higher dimensional space“, where the embedding space has an odd number of dimensions, p=2q+1. The unit vectors lie at equal angles and form a star with p points:

where h goes from 1 to p. Note that they are  mirror symmetric at the x-axis as

To simplify we set ζ=0 and expand the argument of the exponential function, then the mapping functions become

and similar for Y. To get a p-fold rotational symmetry we have to look at rotations by an angle of 2π/p. This results in

Because the angle between the unit vectors is 2π/p we have

and we get

To create a mapping function X with p-fold rotational symmetry we add up functions rotated by multiples of 2π/p

This results in

which is equal to the condition

This is not really surprising. It means simply that we have to shift around the components of the wave vector k resulting in different waves that have to be summed up. For programming we use real valued functions and coefficients. Then

and similar for the other component Y of the mapping function.

A note added on the 23rd july: We can use any orientation for the unit vectors as long as they are spaced by angles of 2π/p. Another choice is the obvious




Posted in Kaleidoscopes, programming, Quasiperiodic design | Tagged | 1 Comment

Rotations, mirrorsymmetry and the scalar product

In the last post we have seen that scalar products between a pixel’s position in the output image and certain vectors e define periodic and quasi-periodic designs. We want symmetric images and thus we have to see how the scalar product changes when we rotate or mirror the plane. This is nothing new to you, but I prefer to define everything clearly, because I have always difficulties with coordinate transformations and the like. Better a fussy post than a fuzzy blog!

I am writing vectors of unit length and an angle α with the x-axis like that:

The position (x,y) of a pixel in the output image can then be written as a vector

where I am essentially using polar coordinates. r is the length of the vector and φ its angle with the x-axis. The scalar product is then

We now look at rotations. They are matrices

where Δ is the angle of rotation. A rotation changes the angle of a vector

and it changes the value of scalar products

This is almost trivial. The scalar product of a rotated vector with a second vector is the same as the scalar product of the original vector with the second vector rotated by the opposite angle. But this becomes important when we look at rotational symmetry and color symmetries.

Mirror symmetry is similar. The mirror image of (x,y) using the x-axis as mirror axis is (x,-y). As a matrix we have

and thus we can write

and the scalar product changes like this

As expected, the scalar product of the mirror image of a vector with another vector is the same as the scalar product of the original vector with the mirror image of the second vector.

Inversion changes a vector into its opposite. It is simply a rotation by 180 degrees. Using radians for angles

and the above relations for the scalar product of rotated vectors apply too.

This is it. The short notations for rotations and mirror symmetry will be useful in further discussions.





Posted in Anamorphosis, Kaleidoscopes, programming, Tilings | Tagged , , | Leave a comment