Escher-like Spiral Tilings

The artist M.C. Escher drew many lovely tilings, which he called “regular divisions of the plane”. He worked hard to ensure that his tilings were of lifelike animal forms such as birds and fish. He filled notebooks with hand-drawn sketches of tilings, many of which later found their way into his woodcuts. If you’d like a detailed account of these notebooks and their mathematical connections, I recommend Doris Schattschneider’s book Visions of Symmetry; A Google image search is also a quick way to see a lot of the drawings.

One of Escher’s lifelong obsessions was the representation of infinity in a finite work of art. He experimented with several ideas for fitting infinitely many tiles into a drawing, culminating in his famous Circle Limit prints based on hyperbolic geometry. But that’s a story for another day. Before that, he drew a number of tilings where tiles form rings or spirals that diminish towards a point at the centre of the drawing. I call your attention in particular to Fish, Path of Life I, Path of Life III, and Development II. His remarkable final print Snakes executes a cunning transition from a hyperbolic tiling near the edge of a disc to a spiral tiling near the centre. Since then, others have created similar drawings. For example, you’ll see a few in a gallery of images by Jos Leys.

Naturally, mathematicians and computer scientists have worked on techniques for creating new tilings in this style. For example, you can see some abstract spirals emerging in a Bridges paper by Robert Fathauer. It seems to me that there has been an uptick in this sort of work recently—I have been sent a few different scholarly manuscripts on spiral tilings to review for journals. However, these manuscripts go through painful contortions to attempt to express the construction of these tilings in awkward, unnatural ways. It turns out that there’s a beautiful and exceedingly simple idea for turning ordinary planar Escher tilings into spiral tilings, an idea I’d like to share here for anyone interested in pursuing research on this topic. It’s an old idea too—I include it in Section 5.3 of my 2002 PhD dissertation, and I certainly don’t claim to have invented it (more on this later).

Most of the rest of this post will explain the math needed to create spiral tilings. You’ll need to be familiar with some geometry, trigonometry, and the complex numbers. Even if you don’t want to work through the math, be sure to scroll down to the bottom: at the end, I’ll introduce a fun web-based tool I created to let you play around with these tilings yourself!

The Complex Exponential

We’ll start with the exponential function f(x)=e^x. Here e is Euler’s number, approximately 2.71828. The function is standard in modelling situations with rapid growth, like populations of organisms or compound interest.

We can extend the domain of the exponential function to the entire complex plane using standard laws for exponents together with Euler’s formula (Euler has a lot of things named after him!). For a given complex number z=a+ib, we end up with

    \[f(z) = e^z = e^{a+ib} = e^ae^{ib} = e^a(\cos b + i\sin b)\]

In other words, thinking for a moment in terms of regular Cartesian coordinates, a point (x,y) will get mapped to a new point (e^x\cos y,e^x\sin y), which can also be thought of (via polar coordinates) as a point at distance e^x from the origin, making a counterclockwise angle of y with the X axis. Note that the \cos and \sin functions repeat with a period of 2\pi; therefore, a vertical column of points spaced out by multiples of 2\pi, like fenceposts seen from above, will all get mapped to the same point by the exponential function. In practice, we might as well factor out this repetition: we can draw pictures by starting with a single horizontal slice of the complex plane of height 2\pi, and mapping its contents through f. What will that look like? We can start to get a handle on how images distort by looking at what happens to straight lines:

