1 Introduction

In the era that Maurits Cornelis Escher (1898–1972) flourished, the trend of European modern art, such as Fauvism, Futurism, and Cubism, was surging in different directions. Compared with Pablo Picasso (1881–1973), Henri Matisse (1869–1954) and other masters at that time, he was ploughing a lone furrow, more like a playful child hiding in the cellar playing visual games on his own. The art world essentially did not pay much attention to him at all, although he was recognized internationally, from as far back as 1934, at the Art Institute of Chicago, when he won the third prize for his lithograph Nonza. However, when Escher subsequently moved on to the mathematical art for which he later became renowned, beginning in 1936 (disregarding some initial studies of 1922 or 1923 that were abandoned), he was still essentially ignored by the art world for many years, indeed, if not dismissed entirely, due to the overt mathematical nature of his work. Indeed, it was only much later, in the early 1950s, before Escher gained international fame, with articles in The Studio [30], Time [1, 3], Life [2] and an exhibition at the Stedelijk Museum, Amsterdam (1954). Widespread interest in him skyrocketed in the late 1960s, and onwards. Today, Escher’s art has found new admirers from around the world. Evidence of this is that the most popular art exhibit in the world in 2011 was “The Magical World of Escher”, in Rio de Janeiro, Brazil, viewed by over \(500\,000\) people. In his native Netherlands, Escher is recognized as the 37th greatest Netherlander [5] amid other honours in recent polls [4].

Art and mathematics are popularly assumed to be distinct subjects, as far apart as is possible. Many people believe that art creation is closely related to “feeling”, where rational thinking can only restrict the full play of artistic talent. In contrast, mathematics is purely a cold, logical, non-feeling process without any creative input. However, Escher merged these aspects. Both art and mathematics can be seen in the creation process of Escher. (Without additional explanation, all Escher’s artworks mentioned in this paper refer to his works of mathematical meaning.) This makes his artworks resonate strongly among mathematicians, scientists, artists, and laypeople alike. Further, the wonderful visual impact of the artworks could also be accepted and experienced, even by children. Trends and fashion in art might change along with human civilisation’s progress, but the truth of mathematics never fades. As the noted English pure mathematician, Godfrey Harold Hardy (1877–1947) once said: “Archimedes will be remembered when Aeschylus is forgotten, because languages die and mathematical ideas do not. ‘Immortality’ may be a silly word, but probably a mathematician has the best chance of whatever it may mean” [15]. As people pay more and more attention to mathematics, art, aesthetics, and intelligence education, Escher’s artworks have attracted more and more mathematical attention, building on his legacy with tools not available in his day, specifically of the computer: Escherization [19], 3D Escher-like tessellations [16, 36], Metamorphosis [17], Escher transmutation [23, 31], hyperbolic tessellations [26, 32, 34], and f-tilings [25]. On the other hand, a common shortcoming of computer-generated patterns to laypeople is that they lack interest, of an abstract nature, and so are thus of less obvious appeal [21, 24, 29], whereas with a recognisable motif, as Escher-like, there is thus an obvious point of interest. However, trying to compose original Escher-like art to the same standard as Escher is not easy. Save for a few artists, the resulting tessellations are typically far below the standards of Escher’s own works. However, it should be pointed out that Escher’s artworks also possess some “mathematical” shortcoming in terms of accuracy, caused by the impossibility of drawing identical motifs one after the other by the hand; inadvertent imperfections arise. Admittedly, the differences are slight, but they still exist. This has implications when trying to adapt this type of rendering by computer.

Escher’s interest in the spiral, of both tessellation and itself, was quite extensive, especially of the mid-to-late 1950s. Seven overt works on the theme are identified, including “Development II” (1939), “Whirlpools” (1957), “Path of Life I” (1958), “Path of Life II” (1958), “Sphere Surface with Fish” (1958); a mural for the Aula of funeral service building in Utrecht (1958), and “Sphere Spirals” (1958) [12]. Except for “Sphere Spirals”, all consist of animal motifs. “Whirlpools” in style and concept can be described as the nearest relation to our work here. In turn, these artworks inspired many studies devoted to the creation of computer-generated spiral patterns [6, 8, 11, 27, 28, 35]. However, although spiral tilings are very decorative, there is extremely little mathematical literature on the subject (as against studies of the spiral itself), as first pointed out by Grünbaum and Shephard [13], which might otherwise have been thought studied much more than has happened. This is possibly related to the difficulties of defining a spiral tiling, which is surprisingly troublesome [14]. Indeed, it is still open to a degree even in 2017, with a paper by Bernhard Klaassen [20]. The first tiling related work is by Heinz Voderburg, as relatively recently as 1936 [33]. It should also be noted that there has been very little either on Escher-like spiral tessellations. The first after Escher appears to be by Andrew Crompton, who shows a bird tessellation based on the Voderburg tile as recently as 1989 [9]. Recently, also in 2017, there is a new application titled iOrnament Crafter for the iPad from Jürgen Richter-Gebert, which automatically deforms a given unit of an Escher-like tessellation into a spiral. Examples can be seen by the Escher-like tessellation artist Francine Champagne [7].

