recri / subtile

generate aperiodic tilings by substitution or composition rules

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

------------------------------------------------------------------------
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



About

generate aperiodic tilings by substitution or composition rules

License:MIT License


Languages

Language:Tcl 99.1%Language:C 0.8%Language:Makefile 0.1%