QuasiG V1.4 is a freeware Penrose tiling program that will show and print full-colour Penrose tiling patterns, and more general quasi-crystal patterns, on any Windows 95/98 or NT/2000 PC.

BackGround | Using QuasiG | QuasiG Options | Features | Examples | Animation | Tile Marking | Penrose Marking | Storey Hall | Printing this page | Links | Download

Background

Quasi-crystal tilings are assembled from two rhomb shaped tiles (squashed squares with equal length sides). The smaller angle in one rhomb is half that of the smaller angle in the other rhomb. The angle divides into p (PI) an odd number of times (n), and this number (n) gives the degrees of symmetry that can be observed in the pattern (you can find parts of the pattern which can be rotated n times through the smaller angle and still look the same).

Penrose tilings are a subset of these in which there are 5 degrees of symmetry (n = 5 ), and in which tile edges are matched to satisfy the patterns in Figure 1 at left (see examples in Penrose Marking section below )

Tilings are constructed by finding ways of combining the 2 angles possible with each of two tile orientations so as to add up to 2p (2 x PI). For example, with n = 5, there are 7 different ways to arrange the tiles at a vertex.

Eric Weeks's site provides an explanation for the methods used in an algorithm that can generate such tilings ( see quasi.c http://glinda.lrsm.upenn.edu/~weeks/software/quasic.html) .

 

For other sites explaining more about non-periodic tilings, see the links section below.

Eric's quasi.c, on which this is based, does not enforce the strict tile-matching rules that the classic Penrose tilings have. Nor could it draw them. But it's source code can be adapted to produce them. And, the non-penrose patterns can be just as interesting.

Using QuasiG

Using QuasiG is meant to be simple. It has default input values that will produce a simple image of penrose tiling. Experiment with the various options to see what they do (example images below include a summary of the options in the title bar, so you might like to try creating them to prove your installation worked).

If you're not familiar with Weeks's quasi.c, just download QuasiG and play around a bit !!

QuasiG options are accessed through its Tiling Options Dialog pop-up. This dialog appears when you run the program, and whenever you access the File/New menu item.

Depending on options selected, you may be presented with a series of color dialog popups. These are for selection of Penrose Dot color, Penrose Line Color, and color code for each unique tile area.

The program then calculates the pattern, and displays it in a scrollable window that's 32 cm by 32 cm. If Penrose Tile marking is selected, with large number of generating lines, or a slow computer, expect significant delay.

You can open up new tiling windows by File/New - and your previous options become the default selection for the new window. This makes it easy to make just small changes from one plot to the next.

QuasiG Tiling Dialog Options

  • Degrees of Symmetry - Choose an odd number. For example, 5 for penrose tiling. Rhomb angles will divisible by p / 5. Higher numbers can be interesting.

  • Generating Lines - choosing more of these makes the pattern larger. You can choose really small numbers like 5, 7, 9 ... to see how the construction process works. QuasiG has options to scale the tiles down to ensure they fit on the scrolled view.

  • Offset Multiplier - a factor that changes the offset of the generating line sets, and thereby changes the pattern quite significantly. For example, try 0.1, 1, 10, etc.,.

  • Center of Pattern - tick to include only central tiles in the pattern. Tiles which do not adjoin at least two others are omitted. For 5-fold symmetry, you get a central decagon shaped pattern.

  • Fill On - tick to have tiles filled with user-selected color. You will be prompted for a choice of color for each differently sized tile (one for fat, one for thin).

  • Double Colors - tick to have tiles filled with two colors used for each sized tile. This is Weeks' filling option, and gives two colors for each tile shape that seem to get allocated alternately as you radiate out from pattern features.

    For this option, when you choose colors, you a really just defining Hue and Saturation - lightness is determined in the algorithm as one of two shades for each size of tile.

  • Gradient Fill - tiles are filled in a variant of the Double Color method. Lightness is varied amongst the same sized tiles (in a cycle length equal to the degrees of symmetry). This tends to hide the symmetries in the pattern - but I liked the look of the results it gave; and so did curious onlookers passing by my desk. For this option, when choosing colors, you are also just defining Hue and Saturation.

  • Rotate x==y - just exchanges x and y directions. Most decent bitmap editors (e.g. PaintShop Pro, Corel Draw) will do this sort of thing and more !

  • Tile Edge Black - ticked means edges of tiles drawn in black. If cleared, tile edges drawn in same color as tile (so they effectively disappear).

  • Penrose Match Marks - each tile is inscribed as per Fig 1 above. If marks don't line up in a pattern, it's not a penrose tiling.

  • Arcs Not Lines - tick to get arcs inscribed in fat tiles as per Fig 1 above. Otherwise, get lines across the fat tiles. Defaults to arcs

  • Auto Zoom Out - if set, QuasiG determines the overall size of the pattern, then scales it back to fit within MS Windows' limits (roughly +/- 16 cm of origin). If clear, no scaling is done - you get to see just the 32 x 32 cm subset of the pattern that's centered on the origin. QuasiG's rhombs have 1 cm length sides.

  • Magnification - allows you to specify a magnification factor. If less than 1, the pattern is shrunk (zoomed out). If larger than one, pattern is enlarged (zoomed in).

  • Quadrants to Plot - push-button selections determine which quadrants of the cartesian plane are plotted.

  • Start Tile - default is 0 - meaning omit no tiles from display. 10 means do not plot first 10% of tiles etc.,. Useful if you want to isolate a subset of tiles.

  • End Tile - default is 100, meaning tile plot ends at last tile generated. 90 means do not plot last 10%, 80 selects out the last 20% etc.,.

  • Writing Delay - non-zero value will cause CPU to spin it's wheels in between drawing successive tiles - thereby slowing down the drawing process (so you can see what's happening !)

  • Penrose Dot Color Dialog - choose, or mix a custom color for use in the fat tile narrow vertex (dark color in Fig 1). The lighter dot used in the thin tiles gets the same color as the lines (arcs)

  • Penrose Line Color Dialog - choose, or mix, a custom color for use in the lines (arcs) across the width of the fat tiles.

