------------------------------------------------------------------------ subtile - a program for generating and drawing aperiodic tilings which are generated by substitution, or composition, or inflation rules. Copyright 1995 by Roger Evans Critchlow Jr, San Francisco, California. Copyright 1998 by Roger Evans Critchlow Jr, Santa Fe, New Mexico, USA. Copyright 2004 by Roger Evans Critchlow Jr, Santa Fe, New Mexico, USA. Copyright 2021 by Roger Evans Critchlow Jr, Charlestown, Massachusetts, USA. All rights reserved, fair use permitted, no warranty, MIT License. rec@elf.org, August 28, 2021 ------------------------------------------------------------------------ This program was inspired by reading Marjorie Senechal's Quasicrystals and Geometry (Cambridge UP, Cambridge, 1995). I found with additional inspirations from Branko Gruenbaum and G. C. Shephard (Tilings and Patterns, WH Freeman, New York, 1987). And a host of web pages were consulted These programs were developed with the aid of materials which Marjorie Senechal made available at ftp://minkowski.smith.edu, namely Mathematica programs for computing some tilings and a C program, written by Stuart Levy, for computing the fourier transform of a set of points in the plane. ------------------------------------------------------------------------ There are three programs in this package: subtile.tcl - a program written in the Tcl language using the Tk GUI toolkit to compute and display substitution tilings. subtile consists of the main source file, subtile, several library sources in the directory ./lib, and tiling implementation files in the directory ./tiling. fourier.tcl - a program written in the Tcl language using the Tk GUI toolkit to compute and display fourier transforms of point sets in the plane. fourier consists solely of its main source file, fourier. If possible, it compiles and uses the C program _fourier.c to actually compute the fourier transform. fourier.c - a program written in C to compute fourier transforms of points in the plane. It is based on Stuart Levy's program with the computation somewhat rearranged. ------------------------------------------------------------------------ Acquisition and installation. The sources are available from: https://github.com/recri/subtile They require the tcl programming language and the tk graphical user interface toolkit. These are often installed by default on Linux or at least easily pulled from standard system archives. More information is available at https://www.tcl.tk/software/tcltk/. The supplied Makefile will compile fourier.c, if possible and it should be possible on any unix machine that hosts a C compiler. ------------------------------------------------------------------------ Using the programs. subtile uses the Tk GUI toolkit to present a graphical user interface. You can probably use it without these instructions, just type subtile to get it going. subtile presents a simple menu and a catalog of initial tilings. The menu allows you to display this documentation or quit. Click with the left mouse button on an initial tiling to select it. A subtile window will be drawn with the selected tiling and a menu of operations. The operations menu may be modified as operations are performed. The operations menu always provides entries for: resetting the current tiling to its initial subdivision. subdividing the current tiling. computing the vertex atlas of the currently displayed tiling (sometimes). computing the fourier transform of the current tiling. saving a postscript drawing of the current tiling. enabling tile by tile display rather than waiting for all tiles to be drawn. enabling overlay of successive drawings. The operations menu will also present tiling specific operations. Specifically, the Penrose tilings implement operations for interconversions among: kite and dart tiling A triangulation B triangulation rhombic tiling And if you want the subdivide a Penrose tiling, you should convert to the A or B triangulation first, subdivide, and then anneal back to the original tiling. The subtile window may be resized under window manager control. The subtile window may be scrolled using the scrollbars which are adjacent to it, or by pressing the middle mouse button inside the canvas and dragging the canvas in the desired direction. The tiling may be scaled in size by pressing the right mouse button and dragging toward or away from the upper left corner of the window. Scrolling and scaling may be done while a tiling is being constructed if tile by tile display is enabled. The tiles in a displayed tiling may be deleted by clicking on them with the left mouse button. Deleted tiles may be undeleted by clicking on them with the left mouse button, too, if you remember or can guess where they are. The fourier program presents menues for: operations to be performed size of image to be computed srange, or the range of fourier space to be computed brightness of the image displayed The transform is computed without any brightness scaling so the brightness may be adjusted after the transform computation is begun. A good strategy is to use small image sizes, eg 64, until you've found the appropriate srange, because the transform requires size^2 computations to complete. ------------------------------------------------------------------------ -- rec@elf.org -- August 28, 2021