The picture on the left shows a square portion of our horizontal slice of the plane of height 2\pi, which becomes the picture on the right after mapping through the complex exponential. Let’s consider each of the lines shown on the left.

  • Sticking with Cartesian coordinates, the green vertical line consists of points of the form (x_0,y) for all values of y. These get mapped to points of the form (e^{x_0}\cos y, e^{x_0}\sin y) on the right. Or, letting r=e^{x_0}, we end up with the set of points r(\cos y,\sin y) for all y. In other words, a circle centred on the origin, as shown.
  • On the other hand, the orange horizontal line has a varying x and a fixed y_0, giving (e^x\cos y_0,e^x\sin y_0). The range of the real exponential function is all positive real numbers, so the image of the horizontal line is a radial line extending out from the origin at angle y_0. In our drawing the image of the orange line looks a bit like an infinite “wedge”; that happens because I’m mapping the full thickness of the line, and that thickness gets crammed into a tighter space closer to the origin.
  • General diagonal lines don’t map to simple shapes like lines or circles. It turns out that they become logarithmic spirals, where the slope of the line determines the pitch of the spiral. Logarithmic spirals arise frequently in nature (the Wikipedia page linked here gives some examples).

    Public Service Announcement: the so-called golden spiral is a logarithmic spiral whose pitch is related to the golden ratio. But not every logarithmic spiral is golden, and nature doesn’t favour golden spirals. You’ll often see the claim that nautilus shells are related to the golden ratio, but there’s simply no connection; they do grow (approximately) logarithmically, but there’s nothing forcing them to become golden spirals.

Notice also that although this mapping distorts space quite a bit, it does preserve angles: the angle at which two curves cross on the right is the same as the angle between the two original lines on the left. Such mappings are called conformal.

Already we can start to see how patterns of lines that repeat in the plane can be turned into interesting spiral patterns:

In general, as long as the top and bottom edges of the drawing on the left match up seamlessly, the exponential map will turn it into a seamless spiral drawing on the right. The effect is a bit like rolling the horizontal slice up into a tube and then looking down the length of the tube (but not really: things don’t shrink in perspective quite as they do with our mapping here). Looked at another way, if you have a pattern that repeats over the whole plane in some direction, you can rotate and scale the pattern so that the repetition is vertical and has length 2\pi. Then we know that the edges of the slice will line up.

My introduction to the mapping of patterns through the complex exponential function came from the 1992 paper “Two Conformal Mappings” by Robert Dixon, which I also cited in my dissertation. Dixon gave it the more evocative name “the antiMercator mapping”.

Periodic Tilings

A tiling of the plane is called periodic if there are vectors (i.e., arrows) in two distinct directions along which you can slide the tiling and have it match up with itself exactly when you’re done. For example, if your tiling is an infinite square grid, you can slide it horizontally or vertically by the edge length of a single square, and the tiling will look the same. We can even exploit this fact to make a animated GIF that loops forever:

These vectors are called translational symmetries of the tiling. The nice thing about symmetries is that if you perform several of them in sequence, the result must be a symmetry as well. In this case, if you have a set of vectors that are all translational symmetries, the sum of those vectors is also a symmetry. 

To sprinkle in a bit of notation, let’s say you’ve got a periodic tiling, and let \vec{v_1} and \vec{v_2} be two translational symmetries of that tiling, as described above. (We’ll want to assume they’re not parallel, though that’s not strictly required.) Let a and b be two integers, not both zero. Then the new vector a\vec{v_1}+b\vec{v_2} is a translational symmetry of the tiling. 

OK, then, here’s the punchline: we can rotate and scale the whole tiling so that the vector a\vec{v_1}+b\vec{v_2} is vertical and has length 2\pi. That puts the tiling into a configuration where the top and bottom edges of our canonical horizontal stripe line up, meaning that we’ll get a seamless drawing under the complex exponential map!

We now have a recipe that we can apply starting from any periodic tiling together with integers a and b. Let’s look at some examples based on a humble tiling of squares. Unlike the previous diagrams, I’m zooming out a bit to show some of the tiling above and below the 2\pi slice. The slice itself is bounded by the dashed horizontal lines. You can see that in each case I’m taking a different sum of horizontal and vertical square edges as my primary vertical repeat vector. The whole tiling is then oriented so that this sum of the two green vectors is vertical and has length 2\pi. Something quite nice happens here. Consider the 3\vec{v_1}+7\vec{v_2} tiling, for example. As you walk along any vertical line in the slice, you’ll pass three grid lines parallel to \vec{v_2} and seven lines parallel to \vec{v_1}. This fact is reflected in the spiral tiling: if you look carefully, you can see three spirals of tiles in one direction and seven in another! The colourings below allow you to count them up. The pattern holds in general: a spiral square tiling based on a\vec{v_1}+b\vec{v_2} will exhibit a spiral arms in one direction and b in the other.