In [18], Kaplan introduced a simple method of generating Escher-like spiral tilings. The method is divided into two steps. In the first step, an image with a periodic tiling is generated, and in the second step, the image is transformed by the antiMercator mapping [10]:

$$\begin{aligned} f(z) = e^z. \end{aligned}$$
(1)

Examples of tilings generated with the software available in [18] are presented in Fig. 1.

Fig. 1
figure 1

Examples of Escher-like tilings generated with software available in [18]. On the left, we see a periodic tiling that later is transformed by the antiMercator mapping to the spiral tiling in the right

In this paper, we propose a direct method of constructing Escher-like spiral tilings. The proposed method generates tilings with a precise symmetrical structure (defined by a proper symmetry group) and can be implemented using shaders. Moreover, using computer graphics, with Escher-like tessellation templates, by David Bailey (hand-designed) and Alain Nicolas (computer-designed), we will present a simple, computer-driven method to generate elegant Escher-like spiral tessellations.

The remainder of this paper is organized as follows. In Sect. 2, we first use the tool of a symmetry group to construct spiral tilings of the cyclic symmetry. Based on it, we then introduce three conformal mappings to yield interesting derived spiral tilings. In Sect. 3, to obtain Escher-like spiral tessellations, we use pre-designed wallpaper motifs to render the resulting spiral tilings, and in Sect. 4, we present a rich gallery of Escher-like spiral tessellations. Next, in Sect. 5, we compare of our method with the method introduced by Kaplan in [18]. Finally, we conclude the paper in Sect. 6 and show some future directions.

2 Construction of cyclic spiral tilings and derived spiral tilings

In this section, we first consider spiral tilings of cyclic symmetry shaped by the logarithmic spiral. Then, based on the cyclic spiral tilings, we introduce several simple conformal mappings to construct derived spiral tilings.

2.1 Cyclic spiral tilings

The logarithmic spiral is a spiral whose polar equation is given by

$$\begin{aligned} \rho (\theta ) = e^{k \theta }, \end{aligned}$$
(2)

where \(\theta \in \mathbb {R}\) and \(k \in \mathbb {R}^+\). The k parameter determines the rate of growth. The spiral has the property that the angle \(\alpha \) between the tangent and radial line at any point of the logarithmic spiral is constant. Moreover, the angle \(\alpha \) and the parameter k are related to each other by the relationship \(k = \cot \alpha \). Examples of logarithmic spirals for various values of k are presented in Fig. 2.

Fig. 2
figure 2

Logarithmic spiral for various values of k: a 0.1, b 0.2, c 0.3, d 0.4

Assume \(M \ge 2\) and \(N \ge 2\) are integers, where \(M = m N\) for some \(m \in \mathbb {N}\), i.e., N|M. Moreover, assume that \(k \in \mathbb {R}^+\). In Fig. 3, let the origin and the positive x-axis of the Cartesian coordinate system coincide with the pole and the polar axis of the polar coordinate system. Denote by \(F_k(M, N)\) the polar region bounded by lines

$$\begin{aligned} \rho _1: \theta= & {} \frac{2 \pi }{M}, \end{aligned}$$
(3)
$$\begin{aligned} \rho _2: \theta= & {} 0 \end{aligned}$$
(4)

and spiral arcs

$$\begin{aligned} \rho _3(\theta )= & {} e^{k \theta } \text { with } \theta \in \left[ 0,\frac{2 \pi }{M} \right] , \end{aligned}$$
(5)
$$\begin{aligned} \rho _4(\theta )= & {} e^{k (\theta + \frac{2 \pi }{N})} \text { with } \theta \in \left[ 0, \frac{2 \pi }{M} \right] . \end{aligned}$$
(6)
Fig. 3
figure 3

The \(F_k(M, N)\) region for \(k = 0.2\), \(M = 8\), \(N = 2\) defining a spiral tiling of the \(G_k(M, N)\) symmetry

Let \(\mathbb {C}\) be the complex plane, and \(\arg (z) \in [0, 2 \pi ]\) be the main argument of \(z \in \mathbb {C}\). Then, in the Cartesian coordinate system, the \(F_k(M, N)\) region can be expressed as