QuasiG Features

  • QuasiG can show variants of quasi-crystal tiling that are different to the one chosen by Eric's algorithm, such as ones with stars made of a cluster of ten thin tiles ( I first made one like this with Eugenio Durand's QuasiTiler web site, then experimented with Eric's code to get it to make something similar)

You might find it necessary to increase the number of lines used in the generator if you increase the offset multiplier factor much above 20.

Eric's quasi.c defaults are equivalent to OffsetMult = 1. Choosing patterns other than Erics' standard results in no obvious focus, and other interesting higher-level patterns (see example below).

  • QuasiG has a number of co-ordinate reporting and tile identification features for help in understanding the tile drawing sequence (try mouse right click on a completed drawing, maybe using a small number of generating lines eg 5, then watch what happens when you increase the number of lines).

  • QuasiG can reveal some interesting patterns not shown in quasi.c:

  • it can plot all four quadrants of the cartesian plane, and not just the small segment revealed by Weeks's quasi.c.

  • this larger plot shows limits in the tiling pattern, and some assymetries in the pattern.

  • For example, with 5-symmetry, you can get a central decagonally shaped tiled region (more evident for larger line sets), with color coding that reveals "lines" running through the pattern that divide it into segments of a pentagonal star (choose, say, offset multiplier 10) ;

  • non-continguous tiles can be seen to be distributed out to the points of a decagonal stars (two five point stars) that can be superimposed over the central pattern.

  • Many of the lines running through the default pattern converge on a point in the 3rd quadrant that looks quite different to most of the pattern and which draws your focus.

I'm no maths prof, so I don't know what these mean ! But my guess is they're evidence of periodicities that mean the pattern does not satisfy the Penrose matching tests.

Please e-mail kd@condellpark.com.au if you can shed some light on this !!!

QuasiG also has

  • an auto-zoom scaling option that allows the full extents of the plot to be viewed, or you can use hand-entered magnification factors.

  • A Start Tile (as % of Tiles) and End Tile option allows selection of drawing of a range of tiles, which can be used to build animations of the drawing process (see animation example below)

  • The mid-point connecting options available in quasi.c have not been implemented - my main interest was in looking at the more straightforward patterns.

  • You can have up to 500 generating lines - but beware that you would need > 110 Mbyte of virtual memory to run a 500 line example, and could run out of memory (e.g. if your disk with the swapfile hasn't enough free space).

  • QuasiG also uses a different drawing order to Weeks's Unix program. Weeks's program plotted tiles from the center of the pattern outwards - this is probably best if plotting on an x-y plotter, but not needed for Screen display and page-display printers. So QuasiG justs plots the tiles in the order they are generated. I found it interesting to watch the tile generation (minimize/maximize the window for action-replays!), and included a delay option to slow down the drawing process. This can be helpful if trying to understand the algorithm.

  • QuasiG displays it's output in a scrolling window that extends +/- 16 cm either side of the origin, and has an auto-zoom scale (Magnification) feature that will set the magnification at a figure that allows the whole pattern to be viewed. You can use the File/New option to open additional windows - Tiling Options will default to your last choice.

QuasiG Examples

The image below is an example of QuasiG's screen output for 5 degrees of symmetry, auto-scaling on, central pattern only, fill on, black edge on, color-doubling on, color gradient off, all 4 quadrants displayed, and 30 generating lines (I used PaintShop Pro's screen capture to get this). The title bar summarises the options selected - in this version Offset Multiplier was 1.