Of course, there’s nothing here that restricts you to squares. Any periodic tiling of the plane can be combined with integers a and b and mapped into one of these spiral arrangements. Here are just a couple of examples; can you figure out the tiling and the values of a and b that were used to produce them? Note that I’m restricting myself here to simple geometric tilings, but this technique would work exactly the same on fancy Escher-like tilings with varying colours, internal details, and other artistic devices.

As I said, the idea of using the complex exponential function (AKA the antiMercator mapping) to produce drawings like these is far from new. The specific application to periodic tilings shown here isn’t new either, given that it appears in my dissertation from (gulp) more than 15 years ago. I don’t know of an earlier source for this small novelty, but I absolutely don’t think I came up with it myself. In fact, I believe it may have been the great tiling theorist Branko Grünbaum who pointed it out to me in person. I had the good fortune to interact with him while I was working on my PhD, and everything I’ve shown you here would have been immediately obvious to him.

Two Infinities Are Better Than One

I have one more trick up my sleeve. We can pass the spiral tiling through a different function of the complex plane called a Möbius transformation, a function of the form

    \[f(z) = \frac{az+b}{cz+d}\]

These are beautiful and fascinating functions. I don’t want to get too deep into their mathematical properties here, so I’ll say intuitively that a Möbius transformation can exchange a point at infinity with another point. If I pass a tiling through one of these transformations, I can grab infinitely many tiles that are arbitrarily far away and pack them into a point that looks like the centres of the spirals you’ve already seen. Better yet, I can keep the spiral centre I’ve already got, giving me a picture with two infinities! Here are two examples, one based on squares and one based on hexagons.

Again, this isn’t a new idea. Escher experimented with it in his print Whirlpools, and others such as Jos Leys have created similar designs.

By the way, it’s very tempting to try to repeat this trick and drag a third infinity into the picture. Sadly, that simply doesn’t work. Can you see why?

Try it Yourself!

If you’ve read this far (or even if you haven’t), now you have a chance to play with all of these ideas yourself.

Last year I released Tactile, a library for C++ and Javascript that makes it easy to write programs to manipulate and draw tilings. Part of my motivation in creating the library was that it would then be easier for me to write quick pieces of software to demonstrate or exploit ideas from tiling theory. And that’s what I’ve done here! I wrote a fun web-based editing tool that lets you draw tilings and experiment with transforming them into spirals. Tactile is based on isohedral tilings; happily, these are all periodic, and so they’re perfect for experimentation in spiral form.

Click here to launch the tool in a new window. It’s written to be usable from a touch device like a tablet (though I wouldn’t expect it to be usable on a small phone), but it will work fine with a mouse too. The many features deserve some elaboration. I explain the different controls below, using this annotated screen shot as a guide.

  1. There are four buttons. The “Fullscreen” button makes the spiral tiling take up the whole window. You can return to the full interface by tapping the button again. The “Animate” button moves the untransformed tiling automatically, making the spiral mapping rotate and scale. The “Help!” button brings you to this post (in case you found the tool without reading this post first). The “Save” button downloads the spiral tiling from your browser.
  2. This view lets you edit the shape of a single tile. Tap on a black edge to create a new vertex and drag it around. Long-press on a vertex to delete it. The grey vertices cannot be moved directly.
  3. Controls for the structure of the tiling. The top slider lets you choose a tiling type. There are 81 types encompassing triangles, squares, hexagons, and other base shapes. Each type uses a different number of additional sliders to control the arrangement of grey vertices on the left. Moving those sliders will change the overall configuration of the vertices.
  4. These two sliders are precisely the values of a and b discussed above, controlling the vector that will be mapped to cover the horizontal slice. You can actually set them both to zero; the program won’t crash, but it won’t draw anything.
  5. The regular Euclidean tiling. You can translate the tiling around by clicking and dragging, and see the effect on the spiral view. Horizontal and vertical translation map to uniform scaling and rotation, respectively. 
  6. A view of the resulting spiral tiling. Tap on the view to switch between a regular antiMercator mapping with one infinity, and a Möbius transformed picture with two infinities.