$$\begin{aligned} \begin{aligned}&F_k(M, N) = \{z \in \mathbb {C} | 0 \le \arg (z) \le \frac{2 \pi }{M} \text { and }\\&\quad e^{k\arg (z)} \le |z| \le e^{k\left( \arg (z) + \frac{2 \pi }{N}\right) }\}. \end{aligned} \end{aligned}$$
(7)

Define two transformations \(\varphi \) and \(\psi \) from \(\mathbb {C}\) to \(\mathbb {C}\) as

$$\begin{aligned} \varphi (z)&= z \cdot e^{\frac{2 \pi }{N}i}, \end{aligned}$$
(8)
$$\begin{aligned} \psi (z)&= z \cdot e^{-\frac{2 \pi }{M}(k+i)}, \end{aligned}$$
(9)

where \(i = \sqrt{-1}\). According to the Euler’s formula \(e^{i\theta } = \cos \theta + i \sin \theta \), it is clear that \(\varphi \) is a counterclockwise rotation of \(\frac{2 \pi }{N}\) about the origin. Note that \(\psi \) can be rewritten as

$$\begin{aligned} \psi (z) = z \cdot e^{-\frac{2 \pi }{M} k} \cdot e^{-\frac{2 \pi }{M}i}. \end{aligned}$$
(10)

Now, we clearly see that the effect of \(\psi \) is equivalent to first a scaling transformation with a scale factor \(e^{-\frac{2 \pi }{M} k} < 1\) (i.e., reduction transformation) followed by a clockwise rotation of \(\frac{2 \pi }{M}\) about the origin. Consequently, essentially \(\psi \) is a clockwise spiral reduction.

Consider an infinite Abelian symmetry group \(G_k(M, N)\) generated by \(\varphi \) and \(\psi \), namely \(G_k(M, N) = \langle \varphi , \psi \rangle \). Next, we consider the action of the tile \(F_k(M, N)\) under \(G_k(M, N)\).

Let

$$\begin{aligned} A = \bigcup ^{+\infty }_{p = -\infty } \psi ^{p}(F_k(M, N)) \end{aligned}$$
(11)

be the region tiled by \(F_k(M, N)\). Note that geometrically \(\psi ^{-1}(z) = z \cdot e^{\frac{2 \pi }{M}(k + i)}\) is a counterclockwise spiral expansion (with the scale factor \(e^{\frac{2 \pi }{M} k} > 1\)). Thus, A consists of tiles obtained by a continuously spirally reducing and expanding tile \(F_k(M, N)\). Therefore, geometrically A is a spiral arm. On the other hand, by the definition of A and \(F_k(M, N)\), we see that \(\varphi ^q(A)\) (\(q = 0, 1, \ldots , N-1\)) perfectly cover \(\mathbb {C}\) without gaps or overlaps. More precisely,

$$\begin{aligned} \mathbb {C} = \bigcup ^{N-1}_{q = 0} \varphi ^{q}(A) = \bigcup ^{N-1}_{q = 0} \bigcup ^{+\infty }_{p = -\infty } \varphi ^q(\psi ^{p}(F_k(M, N))). \end{aligned}$$
(12)

Equation (12) gives a concise approach for constructing spiral tilings of cyclic symmetry, see Fig. 4 for an example presenting a spiral tiling of the \(G_{0.15}(9, 3)\) symmetry.

Fig. 4
figure 4

The construction of the spiral tiling of the \(G_{0.15}(9, 3)\) symmetry using (12). To simplify the notation, we denote—in the image—the \(F_k(M, N)\) set by F

Given \(k \in \mathbb {R}^+\), integers \(M\ge 2\) and \(N\ge 2\) satisfying N|M, by the method described above, one can construct a corresponding cyclic spiral tiling of \(G_k(M, N)\) symmetry. For convenience, we call the tiling as \(G_k(M, N)\) tiling. It is clear that \(F_k(M, N)\) is a fundamental region associated with the \(G_k(M, N)\) tiling, i.e., it is a connected set whose transformed copies under the action of a symmetry group cover the entire space without overlapping, except at boundaries.

The spiral tiling \(G_k(M, N)\) is defined by three parameters k, N, and M. These parameters give an easy way to change the structure of the tiling. In Fig. 5, we present examples of various tilings generated with the proposed construction method and varying values of the parameters. The k parameter is responsible for the rate of growth of the spirals, see Fig. 5a, b in which we fixed \(M = 12\), \(N = 6\), and changed k. The next parameter, N, is responsible for the number of the spiral arms that form the tiling, see Fig. 5c, d in which we fixed \(k = 0.3\), \(M = 15\), and changed N. Finally, the M parameter is responsible for the division along the spiral arm, see Fig. 5e, f in which we fixed \(k = 0.25\), \(N = 4\), and changed M.