And here's an example of the full pattern display (or at least the viewport that fits on one screen, on the real thing you can scroll to view the rest) (also Offset Multiplier 1):

And here's an extract of a pattern not available in Eric's version (offset multiplier set to 10, black edges off):

The Border image

The border image for this page was produced by using QuasiG in non-colour mode, and then capturing the image with Paint Shop Pro. I then did lots of fiddling, starting with embossing the image (hoping to make a watermark), and adjusting the colors, until this image emerged (i.e. I can't remember exactly what I did, but eventually I liked it enough and saved it as a JPG).

Animation Example

The image below is an animated GIF comprised of 3 frames showing several subsets of the 5-symmetry patterns. The first frame starts 20% into the generating sequence (Start Tile % as 20%), and ends at 30%; the next two frames extend this by 10% each frame.

Selection of tile subsets such as these was a new feature in QuasiG V1.3.

Click here to download a longer animation sequence (184K bytes) sym5_30_100_ani.gif. This longer sequences finishes with a frame showing 100% of the tiles.

Caution: Animated gif's drawn by your browser should have 1.5 seconds between frames, but a heavily loaded PC or an otherwise slow drawer won't get the right effect here. These animated GIF's were tested on an NEC Versa LX laptop with 300MHz Pentium II processor. Using Internet Explorer 5.5 as the browser, each frame tended to get rendered in 3 steps (from top to bottom of image, not how QuasiG works !).The longer sequence taxed it's capabilities heavily.

Tile Marking

Tile Marking was a new feature in QuasiG V1.3. It's useful for investigating the sequence in which tiles are drawn. Read further only if you're curious about how it works...

Quasi G - Tile Marking sample screen

The Status bar identifies the Tile No of the tile under the cursor. The Tile No is its index (or order) in the generating sequence; if the cursor is not over any tile, the Tile No will be one more than the maximum number of tiles.

Tiles can be marked by clearing their colour, as an aid to identifying the drawing progression. Mark an individual tile by left clicking on it - it's colour will be cleared. If you mark a second tile, the SkippedTiles box of the status bar reports how many tiles were drawn between the last and previous tiles. This is not how many lie between them on the tiled plane - rather it is how further along in the generating sequence the tile occurs.

The Status bar now includes reporting of the (x,y) coordinates of the cursor. Coordinate axis can be superimposed on the image, by using the Tile Marking Pop-up Menu item Draw Axes . To activate the Tile Marking pop-up, right click the mouse anywhere on drawing.

The tile drawn immediately after a marked tile can be identified by Tile Marking menu Next Tile function. This can be repeated to show successive tiles, but only the last S tiles remain marked (where S is the Degrees of Symmetry). Prev Tile marks the previous tile in the sequence

The Tile Marking menu Next Row function identifies the tile drawn in the next row (there are 2 * S tiles per row). Prev Row goes tothe previous row.

Are these Penrose Tiles ?

Many of the patterns generated by QuasiG allow clusters of thin tiles where more than 2 thin tiles share a vertex, and are all adjoining. These don't follow the Penrose tile edge matching rules. The next image almost seems to satisfy the matching rules - it's difficult to spot any "lines" running through it. But the Penrose matching rules can not be applied to it.

If you want to investigate this further, one interesting line might be to note that Durand's QuasiTiler needs irrational numbers to select tilings that will be Penrose tilings. Maybe the initial positions of Eric Weeks' generating lines needs to obey some constraint that's equivalent to Durands.

The next image used an Offset Multiplier of 0.2137.

Penrose Tile Marking

Now for an image that is a penrose tiling. This one has OM=0.10, and has penrose marking applied to the tiles:

The corresponding diagram for OM=0.2137 shows the mismatches:

Penrose Tiling at Storey Hall

Storey Hall Interior,
Click for full size image, 134 KbFor a remarkable application of Penrose Tiling, see the RMIT University's Storey Hall Auditorium in Swanson Street, Melbourne, Australia (click on image at right to enlarge).

The facade and interior of this building were decorated with patterns derived from penrose tiling It is an eye-catching statement which advertises the University's technical history. Can you imagine how much work and money must have gone into this ?

Located in the heart of the Melbourne CBD, the second largest city in Australia, RMIT is a University which morphed from the Royal Melbourne Institute of Technology. It seems fitting that a building housing an institution with a strong history and interest in technology should be morphed into a statement by clever mathematics and architectural sculpture.

The work, completed in October 1995, won numerous Architectural awards. I became aware of it only after posting this web-page, thanks to a architecture book review in a Sydney newspaper magazine. You can find out lots more about the Storey Hall at the RMIT web site (http:\\www.rmit.edu.au) (but at writing time, they'd messed up their picture links).

The Storey Hall patterns uses Penrose matching marks which inspired me to add them to QuasiG. In Storey Hall's patterns, both circle markers have been given the same colour and the fat tile arcs have been drawn as straight line segments. That's easier to construct (even in MS Windows, more so in the Hall) - and the difference is only aesthetic. My first attempts used straight lines, and looked pretty much like the Storey Hall images.

QuasiG Techo Details

You don't need to understand a word of the next two sections in order to use QuasiG. These words are for the techo types out there...

QuasiG is written in Visual C++ V6.0, as a 32 bit MDI application using MFC classes. It was my first attempt at writing such an application, and does some unusual things - like popping up its configuration dialogs before you've seen a main window frame, and maximising the document window (you can use the Window/Cascade or Tile options to change the latter after the windows open).

QuasiG Memory Stress

QuasiG generates the tiles to memory (rather than directly to display). It uses the MFC CArray class which dynamically allocates space for tiles; the memory is released when the display window is closed - and varies in proportion to s/2*(s-1)*l^2 where s=symmetries, and l=lines. It can be interesting to plot the Windows 95 System Monitor's memory manager items while running QuasiG. It also gives your graphics adaptor a pretty serious workout (when running in colour fill mode), and can stree remote login software like RAdmin, TNG Unicenter and PC Anywhere.

Printing this Page

Printing with many browsers (including IE5.5 and earlier) often doesn't work real well because most browser print functions don't handle the horizontal scrolling view you get on screen. This page has been put together to facilitate printing the text on an A4 page - essentially you will see everything within the white area of the background.

However, many of the images extending outside this area will get clipped out. You could try changing your print setup options to select landscape printing layout (but they'll mostly be split across a page).

If you really want to print the images, make them with QuasiG and print directly from its File/Print menu item. This will print the screen image across 4 A4 size pages (A4 tiles !) - the screen plot area is 32 cm by 32 cm, and prints isometrically (1 cm of screen = 1 cm of page).

Links

The following links all worked as of July 19, 2002. If you find them broken, email me

In July 2002, Dutchman Frans C Mijlhoff advised me of his freeware QCTilingsC Windows tiling program which is like QuasiG and can be downloaded from Simtel. QCTilingsC (v 1.3) can show the generating lines as well as the pattern, and does even-symmetry pattterns. There other differences with QuasiG, so you might want to have both !

Frans' gave me a tip for a great site for links related to tiling : the Geometry Junkyard - Tiling page. The Geometry Junkyard - Penrose page has numerous links related to penrose and non-periodic tiling.

For links to other Windows Penrose tiling patterns, see Dr Matrix's Programming Challenge. Dr Matrix's site discusses penrose tiling properties more formally. He uses a kites and darts terminology, which are two or three adjoining fat and thin Penrose rhombs.

Dr Matrix also highlights the ways in which the golden-ration golden ratio of (1+SQRT(5))/2 = 1.61803398 . . . can be found in the Penrose patterns.

It is well worth a visit for the mathematically inclined. Here is a quote from Dr Matrix:

Although it is possible to construct Penrose patterns with a high degree of symmetry (an infinity of patterns have bilateral symmetry), most patterns, like the universe, are a mystifying mixture of order and unexpected deviations from order.

As the patterns expand, they seem to be always striving to repeat themselves but never quite managing it. G. K. Chesterton once suggested that an extraterrestrial being, observing how many features of a human body are duplicated on the left and the right, would reasonably deduce that we have a heart on each side. The world, he said, "looks just a little more mathematical and regular than it is; its exactitude is obvious, but its inexactitude is hidden; its wildness lies in wait." Everywhere there is a "silent swerving from accuracy by an inch that is the uncanny element in everything . . . a sort of secret treason in the universe." The passage is a nice description of Penrose's planar worlds.

There is something even more surprising about Penrose universes. In a curious finite sense, given by the "local isomorphism theorem," all Penrose patterns are alike. Penrose was able to show that every finite region in any pattern is contained somewhere inside every other pattern. Moreover, it appears infinitely many times in every pattern.

Another source expounding on penrose tiling is Andrew Lewis's Some Planar Tilings http://penelope.mast.queensu.ca/~andrew/qc web site. Or you could try Eugenio Durand's QuasiTiler site - a useful resource for tiling and tesselations facts.

In June 2000, there was a very good introduction to quasi crystal's and penrose tiling at Chris Hillman's Tiling Dynamical System's web site at the University of Washington. It has dissappeared, but it may be worth a look just in case Chris discover's how useful it was and reinstates it.

Last Revised 19th July, 2002, First published 19th June 2000. CopyRight and All Rights Reserved, Kevin Duffy. This material may be used for educational non-profit purposes with proper acknowledgement of the source. If any images created with QuasiG are posted on the net, send me the link url. All other uses, please email kd@condellpark.com.au


Back to Kevin Duffy's Home Page