Conclusion

The combination of the complex exponential function and suitable transformations of periodic tilings offers a vast playground for creating beautiful and fun spiral tilings. 

Wow, this post ended up longer than I had planned. I hope the diagrams and pretty pictures helped it go down smoothly! For my part, this post and the accompanying software were at least in part a distraction from an upcoming grant deadline. Thanks for validating my brief escape from professional duties.

Comments

35 responses to “Escher-like Spiral Tilings”

  1. David Eppstein Avatar
    David Eppstein

    Re an earlier source for using the exponential map to make spiral tilings: I created a web page about this in August 1996, https://www.ics.uci.edu/~eppstein/junkyard/spiraltile/
    I think it’s very likely that others explored the same concept even earlier. My page points to Grünbaum and Shephard’s “Tilings and Patterns” (1987, pp. 520-522) as having some related ideas.

    1. Craig Kaplan Avatar
      Craig Kaplan

      Ah, that’s superb David, thanks for sharing it. It’s quite possible I would have encountered that page back in the day. I started my PhD in September 1996, and moved into tiling theory around 1997–1998. I was a regular visitor to your Junkyard, and found many important references there.

      There are some interesting differences in our points of view. Most obviously, some of my examples involve spiral tilings by pentagons. But as your analysis shows, these aren’t pure similarity tilings, because the pentagons must form (at least) two transitivity classes under similarities. The tilings you write about correspond to isohedral tilings that tile by translation alone, i.e., the types labelled as having a single “aspect” in Grünbaum and Shephard. For my money, it’s easier to start with such tilings and map them than to reverse-engineer the angles and side lengths of polygons that happen to close up into spirals under the developing map (that’s one of the “contortions” I spoke of in my introduction).

      Here’s a vaguely related question, since we’re here. I’ve been looking at the Doyle flower and Doyle spirals. Again, it takes some machinery to choose combinations of radii for the flower that yield a nice, non-overlapping spiral. It seems to me that again, it’s much easier to construct these spirals as the exponential mapping of a rotated and scaled hexagonal disc packing. Is there a reference for that point of view?

      1. Craig Kaplan Avatar
        Craig Kaplan

        Well, I guess Stephenson more or less implies this in the Circle Packing book (Figure 2.7 and Appendix C).

  2. Shaun Maguire Avatar
    Shaun Maguire

    Great post! What software did you use to make your figures?

    1. Craig Kaplan Avatar
      Craig Kaplan

      Ooh, I need a “making of” video. :-)

      It’s a mishmash. The actual spiral tilings were all saved from the tool I wrote. Most of the diagrammatic stuff, and the Euclidean square tilings, were drawn in Illustrator (with mathematical labels added via LaTeXiT). Then the spiral tiling images were pasted in directly or combined in Photoshop. The coloured spirals were painted by hand in Photoshop. The animated GIF was created using a separate tool I wrote for a paper on the subject earlier this year (see http://archive.bridgesmathart.org/2019/bridges2019-99.html)—I’m still hoping to write a longer blog post about that.

      The more freeform sketches of the exponential map at the start are the most embarrassing. I drew the Euclidean diagrams on the left in Illustrator, saved them as .ai files, converted them to flat Postscript using pstoedit, and then rendered them to pixels using a terrible, slow Python script.

      Anyway, I hope that’s useful. I’m happy to provide more details.

  3. Anders Kaseorg Avatar
    Anders Kaseorg

    “Sadly, that simply doesn’t work. Can you see why?”

    Why not! https://imgur.com/a/RUgpqLI

    1. Craig Kaplan Avatar
      Craig Kaplan

      Very nice! See also the thread on Twitter that started with Dan Piker’s response: https://twitter.com/KangarooPhysics/status/1168272509860552704

      The response to “why not’ is to note that your drawing has a hexagon in the centre, which isn’t the image of a tile from the original tiling. I wasn’t really saying that three limit points are utterly impossible, just that you can’t create more limit points by applying more Möbius transformations.

      Artistically, the hexagon might matter, or it might not. Your design is absolutely beautiful, but you’re stuck if you want the whole artwork to consist of copies of a single animal tile. I wonder what Escher would have done with this hexagon. Thinking about his Print Gallery, he might simply have left it blank and signed his name in the middle!

      1. Anders Kaseorg Avatar
        Anders Kaseorg

        I’ve added some alternative arrangements to the Imgur album with six squares meeting at one of the vertices, or three squares meeting at one of the edge midpoints. One or both of these might work depending on the symmetry group of the square tile.

        1. Craig Kaplan Avatar
          Craig Kaplan

          Yeah, I was thinking about that too! The six-square version is probably about the best we can do with this kind of singularity, and it would look good with any symmetric planar pattern that has p4 as a subgroup (i.e., anything with fourfold rotations). You could basically do the same thing I did in this old paper:

          http://www.cgl.uwaterloo.ca/csk/papers/kaplan_npar2009.pdf

          In fact you can probably do better than that paper. I believe your six-square version is two-colourable, which will allow you to cut out a smaller repeat unit to paste into all the squares in the design.

          How did you produce the drawing?

          1. Anders Kaseorg Avatar
            Anders Kaseorg

            I transformed a figure with 180° rotational symmetry with z ↦ z^(3/2) to get a figure with 120° rotational symmetry. Full Python code:

            import imageio
            import numpy as np

            width, height = 800, 600
            scale = 9 / np.sqrt(width * height)
            y, x = np.ogrid[-height + 1 : height : 2, -width – 1 : width : 2]
            z = ((x + y * 1j) * scale) ** (3 / 2) / (14 + 4j)
            w = (10 – 3j) / (2 * np.pi) * np.log((z + 1) / (z – 1)) + 1 / 2
            dist = np.minimum(np.abs(w.real – np.round(w.real)), np.abs(w.imag – np.round(w.imag)))
            imageio.imwrite(“out.png”, np.uint8(255) * (dist > 0.05))

      2. John Berglund Avatar
        John Berglund

        It makes sense that if we cut along a parallel line and then stich it together, we will get an infinite tube. We could look down one end of this and see a spiral. We could look down both ends and see two spirals. But then we run out of ends.

        The images shown by both Anders Kaseorg and Tis Veugen have higher n-gons within a tiling by squares. They have a hexagon and dodecagon respectively. (The triple spiral sunflowers for Tis Veugen.) These are locally hyperbolic. It’s like we have sewed in another sleeve (or two for the Triple sunflowers.)

        Has anyone explored making the whole tiling hyperbolic? Sort of like the Circle Limit ones by Escher, but grab some points at infinity and move them to the center. You could get as many sleeves and spiral points as you’d like, since we can always find more lines that are “parallel.”

        1. Craig Kaplan Avatar
          Craig Kaplan

          Amusingly, this is something I’ve been planning to explore in the medium future. I have nothing concrete yet, just a few ideas, inspired largely by Escher’s print “Snakes”, which blends between a spiralized Euclidean tiling and a hyperbolic tiling.

    2. Tis Veugen Avatar

      I recognized the pattern of your imgur image because of my recent efforts in applying transformations z → z^2 and z → z^3 to photo images. As a result “Wicked Wicks” is shown on https://www.tistis.nl/photos.html for both transformations. The points is that your transformation z → z^1.5 only works well on an image that is already rotation symmetric. For example, applying z → z^1.5 on the picture obtained from z → z^2 yields the picture obtained from z → z^3 . Transformating a non-symmetric image gives a cut at the negative X-axis.

  4. Darren evans Avatar
    Darren evans

    Fascinating stuff. Please consider making an app with SVG output!

    1. Craig Kaplan Avatar
      Craig Kaplan

      Thanks! I’ve had a few requests, and I’ll try to get to it later this fall. Obviously my initial goal was to create a fun little toy, not a fully featured app, but I might be able to add a few more features without letting the interface get away from me.

  5. Casimir Pohjanraito Avatar

    Amazing overview!

    You are an benefit to humanity.

    Big Fan,

    Casimir Pohjanraito

  6. Anonymous Avatar
    Anonymous

    Wow!

    I can think of some awesome applications for this! The code you’ve written is all under BSD-3? Is the interactive web-tool from this post open-source under the same license?

    What’s your prefered attribution?

    I’d love to do some hacking with it :-)

    1. Craig Kaplan Avatar
      Craig Kaplan

      Yep, all the code is BSD-3, including this new tool. I was thinking of adding it to the TactileJS Github repo if others wanted to play around with it—would that be useful?

      In any case, feel free to experiment, and let me know what you come up with. If you publish or disseminate anything, you can just mention me by name.

    2. Craig Kaplan Avatar
      Craig Kaplan

      Ah, why just talk about it? The code’s up here:

      https://github.com/isohedral/tactile-js/tree/master/spirals

      It’s not really documented, but it’s there if you want to take a look around. Have fun!

      1. Anonymous Avatar
        Anonymous

        thanks!

      2. Ryan Avatar
        Ryan

        Thanks, this is super informative!

  7. Robert Fathauer Avatar

    Very enjoyable read and well written. I have one small quibble, which is your definition of periodic: “A tiling of the plane is called periodic if there are vectors (i.e., arrows) in two distinct directions along which you can slide the tiling and have it match up with itself exactly when you’re done. ” It only requires a vector in one direction. If all the possible translation vectors were in the same direction, the tiling would be a bit dull, but still periodic. It would be described by a Frieze group rather than a Wallpaper group, but it could still fill the 2D plane.

    1. Craig Kaplan Avatar
      Craig Kaplan

      Rob, obviously there’s a subtlety there, and I don’t think there’s universal agreement about the best terminology for making this distinction. Note that Grünbaum and Shephard specifically define “periodic” in the plane to mean “translations in non-parallel directions” (Page 29), and I’m happy to go along with that.

      With G+S’s terminology, we’re left needing a term for “has translation symmetries, but the translation vectors span a subspace”. I think Doris suggested a term to me a while ago, but I can’t find it in my records.

      On the other hand, if we take “periodic” to mean “has at least one translational symmetry”, then we need another term for “has a compact subset that fills space via translation alone”, e.g., something like “fully periodic”. There’s no perfect solution.

      Of course, when you’re restricting things to isohedral tilings, there’s no difference, because you absolutely need two non-parallel translational symmetries in order to be isohedral.

  8. Philip Mallinson Avatar
    Philip Mallinson

    Do you have a reference for the “circle packing book” by Stephenson?

    Philip

    1. Craig Kaplan Avatar
      Craig Kaplan

      Sure! It’s _Introduction to Circle Packing: The Theory of Discrete Analytic Functions_ by Kenneth Stephenson. Cambridge University Press, 2005.

  9. Jacob Rider Avatar
    Jacob Rider

    How do you make such beautiful pictures? I’m interested in learning how to visualize mathematics in an aesthetically pleasing way like you have done in this post.

    1. Craig Kaplan Avatar
      Craig Kaplan

      Jacob, unfortunately there’s no one simple answer to your question. See, for example, my response to Shaun Maguire above, where I listed lots of software that I used to make the images in this post. Ultimately it comes down to a combination of experience with manual drawing tools (e.g., Illustrator, Photoshop), coding, and a conscious interest in graphic design and effective communication.

      If you’re just starting out, try learning to program using the web-based editor in P5.js (https://editor.p5js.org/); you can use the free software GIMP and Inkscape for drawing. But you should also sensitize yourself to what makes mathematical visualization works. Find examples you like, and steal the good ideas. Learn some basic graphic design principles. Find websites that do a really good job with math communication and study what they do that works. Maybe have a look at the 3blue1brown YouTube channel and mathigon.org, for starters.

      If you pick one picture of mine in particular, I might be able to provide more thoughts about how I created it.

      Good luck!

      1. Jacob Rider Avatar
        Jacob Rider

        Thanks for your thoughtful reply! I will definitely try out the editor you linked and consider your other advice for a starting point in my learning.

        I was specifically curious about the second picture in this post (which maps a grid with diagonal lines to circles, radii, and spirals through the exponential function). On a related note, would you mind if I use this picture in an undergraduate math presentation to visualize the exponential map on the complex plane?

        Thanks for your consideration,
        Jacob

        1. Craig Kaplan Avatar
          Craig Kaplan

          As I said in my earlier response to Shaun, unfortunately the program to pass things through the complex exponential was an ugly, embarrassing hack, and it’s for me not to share it. Basically, for every pixel in the output image, I passed that pixel through the complex *logarithm* (i.e., the inverse), and looked up the pixel from the original image at that location.

          There’s an old tool called MathMap (https://www.complang.tuwien.ac.at/schani/mathmap/) that might be useful in this context. There might be other similar tools, but I’m afraid I don’t have good references handy. You’d draw the original Euclidean image and then use MathMap to make the exponential one.

          BTW, if you do start working in P5.js, be sure to check out the online tutorials and book: https://p5js.org/learn/, https://p5js.org/books/.

          And yes, feel free to use those images in your presentation!

  10. Aislinn Borland Avatar
    Aislinn Borland

    Hi,

    Was wondering if you know exactly what Mobius transform you used to create the “two infinities” pictures (as in the values of a, b, c and d)? Or how to determine these values? I am trying to create something similar in MATLAB.

    Thank you!

    1. Aislinn Borland Avatar
      Aislinn Borland

      Update: I have found that using a=1, b=i, c=i, d=1 gives a lovely result but I cannot explain why.

      1. Craig Kaplan Avatar
        Craig Kaplan

        Yes, I was going to reply that it sort of doesn’t matter what Möbius transform you use. As long as you don’t try to use c=1 and d=0, you’ll basically get the same picture every time, modulo a global translation, rotation, and scaling. You could encode that global rigid motion in the choice of a, b, c, and d, but I think it’s easier to choose a “canonical” Möbius transformation (like f(z) = z / (1-z)) and then use regular Euclidean geometry to position the resulting tiling however you want. (I think I’m fudging here a bit, but that’s the general idea.)

  11. Sonny Avatar
    Sonny

    Hi Craig,

    First of great writeup, thanks for taking the time even if it was a number of years ago.

    I was trying to implement your simplified function (ex cos y, ex sin y) in Houdini and I end up with something that doesn’t match your diagram. Any ideas where I might be going wrong?

    Screenshot in link: https://imgur.com/JOn0Fa0

    Many thanks,

    S

  12. David Siriani Avatar
    David Siriani

    Hello! I’m a beginner programmer and I was inspired by this webpage to make a program doing something similar (though much less elegantly than your version to be honest) using p5js. The code itself isn’t particularly nice or clean or well documented but the visuals it makes are interesting I hope: https://editor.p5js.org/pleasantmadscientist/full/ytKr_fnVY
    After starting to look at Escher-like transformations I bumped into some mathematics you might find interesting (in the off chance you don’t already know about it). This article explained it quite well (although I still needed to learn a lot to understand it partially):https://web.archive.org/web/20180729091214/http://www.ams.org/notices/200304/fea-escher.pdf
    Finally here is my version of the Escher Print Gallery Transformation (I think it’s actually called Lenstra’s Transformation):https://editor.p5js.org/pleasantmadscientist/full/hnsC-SCJY

    1. Craig Kaplan Avatar
      Craig Kaplan

      Thanks for sharing your work!

Leave a Reply to Ryan Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.