Fig. 5
figure 5

Examples of spiral tilings of: a \(G_{0.2}(12, 6)\), b \(G_{0.4}(12, 6)\), c \(G_{0.3}(15, 3)\), d \(G_{0.3}(15, 5)\), e \(G_{0.25}(8, 4)\), f \(G_{0.25}(16, 4)\) symmetry

Because \(F_k(M, N)\) is the fundamental region, so each \(z \in \mathbb {C}^* {\setminus } F_k(M, N)\) is a transformed copy of some \(z_0 \in F_k(M, N)\) under the action of the symmetry group \(G_k(M, N)\) (see equation (12)). To generate Escher-like spiral tessellations, we need a fast algorithm that transforms the given \(z \in \mathbb {C}^* {\setminus } F_k(M, N)\) to a corresponding point \(z_0 \in F_k(M, N)\). The algorithm can be divided into the following four steps:

  1. 1.

    Let \(n_1 = \left\lfloor \frac{\arg (z)}{\frac{2 \pi }{M}} \right\rfloor \in \mathbb {Z}^+\), where \(\lfloor \chi \rfloor = \max \{ q \in \mathbb {Z} | q \le \chi \}\), and \(z_1 = \psi ^{-n_1}(z)\). We have \(0 \le \arg (z_1) \le \frac{2 \pi }{M}\).

  2. 2.

    Suppose \(e^{2 n_2 k \pi } \le z_1 \cdot e^{-\arg (z_1)(k + i)} \le e^{2(n_2 + 1)k \pi }\) for certain \(n_2 \in \mathbb {Z}\). (Note that \(z_1 \cdot e^{-\arg (z_1)(k + i)}\) is a real number.) Let \(n_2 = \left\lfloor \frac{\ln |z_1| - k \arg (z_1)}{2k \pi } \right\rfloor \) and \(z_2 = z_1 \cdot e^{-\arg (z_1)(k + i)} \cdot e^{-2 n_2 k \pi }\). Then, \(z_2 \in [1, e^{2k \pi }]\) is a real number.

  3. 3.

    Let \(n_3 = \left\lfloor z_2 \cdot e^{-\frac{2k \pi }{N}} \right\rfloor \in \mathbb {Z}^+\) and \(z_3 = z_2 \cdot e^{-\frac{2 n_3 k \pi }{N}}\). Then, \(z_3 \in [1, e^{\frac{2k \pi }{N}}]\).

  4. 4.

    \(z_0 = z_3 \cdot e^{\arg (z_1)(k + i)} \in F_k(M, N)\).

For convenience, we summarize the algorithm as pseudocode in Algorithm 1.

figure f

2.2 Derived spiral tilings

A mapping is conformal (angle preserving) at a point if it preserves oriented angles between curves through the point with respect to their orientation. Conformal mappings preserve angles and shapes of infinitesimally small figures, but not necessarily their size. Now, we introduce three conformal mappings with the help of which we can easily construct derived spiral tilings.

Let \(\mathbb {S}^2 = \{ (x, y, z) \in \mathbb {R}^3 | x^2 + y^2 + z^2 = 1 \}\) be the unit sphere in \(\mathbb {R}^3\), and \(P_1 = (0, 0, 1) \in \mathbb {S}^2\) and \(P_2 = (0, 0, -1) \in \mathbb {S}^2\). The stereographic projection of \(\mathbb {S}^2\) to \(\hat{\mathbb {C}} = \mathbb {C} \cup \{ \infty \}\) from \(P_1\) is the map \(\Phi _1 : \mathbb {S}^2 \rightarrow \hat{\mathbb {C}}\) given by the following formula

$$\begin{aligned} \Phi _1(x, y, z) = {\left\{ \begin{array}{ll} \frac{x}{1 - z} + \frac{y}{1 - z} i, &{}\quad \text {if } (x, y, z) \ne P_1, \\ \infty , &{}\quad \text {if } (x, y, z) = P_1, \end{array}\right. } \end{aligned}$$
(13)

where \((x, y, z) \in \mathbb {S}^2\). The inverse map \(\Phi _1^{-1} : \hat{\mathbb {C}} \rightarrow \mathbb {S}^2\) of \(\Phi _1\) is given by the formula

$$\begin{aligned} \Phi _1^{-1}(z) = {\left\{ \begin{array}{ll} \left( \frac{2 a}{a^2 + b^2 + 1}, \frac{2 b}{a^2 + b^2 + 1}, \frac{a^2 + b^2 - 1}{a^2 + b^2 + 1} \right) , &{}\quad \text {if } z \in \mathbb {C}, \\ P_1, &{}\quad \text {if } z = \infty . \end{array}\right. } \end{aligned}$$
(14)

where \(z = a + bi \in \hat{\mathbb {C}}\). Note that \(\Phi _1^{-1}\) maps the origin 0 to \(P_2\) and \(\infty \) to \(P_1\). Figure 6a illustrates a spherical spiral tiling obtained by projecting a cyclic spiral tiling onto \(\mathbb {S}^2\).

Fig. 6
figure 6

a Two different viewing angles of a spiral tiling of the \(G_{0.2}(40, 5)\) symmetry on the unit sphere obtained by stereographic projection. b A spiral tiling of the \(G_{0.2}(18, 3)\) symmetry based on mapping (15). c A spiral tiling of the \(G_{0.35}(24, 4)\) symmetry based on mapping (16)

Let \(\Phi _2\) and \(\Phi _3\) be, respectively, mappings from \(\mathbb {C}\) to \(\mathbb {C}\) defined as

$$\begin{aligned} \Phi _2(z) = \frac{z - i}{z + i} \end{aligned}$$
(15)

and

$$\begin{aligned} \begin{aligned} \Phi _3(z) = \Phi _3(x + iy)&= \tan (x + iy) = \frac{\sin (x + iy)}{\cos (x + iy)} \\&= \frac{\sin x \cosh y + i \cos x \sinh y}{\cos x \cosh y - i \sin x \sinh y}. \end{aligned} \end{aligned}$$
(16)

It is easy to check that the one-to-one linear rational transformation mapping \(\Phi _2\) maps i to 0 and \(-i\) to \(\infty \), whereas \(\Phi _3\) is a periodic mapping about the real axis with the period \(\pi \). Note that \(\mathbb {C}_j = \{z^* \in \mathbb {C} | z^* = \Phi _j(z),\ z \in \mathbb {C}\}\) for \(j = 2, 3\) are complex planes reshaped by the mappings \(\Phi _j\). Given a group \(G_k(M, N)\), for all \(z^* \in \mathbb {C}_j\), by Algorithm 1, we can transform \(z^*\) into a symmetrically placed point \(z_0 \in F_k(M, N)\). Thus, similar to the construction of spiral tilings shown in Fig. 4, we can produce derived spiral tilings characterized by \(G_k(M, N)\) and \(\Phi _j\) that have two or more spiral whirlpools, see the examples demonstrated in Fig. 6b, c.

3 Generation of Escher-like spiral tessellations

By wallpaper template, we mean a rectangle motif that possesses periodicity along the horizontal and vertical directions. The periodicity thus enables people to decorate the whole plane with only one pre-designed wallpaper template. For this convenience, the decorative application of wallpaper motifs can be found in almost all ancient civilizations. In this section, using pre-designed wallpaper motifs, we specify some implementation details of the Escher-like spiral tessellations.

Assume T is a pre-designed wallpaper template defined in \([0, s] \times [0, t]\), S is a spiral tiling characterized by the symmetry group \(G_k(M, N)\). The spiral tiling is defined in the whole complex plane, but we restrict it to a certain area \([a, b] \times [c, d]\) in which we will draw the Escher-like spiral tessellation.

Let \(z = x + yi\) with \(x \in [a, b]\) and \(y \in [c, d]\). We first transform z by one of the conformal mappings \(\Phi _j\) introduced in Sect. 2. Then, by Algorithm 1, we find the symmetrically placed point \(z_0 \in F_k(M, N)\) of \(\Phi _j(z)\). Denote by \(\theta = \arg (z_0)\) and \(r = z_0 \cdot e^{-\theta (k + i)} \in [1, e^{\frac{2 \pi }{N}}]\). Now, we need to map \(z_0\) to the area in which the template T is defined, i.e., \([0, s] \times [0, t]\). For this aim, we define

$$\begin{aligned} u&= \frac{(r - 1)}{e^{\frac{2 \pi }{N}} - 1}s, \end{aligned}$$
(17)
$$\begin{aligned} v&= \frac{M \theta }{2 \pi }t. \end{aligned}$$
(18)

It is clear that \(u \in [0, s]\) and \(v \in [0, t]\) since \(\frac{(r - 1)}{e^{\frac{2 \pi }{N}} - 1} \in [0, 1]\) and \(\frac{M \theta }{2 \pi } \in [0, 1]\). Having u and v, we assign z with the colour \((u, v) \in [0, s] \times [0, t]\) in T. Repeating this procedure for all \(x \in [a, b]\) and \(y \in [c, d]\), we obtain an Escher-like spiral tessellation decorated by T that has the symmetry characterized by \(G_k(M, N)\).

For convenience, we summarize the pseudocode in Algorithm 2 for rendering Escher-like spiral tessellations. In the algorithm, as the input, we give the parameters defining the spiral tiling (k, M, and N), one of the conformal mappings (\(\Phi _1\), \(\Phi _2\), or \(\Phi _3\)), a wallpaper template (T), and the area (\([a, b] \times [c, d]\)) in which the generated tessellation should be drawn. As a result, we obtain an Escher-like spiral tessellation. In the algorithm, if we use \(\Phi (z) = z\) instead of one of the three conformal mappings, then we obtain an Escher-like spiral tessellation of cyclic symmetry.

figure g

Let us observe that the computations—in Algorithm 2—for each point (lines 3–10) in the area \([a, b] \times [c, d]\) are made independently, so we can easily parallelize the computations. To obtain a high level of parallelism, we use computations on the GPU (graphics processing unit). For this purpose, we can use, for instance, OpenGL and GLSL (OpenGL Shading Language). When using OpenGL and GLSL, we divide the computations into two shaders, namely vertex and fragment shader. First, we draw a single rectangle with texture coordinates of the vertices set to (0, 0), (1, 0), (1, 1), and (0, 1). In the vertex shader, we compute the coordinates of the corners of the area \([a, b] \times [c, d]\) by using the texture coordinates. The rasterizer will automatically compute the coordinates of the other points, and they will be the input for the fragment shader. In the fragment shader, we place the computations from lines 4–10 of Algorithm 2. The template T is sent to the fragment shader as a texture.

4 Examples

In Figs. 78 and 9, we exhibit eight Escher-like spiral tessellations in which the employed wallpaper motifs are all hand-designed templates. In practice, it is very hard by hand to design a perfect wallpaper template that meets the translation periodicity of the wallpaper group. Escher’s works also suffer from the same shortcoming. For example, it seems that the template marked in the red box of Fig. 10a satisfies translational symmetry. However, the resulting tessellation displayed in Fig. 8a exists ugly discontinuous stripes, see the regions marked in the magenta boxes of Fig. 8a. Figure 7b is constructed by the template cut from Fig. 10b. Checking the tessellation carefully, one can also find some tiny discontinuous stripes, although the translational symmetry of Fig. 10b is treated very well. One of the special advantages of the hand-designed template is that the resulting Escher-like tessellation possesses outstanding artistic merits, which shows the effect close to real artworks.

Fig. 7
figure 7

a An Escher-like spherical bird tessellation of \(G_{0.3}(32,4)\) symmetry based on stereographic projection. b An Escher-like spherical bird tessellation of \(G_{0.6}(15,5)\) symmetry based on stereographic projection by the wallpaper template cut from Fig. 10b. c An Escher-like spherical fish tessellation of \(G_{0.4}(40,5)\) symmetry based on stereographic projection. d An Escher-like spherical bird–fish tessellation of \(G_{0.3}(14,7)\) symmetry based on stereographic projection

Fig. 8
figure 8

a An Escher-like bird tessellation of \(G_{0.25}(12,2)\) symmetry based on mapping \(\Phi _2\) by the wallpaper template cut from Fig. 10a. b An Escher-like two birds tessellation of \(G_{0.3}(10,5)\) symmetry based on mapping \(\Phi _2\). Because the employed wallpaper templates do not strictly satisfy the translational symmetry, the regions marked in the magenta boxes show that these two tessellations have some existing flaws

Fig. 9
figure 9

a An Escher-like fish tessellation of \(G_{0.12}(14,2)\) symmetry based on mapping \(\Phi _3\). b An Escher-like fish tessellation of \(G_{0.25}(16,2)\) symmetry based on mapping \(\Phi _3\)

Fig. 10
figure 10

The wallpaper templates marked in the red boxes of figures (a, b) are, respectively, used in constructing Escher-like tessellations shown in Figs. 7b, 8a

In Figs. 1112 and 13, we demonstrate nine Escher-like spiral tessellations in which the employed wallpaper motifs are all computer-designed templates. There is no doubt that both hand-designed and computer-designed templates require a very high level of design skill. However, compared with the former, computer-designed templates possess some special conveniences. For example, one can adjust or revise the templates on the computer conveniently so that they satisfy the accurate translation symmetry, as shown in Figs. 1112 and 13. Moreover, by revising the computer-designed template slightly, one could obtain rich Escher-like tessellations of completely different styles, for instance, see Fig. 13.

Fig. 11
figure 11

a An Escher-like spherical frog tessellation of \(G_{0.3}(20,4)\) symmetry based on stereographic projection. b An Escher-like spherical climber tessellation of \(G_{0.2}(9,3)\) symmetry based on stereographic projection. c An Escher-like spherical pterosaur tessellation of \(G_{0.3}(24,6)\) symmetry based on stereographic projection. d An Escher-like spherical fish tessellation of \(G_{0.35}(24,6)\) symmetry based on stereographic projection

Fig. 12
figure 12

a An Escher-like Pegasus tessellation of \(G_{0.25}(12,2)\) symmetry based on mapping \(\Phi _3\). b An Escher-like fish tessellation of \(G_{0.2}(9,3)\) symmetry based on mapping \(\Phi _2\)

Fig. 13
figure 13

a An Escher-like bee tessellation of \(G_{0.45}(12,3)\) symmetry based on mapping \(\Phi _2\). b An Escher-like bee tessellation of \(G_{0.25}(12,4)\) symmetry based on mapping \(\Phi _3\). c An Escher-like bee tessellation of \(G_{0.25}(12,2)\) symmetry based on mapping \(\Phi _2\). These tessellations are obtained by revising a same computer-designed bee template slightly

To achieve a better aesthetic effect, one needs to choose a proper parameter combination of \(G_k(M, N)\) so that the resulting tessellation be as beautiful as possible. Unfortunately, given a wallpaper template T, generally speaking, there is no universal way to indicate how to set parameters k, M, and N, which largely depends on T. We next introduce the geometrical meaning of k, M, and N.

Back to the spiral tilings shown in Fig. 5, it is clear that the parameter N represents the number of spiral arms in a tiling. By the cases demonstrated in Figs. 14 and 15, we next explain the function of the parameters k and M. First, by fixing \(k=0.18\) in Fig. 14, we see that the larger the M, the higher the density of the wild goose. Thus, the function of M features the density of motifs in a tessellation. Second, by fixing \(M=15\) in Fig. 15, we see that the larger the k, the more obvious the spiral is. Therefore, k depicts the size of the spiral force in a tessellation.

Fig. 14
figure 14

a An Escher-like spherical wild goose tessellation of \(G_{0.18}(32,4)\) symmetry based on stereographic projection. b An Escher-like spherical wild goose tessellation of \(G_{0.18}(8,4)\) symmetry based on stereographic projection

Fig. 15
figure 15

a An Escher-like wild goose tessellation of \(G_{0.3}(15,3)\) symmetry based on mapping \(\Phi _2\). b An Escher-like wild goose tessellation of \(G_{0.1}(15,3)\) symmetry based on mapping \(\Phi _2\)

5 Comparison of methods

In Sect. 4, we presented many examples of Escher-like spiral tessellations generated by the proposed method. In the literature, there is no description of a complete method of generating patterns in a similar style to the Escher-like presented by us. We can find various images of Escher-like spiral tessellations on some websites [7, 22, 32], but the authors did not explain the algorithms in details. We can only guess the methods used. Thus, we cannot present a detailed comparison with those methods. The only work in the subject of Escher-like spiral tessellation that contains the algorithm’s description is the one from Kaplan [18].

The method presented by Kaplan generates only line tilings, but Kaplan mentions that “this technique would work exactly the same on fancy Escher-like tilings with varying colours, internal details, and other artistic devices” [18]. However, he did not present any example of such tiling. Therefore, to compare our method with the one from Kaplan, we need to slightly modify our method so that it also generates line tilings. We do so by using \(\Phi (z) = z\) and modifying line 10 of Algorithm 2. To colour the given point, we do not use a texture with the motif, but based on the values of u and v, we decide whether the point is near the boundary (dark colour) or inside (light colour) the tile.

Both methods use shaders in the generation process, but there are some differences. Our method is fully implemented in shaders, i.e., all the calculations needed to obtain the tilings are made in shaders, and the tiling is generated directly. In Kaplan’s method, the generation is divided into two steps. In the first step, an image with a periodic tiling is generated. This is made on the CPU side, and the texture is then sent to shaders. In the second step, which is performed in shaders, the texture is transformed by the antiMercator mapping.

Now, let us see the visual differences between the methods. In Fig. 16, examples of Escher-like tilings generated by Kaplan’s method are presented, whereas in Fig. 17, examples generated by the modified Algorithm 2. Because there is no one-to-one correspondence between the parameters used by both methods, so when generating the tilings, we tried to obtain similar tilings. When in Fig. 16a we look at the tiling’s edges near the boundary, then we can notice blurry edges (see the areas marked in red). This is due to the fact that we transform the image with the periodic tiling, and to magnify it, we use interpolation. Thus, the quality of the tiling depends on the resolution of the periodic tiling image. If we look at the corresponding tiling generated by our method (see Fig. 17a), then all the edges are sharp, and there is no blurriness. This is the consequence of the fact that all the calculations are performed in the shaders, and we do not use any additional images/textures. Moreover, when we look at the tilings in Figs. 16 and 17, we immediately see one visual difference. Namely, in the tilings generated by Kaplan’s method, all the edges are spirals, whereas, in our method, we see spiral and straight edges. The straight edges are part of the tiling’s construction, so using our method, there always be such edges in the generated tiling.

Fig. 16
figure 16

Periodic tilings (left) and Escher-like tilings (right) generated with software available in [18]: a IH64 tiling with \(A = 2\), \(B = 4\), b IH66 tiling with \(A = 3\), \(B = 6\)

Fig. 17
figure 17

Examples of Escher-like tilings generated with modified Algorithm 2: a \(G_{0.45}(4, 2)\) symmetry, b \(G_{0.3}(12, 3)\) symmetry

Of course, there is one drawback of our method. Namely, in our method, we use tiles of the same type, whereas, in Kaplan’s method, we can use various plane tilings to obtain very interesting results. For instance, in Fig. 18, we see two examples of Escher-like tilings generated with Kaplan’s method using various plane tilings. However, for such tilings, it is hard to design a proper motif in Escher style.

Fig. 18
figure 18

Periodic tilings (left) and fancy Escher-like tilings (right) generated with software available in [18]

6 Conclusions

In this paper, we presented several strategies to obtain Escher-like spiral tessellations. To this end, we first introduced a way to construct spiral tilings of cyclic symmetry. The proposed method generates the spiral tiling in a direct way, and it is easy to implement with shaders. Next, we gave three simple conformal mappings to yield derived spiral tilings with whirlpools. Finally, to create Escher-like tessellations, we described how to embed a pre-designed wallpaper template into tiles of the considered spiral tilings and specified implementation techniques to realize Escher-like spiral tessellations in detail.

The accurate mathematical algorithms ensure the obtained spiral tessellations have a precise geometrical structure, which avoids the common manual error. On the other hand, to enhance the resulting Escher-like tessellations’ aesthetic, we employ as beautiful as possible wallpaper templates. We realize that the quality of the template decisively contributes to the aesthetic level of the tessellation.

Generally speaking, Escher-like spiral tessellations with hand-designed templates perform better since the resulting tessellations reflect traditional art, though almost everyone has more or less manual errors between adjacent spiral tiles. Keep in mind that one should draw the wallpaper template very carefully. In practice, we found that even a line of pixel error would lead to infinite incongruous gaps. In contrast, computer-designed templates could avoid this deficiency easily. However, spiral tessellations by computer-designed templates appear to be relatively rigid and mechanical, thus lacking the vitality of more traditional art drawn by hand. If we first use a computer to outline an accurate wallpaper template, we can then fill it with colour manually. This could avoid the above two defects. This is the work we want to carry out in the future.

The tessellations created in this paper have good aesthetic value and commercial potential. We have produced some porcelain paintings, vases, and woodcuts rendered by spiral tessellations, see some examples exhibited in Figs. 19 and 20. In practice, all the displayed Escher-like tessellations by mapping (16) were drawn in the region \([0, \pi ] \times [-\frac{\pi }{4}, \frac{\pi }{4}]\). In other words, they have exactly one cycle in the horizontal direction. The treatment has special advantages when making vases since two edges of the curled tessellations on the cylindrical surface can combine perfectly, see Fig. 19b. In the future, we plan to generate better Escher-like spiral tessellations and try to fire more exquisite porcelains.

Fig. 19
figure 19

a The left porcelain tessellation (35 cm \(\times \) 20 cm) was rendered in Fig. 12b; the right porcelain tessellation (50 cm \(\times \) 50 cm) was rendered in Fig. 11a. b Two vases (20 cm height, 10 cm diameter) based on Escher-like drawings (the left and right vases are rendered in Figs. 12a, 9b, respectively)

Fig. 20
figure 20

a A woodcut tessellation (45 cm \(\times \) 35 cm) based on Fig. 7b. b A woodcut tessellation (35 cm \(\times \) 45 cm) based on Fig. 11c