This documentation describes the user interface of Tissellator. The steps on the homepage and this page help you to create your tessellations. Also have a look at the Transformations page and the Animations page. If something is unclear, or if you want to report comments and/or bugs, please mail me.
The user interface of Tissellator consists of the menu bar, menu icons,
status bar, the view, and dialog windows.
N.B. Mac users should read Command+X instead of Ctrl+X.
File  Main operations 
New (Ctrl+N)  Start a new project.  
Open (Ctrl+O)  Load an existing project from a TIS file. 

Recent  Load a recent, existing project. Up to 8 project names are saved.  
Save (Ctrl+S)  Save the project to the current TIS file.  
Save As (Ctrl+Alt+S)  Save the project to a new TIS file.  
Export Image 
Save the tessellation in the view (including the background) to a
PNG file. The fill mode determines what is actually saved. The size
of the image equals the size of the view. 

Export Outline as SVG 
Save the outline of the basic tile to a SVG file.  
Exit  Stop the program. 
Edit  Edit operations 
Undo (Ctrl+Z)  Undo the last action.  
Redo (Ctrl+Y)  Go back to a later state.  
Delete Point (Ctrl+D)  Delete the selected point. 

Unselect Point (Ctrl+U)  Unselect the selected point.  
Join 2 Points  Move a point to the neighbour point that is very close to it.  
Toggle Point Mode  Change the mode of a point from Cubic to Linear, or vice versa.  
Move Point to ..  A dialog asks you for the coordinates of the new location.  
Toggle fill (Ctrl+F)  Toggle the fill mode between (1) outline and all tiles filled, (2) outline and base tile filled, (3) only outline  
Hide outline (Ctrl+H)  Hide outline and filled tiles. This will show the full background. 

Reset zoom 
Set the zoom factor to 1, and move the panned offset to the center.  
Show transformations (Ctrl+Shift+T) 
Show the arrows indicating the transformations: translation, glide, rotation, mirroring. 
Tessellation  Tessellation operations 
Save Outline Image  Save the outline of the basic tile to a PNG file.  
Load Background (Ctrl+B)  Load a background image, that is used for creating the
tessellation. If the image is bigger than the view, then only the
top left part of the image is taken. 

Toggle Background (Ctrl+T)  Show/hide the background image.  
Create Tessellation  Create the tessellation according to the outline and using the background image.  
Load Multi Background (Ctrl+M)  Load several background images, that are used for creating the tessellation.  
Cycle Multi Background (Ctrl+C)  Cycle through all background images. 

Create Multi Tessellation  Create the tessellation according to the outline and using multiple background images. 
N.B. After loading a new (multi) background image, a new (multi) tessellation must be created before being able to perform a transformation operation of the tessellated image.
Transform  Transformation operations 
Background image  Image from 'Load Background'; the whole image is used, and its
size may differ from the view size. 

Circle Background  Create a circular tessellation from the background image.  
Spiral Background  Create a spiral tessellation from the background image.  
Double Spiral Background  Create a double (Moebius) spiral tessellation from the background image.  
Multi Spiral Background  Create a multi spiral tessellation from the background image.  
Poly Spiral Background  Create a repeating spiral tessellation from the background image.  
Sphere Spiral Background  Create a sphere (Earth) spiral tessellation from the background image.  
Circle Inversion Background  Use the topleft part of the background image giving a square image, and fill the area outside of the enclosed circle of that square according to the circle inversion formula.  
Tessellated image  Image from 'Create (Multi) Tessellation' of a polygon (triangle, quadrilateral, pentagon, hexagon) tessellation; the latest created tessellation is stored internally. The circle and 5 spiral transformations can be applied to any of the triangle, quadrilateral, pentagon and hexagon tessellations. For IH7 and IH16 the transformation is only possible with 3 colors, not with 4 colors. 

Circle Tessellation  Create a circular tessellation from the tessellated image.  
Spiral Tessellation  Create a spiral tessellation from the tessellated image.  
Double Spiral Tessellation  Create a double (Moebius) spiral tessellation from the tessellated image.  
Multi Spiral Tessellation  Create a multi spiral tessellation from the tessellated image.  
Poly Spiral Tessellation  Create a repeating spiral tessellation from the tessellated image.  
Sphere Spiral Tessellation  Create a sphere (Earth) spiral tessellation from the tessellated image.  
Hyperbolic Tessellation  Create a Poincaré disk of hyperbolic geometry from the tessellated image. The hyperbolic transformation can only be applied to a tessellation configuration having rotation symmetry: IH7, IH10, IH11, IH16, IH21, IH21M, IH28, IH29, IH31, IH33, IH34, IH36, IH39, IH55, IH61, IH62, IH71, IH79, IH79MCE, IH88, or IH90. 
Extra  Miscellaneous operations 
About  Shows current program version.  
Settings  Edit system settings. 

User Info  Show the information of a registered user.  
Register  Enter registration information for becoming a registered user. 
Delete the selected point.  
Unselect the selected point.  
Move a point to the neighbour point that is very close to it.  
The added point is a cubic point, that gives a curved segment. A segment is curved if one or both endpoints are cubic points. Toggle this button for switching to linear mode.  
The added point is a linear point, that takes care of a straight segment. A segment is straight if both endpoints are either linear points, or corners, or intermediate points, or mirror points.Toggle this button for switching to cubic mode.  
Zoom in by 5%.  
Zoom out by 5%.  
Zoom slider and zoom value. You can zoom in or out the tessellation by a maximum factor of 10. Note that the background image does not zoom or pan.  
Edit points or corners. Toggle this button for switching to pan mode.  
Pan the tiles and the outline. Toggle this button for switching to edit mode.  
Edit the points of the outline. Toggle this button for switching to editing corners.  
Edit the corners of the tile. Straight edges between the corners appear instead of the points. Each corner can be moved in a way that depends on the type of tessellation. Just try and see how the tile changes. Toggle this button for switching to editing outline points.  
This icon is intended for nonperiodic tessellations. Show a dialog for changing the number of substitution iterations, and the fractions of the deformed tiles. 
N.B. The icons have tooltips.
The red box of the status bar shows information, warnings and errors about your actions. For example:
indicates starting a new project. In this case, the numbers 3 (for
pentagon) and 23 (isohedral type) are codes for the tesselation.
Editing of the tessellation happens in the central part of the window. For example the figure below shows a triangle tessellation of isohedral type IH79 :
The grey outline contains different kind of points with a certain color,
indicating their nature:
Cubic point. This point causes a curved segment in the outline, made of a third degree polynomial. A segment is curved if one or both endpoints are cubic points.  
Linear point. This point takes care of a straight segment in the outline. A segment is straight if both endpoints are either linear points, or corners, or intermediate points, or mirror points.  
Corner point. The basic form of a tile is a polygon with a number of corners (e.g., three for the triangle above, labeled C1, C2, C3). Corners can be moved in "corner mode" : select icon to enable this. For moving a corner, you first have to select it with the mouse. Then, click at another location. Often, not only the corner itself moves, but also other corners of the tile. That is needed to maintain the characteristics of a tile: for example, it must still be a rectangle. Moving another corner may change the tile in a different way. Just try and see what happens. In this way you can also scale and/or rotate a tile. Some moves may lead to an invalid configuration, as indicated in the status bar, and cancel the move action. This happens especially for spiral and circle configurations. Just try a smaller move, or in another direction. Nonperiodic tessellations scale and rotate with respect to the corner with index 0.  
Intermediate point. This point lies exactly in the middle of an edge between two corners, that has rotation symmetry (e.g., I1 in the triangle above lies between C1 and C2). An arrow outside the outline indicates (when activated by Show transformations) such a symmetry. An intermediate point can not be edited.  
Mirror point. This point lies on the perpendicular bisector of an edge between two corners, that has mirror symmetry. It occurs in tessellations IH12, IH13, IH66, and IH79MCE. An arrow outside the outline indicates (when activated by Show transformations) such a symmetry. A mirror point can only be edited by moving it along the perpendicular bisector.  
Square around selected point. 
Clicking with the mouse in the view adds a cubic or linear point.
However, when you click on an existing point, then that point becomes the
selected point. Click on another location in the view to move the
selected point. Also, a selected point can be processed with an
appropriate menu edit operation.
Two mouse shortcuts exist. When you press the control button and then
click on an existing point, then that point is deleted. When you press the
shift button and then click on an existing point, then the mode of that
point is toggled from Cubic to Linear, or vice versa.
Editing an edge of the outline causes changes in related edges, depending on the transformation between those edges. Possible transformations are translation, rotation, mirror (or reflection), and glide ( kind of "upside down"). Also within an edge 2 transformations are possible: rotation or mirror. When choosing a new tessellation colored arrows in the dialog indicate the transformation. Here is an overview:
Translation. The edge is often shifted to the opposite side of the tile, keeping the same orientation. It is also possible that the translated edge is rotated a bit, especially for the spiral tessellations. An edge and its related, translated edge have no corner in common (otherwise it would be a rotation).  
Rotation. An edge and its related, rotated edge have a corner in common. The edges rotate around the common corner. The rotation angle is often 60 degrees, or 90 degrees.  
Glide. This arrow is twisted upside down, and that is what also more or less happens with an edge. Instead of a normal translation, the translated corners are swapped together with the part of the outline between the 2 corners.  
Glide rotation. This transformation is a combination of a glide and a rotation, and it occurs between two neighbour edges with a common corner.  
Mirror (or reflection). The vertical bar in the middle of the arrow stands for a mirror, indicating an edge and its mirrored counterpart.  
Mirror rotation. This transformation is a combination of a mirror and a rotation, and it occurs between two neighbour edges with a common corner.  
This rare transformation is a combination of a translation and a 180 degrees rotation; therefore, I call it a twirl.  
Rotation of 180 degrees inside an edge. In the middle of the edge
is an intermediate point. This arrow is drawn outside the tile. 

Mirror inside an edge. In the middle of the edge is a mirror
point. This arrow is drawn outside the tile. 
The following figures illustrate the transformations and the
corresponding arrows, and also an example tessellation. The arrows have
the same color within a tessellation if they refer to the same edge.
Create a new project and choose the tessellation type. Double click on one of the eight icons, or single click and select OK.
Field  Description 
Xrange  Minimum and maximum values of Xcoordinates of outline points. 
Yrange  Minimum and maximum values of Ycoordinates of outline points. 
Scale  The Xcoordinates and Ycoordinates are multiplied by the scale factor. 
Size  Value of the fields width and height in the SVG file. 
Size viewbox  Value of the viewBox width and height in the SVG file. 
Field  Description 
New Xcoordinate  New value of Xcoordinate of moved point. 
New Ycoordinate  New value of Ycoordinate of moved point. 
N.B. The coordinates mentioned are internal coordinates, independent of the zoom factor and the offset. The origin (0,0) of these coordinates lies in the middle of the screen.
Field  Description 
Filename [x]  Enter the filename of the image with index [x].
Optionally, click Browse for browsing to it. All entered files are checked. If an image can not be read, then this activity is cancelled. 
Select color scheme  Press this button to use a color scheme. Note that this button appears only for some spiral tessellations, all circle tessellations, and all nonperiodic tessellations. The dialog for circle/spiral tessellations differs from the one for nonperiodic tessellations. 
N.B. In case of spiral tessellations and circle tessellations, the number of background images is freely selectable. A dialog appears to ask for the number of images.
Field  Description 
Enable color scheme  Enable or (temporarily) disable the color scheme. When disabled the default colors are used. 
First  First value in the corresponding direction. 
Delta  Delta value in the corresponding direction. This value is normally positive, but can also be zero or negative. 
Last  Last value in the corresponding direction. An incremented/decremented value exceeding 'Last' gets the value of 'First'. If 'Delta' is positive, then 'Last' should be greater than 'First'. If 'Delta' is negative, then 'Last' should be less than 'First'. 
The color index is the sum of the values in the tangential direction and the radial direction, taken modulo the number of colors. The radial direction goes outward from the center of a spiral/circle; for a circle along a radial, and for a spiral it has the range of its number of arms. The tangential direction is (almost) perpendicular to the radial direction; for a circle the range equals the number of radials, and for a spiral the range is unlimited.
Field  Description 
Cycle scheme  Select cycle scheme; see table below. The value of a scheme is used as the index in the array of background images. 
Increment  Value added in the two last cycle schemes. 
Field of cycle scheme  Description 
Prototile identification  Index of prototile. 
Kid identification  Index of child prototile. 
Cycle modulo number of kids  Add the child identification and the Increment to the value of a parent in the previous iteration step. Then, take modulo with number of kids. 
Cycle modulo number of images  Add the child identification and the Increment to the value of a parent in the previous iteration step. Then, take modulo with number of background images. 
Field  Description 
Width  Width of output image in pixels. 
Height  Height of output image in pixels. 
N.B. The same dialog appears for Create Multi Tessellation.
Field  Description 
Width  Width of output image in pixels. 
Height  Height of output image in pixels. 
Center (x,y)  Location of circle center in pixels. Location (0,0) is in the middle of the image. 
Number of radials  Number of circle radials. 
Image rotations  The input image is a rectangle or a parallelogram. Each of the 4 corners can be used as base for the transformation. The number of rotations corresponds with the appropriate corner. 
Create animation  Mark the checkbox to create a gif animation. A new dialog opens after pressing OK. 
N.B. The same dialog appears for Tessellated image.
In case of a Background image the input image is always a rectangle; in
case of a Tessellated image the input image is a repeating part of that
tessellated image: it can be a rectangle or a parallelogram depending on
the isohedral type. For example, the pentagon tessellation of isohedral
type IH21 has always a corner of 60 degrees, so that the parallelogram has
corners of 60 degrees and 120 degrees. Nevertheless, the transformation is
conformal, meaning that the input image resembles the parts of the
circular transformation very well.
Field  Description 
Width  Width of output image in pixels. 
Height  Height of output image in pixels. 
Center (x,y)  Location of circle center in pixels. Location (0,0) is in the middle of the image. 
Number of arms1  First number of spiral arms. 
Number of arms2  Second number of spiral arms. 
Image rotations  The input image is a rectangle or a parallelogram. Each of the 4 corners can be used as base for the transformation. The number of rotations corresponds with the appropriate corner. 
Create animation  Mark the checkbox to create a gif animation. A new dialog opens after pressing OK. 
N.B. The same dialog appears for Tessellated image.
In case of a Background image the input image is always a rectangle; in
case of a Tessellated image the input image is a repeating part of that
tessellated image: it can be a rectangle or a parallelogram depending on
the isohedral type. A parallelogram is deformed into a rectangle, so that
the transformation is nonconformal. This remark holds also for the other
spiral transformations below.
Field  Description 
Width  Width of output image in pixels. 
Height  Height of output image in pixels. 
Center (x,y)  Location of circle center in pixels. Location (0,0) is in the middle of the image. 
Number of arms1  First number of spiral arms. 
Number of arms2  Second number of spiral arms. 
Pole1 (x,y)  First pole of the moebius function. The values of the pole are related to the height of the image. Half of the image height corresponds with 1.0 . 
Pole2 (x,y)  Second pole of the moebius function. 
Image rotations  The input image is a rectangle or a parallelogram. Each of the 4 corners can be used as base for the transformation. The number of rotations corresponds with the appropriate corner. 
Create animation  Mark the checkbox to create a gif animation. A new dialog opens after pressing OK. 
N.B. The same dialog appears for Tessellated image.
Field  Description 
Width  Width of output image in pixels. 
Height  Height of output image in pixels. 
Number of arms1  First number of spiral arms. 
Number of arms2  Second number of spiral arms. 
Constant1(x,y)  First constant in transformation formula, affecting the shape of the spirals. The basic transformation formula is : Constant1 * ( 1  ( Constant2 / z )^Power ), where z is the transformed complex variable. 
Constant2(x,y)  Second constant in transformation formula. One spiral center is located at this constant, represented as a complex variable z = x + i*y . The other spiral centers are rotated by multiples of 2*π/Power. 
Power  Number of spirals. 
Image rotations  The input image is a rectangle or a parallelogram. Each of the 4 corners can be used as base for the transformation. The number of rotations corresponds with the appropriate corner. 
Create animation  Mark the checkbox to create a gif animation. A new dialog opens after pressing OK. 
N.B. The same dialog appears for Tessellated image.
Field  Description 
Width  Width of output image in pixels. 
Height  Height of output image in pixels. 
Center (x,y)  Location of circle center in pixels. Location (0,0) is in the middle of the image. 
Number of arms1  First number of spiral arms. 
Number of arms2  Second number of spiral arms. 
Frequency  Number of horizontal repetitions. 
Multiplier (radius, angle[degrees])  The multiplier allows to scale with the radius and to rotate with angle the resulting image. The default values perform no scaling or rotation. 
Image rotations  The input image is a rectangle or a parallelogram. Each of the 4 corners can be used as base for the transformation. The number of rotations corresponds with the appropriate corner. 
Create animation  Mark the checkbox to create a gif animation. A new dialog opens after pressing OK. 
N.B. The same dialog appears for Tessellated image.
Field  Description 
Diameter  Width and height of output image in pixels, and diameter of sphere. 
Number of arms1  First number of spiral arms. 
Number of arms2  Second number of spiral arms. 
Altitude [090 degrees]  Radial location of spiral center. 0 degrees is in the middle of the image, 90 degrees is at the border. 
Azimuth [0360 degrees]  Tangential location of spiral center. 0 degrees is towards the top of the image. 
Image rotations  The input image is a rectangle or a parallelogram. Each of the 4 corners can be used as base for the transformation. The number of rotations corresponds with the appropriate corner. 
Create animation  Mark the checkbox to create a gif animation. A new dialog opens after pressing OK. 
N.B. The same dialog appears for Tessellated image.
The transformation is based on the paper "Loxodromic Spirals in M. C. Escher's Sphere Surface"
by James Marcotte and Matthew Salomone.
Field  Description 
Border [pixels]  Size of additional border around the circle. The diameter of the circle is the minimum of the width and the height of the background image. So, the total width and height of the output image equals the diameter plus twice the entered border. 
Rotation [degrees]  The inverted pixels outside the circle are rotated anticlockwise by the entered angle in degrees. 
Fill empty pixels  Fill empty pixels, especially at the circle boundary. 
Field  Description 
Diameter [pixels]  Width and height of output image in pixels, and diameter of disk. 
Number of triangles  Number of neighbor triangles at the 3 corners of the center
triangle, say N1, N2, N3. The angles at the 3 corners are then (in degrees) : 360/N1, 360/N2 and 360/N3. The sum of these 3 angles must be less than 180 degrees ! 
Translate (x,y) [pixels]  Shift vector of the disk center in pixels. The location of the vector must be inside the disk. 
Number of iterations  Starting with a center triangle, at each iteration neighbor
triangles are added towards the border. Common values for filling the entire disk are between 6 and 12, depending on the input Number of triangles. For the value of 0, Tissellator determines an appropriate number of iterations. The actual number of iterations is shown in the Status Bar. 
Circle inversion  Fill the area outside the disk according to the circle inversion formula. 
Fill empty pixels  The circle boundary might not be filled with pixel values, especially when the number of iterations is too low. Filling empty pixels works well for small empty boundaries. 
Border  Additional border in pixels around the disk. 
Before transforming to a hyperbolic disk a (multi) tessellation must be executed via Tessellation/Create Tessellation or Tessellation/Create Multi Tessellation. The size of that created tessellation must be sufficiently high. Tissellator reports if the width or height is not sufficient (sometimes in several steps); in that case, create another tessellation with bigger size.
Field  Description 
Duration [milliseconds]  Duration of gif animation in milliseconds. 
Number of cycles  The number of cycles for the whole duration. During one cycle a full shift of the background image or tessellated image happens. 
Number of frames per cycle  Number of shifted images per cycle. Note that the duration of a single frame must be a whole number of centiseconds! 
Shift  The input image can be shifted in 8 directions represented by the arrows. The bullet in the middle causes an animation without shift. The current choice has a red background. 
Credits: The encoder of the animated GIF software comes from Kevin Weiner, refer to github.
Field  Description 
User directory  This field shows where your user directory for Tissellator
dedicated files is located. This directory includes files for
settings as shown in this dialog, recent projects, user
registration, project files of Undo history, occasional project
files, exception stack traces and (optional) logging files. If you
loose some work for some unexpected reason, you might recover it by
searching for the latest project files having extension ".tis". In Windows the user directory is: C:\Users\<username>\tissellator . In Linux (Mint) the user directory is: /home/<username>/tissellator . In MacOS the user directory is: /Users/<username>/tissellator . It is recommended to clean up user directory regularly. 
View width View height 
The view is the graphical part of the window for editing
the tessellation. Its width and height are in the unit of pixels.
The size of the view is limited by the resolution of the computer
monitor. Initially, the size is 960 by 640 pixels. It is highly
recommended to increase the view size for big monitors. Possibly,
the program window does not scale correctly after increasing the
size. Please, restart Tissellator then. N.B. The size of an exported image (File / Export Image) equals the size of the view. If the initial view might even be too large to change the Settings, you might solve this by editing the file tissellator.settings in the user directory with an ascii editor. 
Selection radius for point  A point is selected if the mouse is clicked closer than the entered selection radius. Default value is 5.0 . 
Selection radius for corner  A corner is selected if the mouse is clicked closer than the entered selection radius. Default value is 25.0 . 
Color of outline  Select the color of the outline in the view. Default color is Light Gray (#D3D3D3). 
Tessellation offset (X,Y)  Xcoordinate and Ycoordinate of an additional offset when
creating a (multi) tessellation. Don't use too high offsets to
prevent empty parts in the created image. This offset is especially
useful for nonperiodic tessellations and fractal tessellations.
Default values are 0.0 and 0.0 . Note that for transformations of a tessellation the offset for that original tessellation must have zero coordinates! 
Fill empty pixels  Enter the number of fill steps. Sometimes, rendered tiles in (multi) tessellations don't fit together perfectly, so that pixels in between them remain empty. At each step, Tissellator fills empty pixels with interpolated, nonempty neighbour values. 
Antialiasing for transformed background image  Antialiasing mitigates artefacts of transformed background
images. For example, the background image is enlarged, especially at the borders of a tessellated spiral or circle. This causes aliasing effects making pixels visible as squares. A bilinear or cubic interpolation algorithm takes care of antialiasing. At the moment the cubic interpolation is only available for the circle inversion transformation. 
Automatic horizontal and vertical tiles  The polygon tessellations, excluding the spiral/circle
tessellations, are rendered along a rectangular grid. Tissellator
computes the size of the grid, if this checkbox is marked. If you
prefer your own grid size, then unmark the box, and fill in the next
two fields. Note that unmarking this option leads to many empty filled; it is recommended to unmark then the checkbox of Fill empty pixels. 
User defined horizontal tiles 
Grid size for rendering tiles in horizontal direction. 
User defined vertical tiles  Grid size for rendering tiles in vertical direction. 
Command logging  Enable logging of main commands. A log file is saved in the user
directory with format: <date>_<time>_log.txt . 
Description  Log command 
File New 
FN <major> <minor> <optional
parameters>. The optional parameters are the parameters in the spiral and circle dialogs of this documentation. 
File Open/Recent 
FO <filename> 
File Save 
FS <filename> 
Load Background 
Tb <filename> 
Save Outline Image 
TS <filename> 
Create Tessellation 
Tc <width> <height> <filename> 
Load Multi Background 
TB <filename> 
Create Multi Tessellation 
TC <width> <height> <filename> 
Transform Circle Background 
xC <width> <height> <centerX>
<centerY> <number of radials> <image
rotations> <create animation> 
Transform Spiral Background  xS <width> <height> <centerX> <centerY> <number of arms1> <number of arms2> <image rotations> <create animation> 
Transform Double Spiral Background  xD <width> <height> <number of arms1> <number of arms2> <pole1X> <pole1Y> <pole2X> <pole2Y> <image rotations> <create animation> 
Transform Multi Spiral Background  xM <width> <height> <number of arms1> <number of arms2> <constant1X> <constant1Y> <constant2X> <constant2Y> <power> <image rotations> <create animation> 
Transform Poly Spiral Background  xP <width> <height> <number of arms1> <number of arms2> <frequency> <multiplier radius> <multiplier angle> <image rotations> <create animation> 
Transform Sphere Spiral Background  xE <width> <height> <number of arms1> <number of arms2> <azimuth > <altitude> <image rotations> <create animation> 
Transform Circle Inversion Background  xI <border> <angle> <fill empty pixels> 
Transform Circle Tessellation 
XC <width> <height> <centerX>
<centerY> <number of radials> <image
rotations> <create animation> 
Transform Spiral Tessellation  XS <width> <height> <centerX> <centerY> <number of arms1> <number of arms2> <image rotations> <create animation> 
Transform Double Spiral Tessellation  XD <width> <height> <number of arms1> <number of arms2> <pole1X> <pole1Y> <pole2X> <pole2Y> <image rotations> <create animation> 
Transform Multi Spiral Tessellation  XM <width> <height> <number of arms1> <number of arms2> <constant1X> <constant1Y> <constant2X> <constant2Y> <power> <image rotations> <create animation> 
Transform Poly Spiral Tessellation  XP <width> <height> <number of arms1> <number of arms2> <frequency> <multiplier radius> <multiplier angle> <image rotations> <create animation> 
Transform Sphere Spiral Tessellation  XE <width> <height> <number of arms1> <number of arms2> <azimuth > <altitude> <image rotations> <create animation> 
Transform Hyperbolic Tessellation  XH <diameter> <number of triangles1> <number of triangles2> <number of triangles3> <translateX> <translateY> <number of iterations> <circle inversion> <fill empty pixels> <border> 
Animation 
A <duration > <number of cycles> <number of frames> <shiftX> <shiftY> 
End of program  #EXIT 
Field  Description 
RegistrationFile  Enter here the name of the file received at registration. Optionally, browse to it with the button "..." 
RegistrationCode  Enter the code received at registration. 
Field  Description 
Number of iterations  Number of substitution iterations, starting from the initial chair configuration. 
Xfraction (0.0  1.0)  Fraction of Xcoordinate indicating the tile to be deformed. 
Yfraction (0.0  1.0)  Fraction of Ycoordinate indicating the tile to be deformed. 
After determining the minimum and maximum Xcoordinates and Ycoordinates
of the substituted image, the fractions are used to calculate a target
location between the minima/maxima around which the deformed tiles are
selected.
Note that a change of any of these 3 parameters affects the selection of
the deformed tiles, and the orientation of the whole image. As a
consequence the background image(s) may not match the deformed tiles
anymore! In that case, change the fractions a little bit.
For zero iterations the (special) initial configuration is shown.
Choose one of the triangle tessellation types. Double click an icon, or
single click and select OK.
The tessellation type IH79MCE is a variation of IH79, having the
additional property of mirror symmetry on 2 edges. M.C. Escher used this
configuration in his famous artworks Angels and Devils and Circle Limit IV (Heaven and Hell).
Choose one of the quadrilateral tessellation types. Double click an icon, or single click and select OK.
Choose one of the pentagon tessellation types. Double click an icon, or single click and select OK.
Choose one of the hexagon tessellation types. Double click an icon, or single click and select OK.
Choose one of the spiral tessellation types. Double click an icon, or
single click and select OK.
The differences between IH1a , and IH1b
are explained at their dialogs.
Choose one of the circle tessellation types. Double click an icon, or
single click and select OK.
The differences between IH1a , IH1b
, and IH1c are explained at their dialogs.
Choose one of the nonperiodic tessellation types. Double click an icon,
or single click and select OK.
The different configurations of some types are explained at their dialogs.
Choose one of the fractal tessellation types. Double click an icon, or
single click and select OK.
The five fractal types open their own menu for further selection. The
different configurations of some types are explained at their dialogs.
Choose one of the fractal tessellation types. Double click an icon, or
single click and select OK.
These 4 tessellations have types of the same shape without reflections,
unlike Escher's Square Limit. In SquareLimitBasic2 the scheme at the
diagonals has been made consistent so that an octagon is formed. The
latter 2 tessellations have also fractal structure in the center.
The height (or width) of the total image equals 6 times the height of the
triangle to be deformed for the first 2 tessellation types, and 12 times
its height for the last 2 tessellation types.
Choose one of the fractal tessellation types. Double click an icon, or
single click and select OK.
The first tessellation is Escher's Square Limit. The other 3 are
variations. In SquareLimitEscher2 the scheme at the diagonals has been
made consistent so that an octagon is formed. The latter 2 tessellations
have also fractal structure in the center.
The height (or width) of the total image equals 6 times the height of the
triangle to be deformed for the first 2 tessellation types, and 12 times
its height for the last 2 tessellation types.
Choose one of the fractal tessellation types. Double click an icon, or
single click and select OK.
In these tessellations 2 edges can be deformed independently. Hence, 2
different tile shapes are created. In SquareLimitDuo2 the scheme at the
diagonals has been made consistent so that an octagon is formed. The
latter 2 tessellations have also fractal structure in the center.
The height (or width) of the total image equals 6 times the height of the
triangle to be deformed for the first 2 tessellation types, and 12 times
its height for the last 2 tessellation types.
Choose one of the fractal tessellation types. Double click an icon, or
single click and select OK.
These tessellations resemble the above Square Limit tessellations. The big
difference is that here fractal structures occur not only at the edges but
also halfway the picture, and also in the center for the latter 4
tessellations.
FtilingSquare1 has one tile without reflections. FtilingSquare2 has a tile
with reflections of that tile. In FtilingSquare3 two edges can be deformed
resulting in two different tile shapes. The edges in FtilingSquare4 have
mirror symmetry causing also two different shapes.
The next 4 tessellations have the same deformations as the first 4, but
now also with fractal structure in the center.
For the first 4 tessellation types, the height (or width) of the total
image equals 8 times the height of the triangle to be deformed. The height
and width of the latter 4 tessellation types are twice as big as the
former 4.
N.B. The basic structure of this fractal image has been discovered by
Robert Fathauer in 1993, see his “Bats and Owls”. The triangle scheme of these
tessellations are described as the f(4,4) tiling in the paper “SelfSimilar Fractal Drawings Inspired by M.C. Escher’s
Print Square Limit”.
Choose one of the fractal tessellation types. Double click an icon, or
single click and select OK.
These tessellations are analoguous to the above Ftiling Square
tessellations, but now with hexagons instead of squares.
FtilingHexagon1 has one tile without reflections. FtilingHexagon2 has a
tile with reflections of that tile. In FtilingHexagon3 two edges can be
deformed resulting in two different tile shapes. The edges in
FtilingHexagon4 have mirror symmetry causing also two different shapes.
The next 4 tessellations have the same deformations as the first 4, but
now also with fractal structure in the center.
For the first 4 tessellation types, the height of the total image equals 4
times the height of the triangle to be deformed, and the width is a factor
2/sqrt(3) bigger than the height. The height and width of the latter 4
tessellation types are twice as big as the former 4.
The triangle scheme of these tessellations are based on the f(6,3) tiling
in the paper “SelfSimilar
Fractal Drawings Inspired by M.C. Escher’s Print Square Limit”. N.B.
The fractal in the center of the latter 4 tessellations was added by
myself.
Field  Description  Spiral 
Number (>=3) of leaf triangles  The number of leaf triangles determines how quickly the spiral goes "round". In case of 8 leaf triangles the spiral is as follows: 
N.B. A similar dialog appears for the Trianglesidetobase, and for Trianglebasetoside. The only difference is that the lower limit for the number of leaf triangles is 4 and 5, respectively.
Detailed information about these kind of triangle spirals can be found in the paper "Logarithmic Spiral Tilings of Triangles" by Robert Fathauer.
Field  Description  Spiral 
Angle in degrees  Angle (in degrees) at bottom right corner of red triangle tile.  
Length base edge  The length of the base edge (i.c. 0.55) is entered as a relative value compared to the right edge with length 1.0 . 
The above two parameters determine the configuration of this four armed mirror spiral. More background information can be found in my paper "Fourarmed spiral tiling of scalene triangles".
Field  Description  Spiral 
Number of leaf quadrilaterals 
The number of leaf triangles determines how quickly the spiral goes "round". In case of 4 leaf triangles the spiral is as follows:  
Angle in degrees  Angle (in degrees) at bottom right corner of orange quadrilateral tile.  
Length base edge 
The length of the base edge (i.c. 0.55) is entered as a relative
value compared to the right edge with length 1.0 . 
The above three parameters determine the configuration of this quadrilateral spiral. Some background information can be found in my paper "The computation of the spiral center of triangles and quadrilaterals".
Field  Description  Spiral 
Number of arms clockwise direction 
The design of this spiral consists of points that rotate and scale in clockwise direction, and of points that rotate and scale in counterclockwise direction. For the default parameters, the points rotate 60 degrees in clockwise direction and scale a ratio of 1.25 . After 5 such operations a point is back to its original spiral arm, indicated as ABC.  
Number of arms counterclockwise direction 
For the default parameters, the points rotate in counterclockwise direction the remaining 360  300 = 60 degrees. So, 20 degrees per point, and the ratio can be computed as: 1.25^(5/3). After 3 such rotate and scale operations a point is back to its original spiral arm, indicated as 12345.  
Angle range clockwise direction in degrees  In clockwise direction the points rotate (for the default parameter) each 60 degrees, so in total 5 * 60 = 300 degrees. This covers the blue part of the circle.  
Ratio clockwise direction  In clockwise direction the points scale (for the default parameter) a factor 1.25, or its reciprocal 0.8 . 
Once chosen, the number of arms can not be changed anymore for a spiral. By editing tile corners the angle range and the ratio can still be varied. Invalid spiral configurations are detected, skipped and reported in the Status Bar.
Field  Description  Spiral 
Number of hexagons per revolution  In this spiral configuration all hexagons are similar: having the same shape but different size. For the default parameters, after 7 rotations, indicated as 1234567 the hexagon lies "next" to the base hexagon that is grey outlined.  
Number of spiral arms  In counterclockwise direction it takes 3 steps to arrive at that 7^{th} hexagon, indicated as ABC. 

Factor diameter in range [ 0.0  1.0 ]  The diameter factor affects the thickness of the hexagon. The rotation to the next hexagon can be considered as a rotation around the middle (=diameter) of a hexagon plus a rotation around the top edge of a (staggered) hexagon. The diameter can be varied, ranging from 0.0 to 1.0 . In case of 0.0 the hexagon becomes 2 triangles, whereas in case of 1.0 the hexagon becomes a quadrilateral. In the latter case, the form of the quadrilateral can not be changed back to a hexagon.  
Radial ratio  This ratio affects the height of the hexagon.  
Skew in degrees  The skew gives a twist to the spiral. In case of zero skew, the ray to the spiral center is a straight line. 
Once chosen, the number of arms can not be changed anymore for a spiral. The other parameters can be changed by moving the corners as follows:
Corner[0]  Rotate whole hexagon. 
Corner[1]  Change diameter with focus on top/bottom edge. (Angle alpha) 
Corner[2]  Rotate whole hexagon. 
Corner[3]  Change skew. 
Corner[4]  Change ratio. 
Corner[5]  Change diameter with focus on middle. (Angle beta) 
The corner index is shown in the Status Bar after selection. Invalid spiral configurations are detected, skipped and reported in the Status Bar.
More background information about the construction of this spiral can be found in my paper "Logarithmic spiral tiling of hexagons".
Note: The computation of a (multi) tessellation is a lengthy process. Please, be patient.
Field  Description  Spiral 
Number of hexagons per revolution  In this spiral configuration all hexagons are similar: having the same shape but different size. For the default parameters, after 8 rotations, indicated as 12345678 the hexagon lies "next" to the base hexagon that is grey outlined.  
Number of spiral arms  In counterclockwise direction it takes 3 steps to arrive at that 8^{th} hexagon, indicated as ABC. 

Factor diameter in range [ 0.0  1.0 ]  The diameter factor affects the thickness of the hexagon. The rotation to the next hexagon can be considered as a rotation around the middle (=diameter) of a hexagon plus a rotation around the top edge of a (staggered) hexagon. The diameter can be varied, ranging from 0.0 to 1.0 . In case of 0.0 the hexagon becomes 2 triangles, whereas in case of 1.0 the hexagon becomes a quadrilateral. In the latter case, the form of the quadrilateral can not be changed back to a hexagon.  
Radial ratio  This ratio affects the height of the hexagon.  
Skew in degrees  The skew gives a twist to the spiral. In case of zero skew, the ray to the spiral center is a straight line. 
Once chosen, the number of arms can not be changed anymore for a spiral. The other parameters can be changed by moving the corners as follows:
Corner[0]  Rotate whole hexagon. 
Corner[1]  Change diameter with focus on middle. 
Corner[2]  Rotate whole hexagon. 
Corner[3]  Change skew. 
Corner[4]  Change ratio. 
Corner[5]  Change diameter with focus on left/right edge. 
The corner index is shown in the Status Bar after selection. Invalid spiral configurations are detected, skipped and reported in the Status Bar.
Looking from the center the hexagon of this spiral (IH1b) is more or less 90 degrees rotated compared to the previous spiral IH1a. In case of 1 spiral arm the corners of a IH1a hexagon are all on the same spiral line; for IH1b the top corner (far from center) and the bottom corner (close to center) are on different spiral lines: the top corner is on the same spiral line as the 2 lower (close to center) corners left and right, whereas the bottom corner is on the same spiral line as the 2 upper (far from center) corners left and right.Note: The computation of a spiral (multi) tessellation is a lengthy process. Please, be patient.
Field  Description  Circle 
Number of radials  In this circle configuration all hexagons are similar: having the same shape but different size. Abbreviate the number of radials by N. For each radial the hexagons are the same, but rotated by the angle obtained by dividing 360 degrees by N. So, N hexagons have the same size.  
Radial ratio  The hexagons grow by this ratio. It is the quotient of the distance of P_{3} to center C divided by the distance of P_{2} to C. Note that P_{0} and P_{2} lie on the same circle around C, just like P_{3} and P_{5}.  
Radial skew in degrees  The angle from P_{2} to P_{3} seen from center C.  
Top ratio  The quotient of the distance of P_{4} to center C divided by the distance of P_{3} to C.  
Top skew in degrees  The angle from P_{3} to P_{4} seen from center C. 
Once chosen, the number of radials can not be changed anymore for a circle. The other parameters can be changed by moving the corners as follows:
Corner[0]  Rotate whole hexagon. 
Corner[1]  Change top ratio and top skew. 
Corner[2]  Rotate whole hexagon. 
Corner[3]  Change radial ratio and radial skew. 
Corner[4]  Change top ratio and top skew. 
Corner[5]  Change radial ratio and radial skew. 
The corner index is shown in the Status Bar after selection. Invalid circle configurations are detected, skipped and reported in the Status Bar.
The circle tessellation IH3 satisfies also the above description.
Note: The computation of a circle (multi) tessellation is a lengthy process. Please, be patient.
Field  Description  Circle 
Number of radials  In this circle configuration all hexagons are similar: having the same shape but different size. Abbreviate the number of radials by N. For each radial the hexagons are the same, but rotated by the angle obtained by dividing 360 degrees by N. So, N hexagons have the same size. Note that between 2 hexagons of the same size there are 2 other hexagons with smaller and bigger sizes.  
Radial ratio  The hexagons grow by this ratio. It is the quotient of the distance of P_{3} to center C divided by the distance of P_{1} to C. Note that P_{0} and P_{1} lie on the same circle around C, just like P_{3} and P_{4}, and also P_{2} and P_{5}.  
Radial skew in degrees  The angle from P_{1} to P_{3} seen from center C.  
Middle skew in degrees  The angle from P_{0} to P_{5} seen from center C. 
Once chosen, the number of radials can not be changed anymore for a circle. The other parameters can be changed by moving the corners as follows:
Corner[0], Corner[1]  Rotate whole hexagon. 
Corner[3], Corner[4]  Change radial ratio and radial skew. 
Corner[2], Corner[5]  Change middle skew, and top ratio. 
The corner index is shown in the Status Bar after selection. Invalid circle configurations are detected, skipped and reported in the Status Bar.
Looking from the center the hexagon of this circle tessellation (IH1b) is more or less 90 degrees rotated compared to the previous circle tessellation IH1a.
Note: The computation of a circle (multi) tessellation is a lengthy process. Please, be patient.
Field  Description  Circle 
Number of radials  In this circle configuration all pentagons are similar: having the same shape but different size. Abbreviate the number of radials by N. For each radial the pentagons are the same, but rotated by the angle obtained by dividing 360 degrees by N. So, N pentagons have the same size.  
Ratio  The pentagons grow by this ratio. It is the quotient of the distance of P_{3} to center C divided by the distance of P_{2} to C. Note that P_{0} and P_{2} lie on the same circle around C, just like P_{3} and P_{5}.  
Skew in degrees  The angle from P_{2} to P_{3} seen from center C. 
Once chosen, the number of radials can not be changed anymore for a circle. The other parameters can be changed by moving the corners as follows:
Corner[0], Corner[1], Corner[2]  Rotate whole pentagon. 
Corner[3], Corner[5]  Change ratio and skew. 
Corner[4]  Change ratio. 
The corner index is shown in the Status Bar after selection. Invalid circle configurations are detected, skipped and reported in the Status Bar.
Point P_{1} lies on the line from P_{0} to P_{2}. Therefore, the "hexagon" of 6 points becomes a pentagon.
Note: The computation of a circle (multi) tessellation is a lengthy process. Please, be patient.
Field  Description  Circle 
Number of radials  In this circle configuration all quadrilaterals are similar: having the same shape but different size. Abbreviate the number of radials by N. For each radial the quadrilaterals are the same, but rotated by the angle obtained by dividing 360 degrees by N. So, N quadrilaterals have the same size.  
Ratio  The quadrilaterals grow by this ratio. It is the quotient of the distance of P_{2} to center C divided by the distance of P_{1} to C. Note that P_{0} and P_{1} lie on the same circle around C, just like P_{2} and P_{3}.  
Skew in degrees  The angle from P_{1} to P_{2} seen from center C. 
The circle tessellation IH43 satisfies also the above description.
Field  Description  Circle 
Number of radials  In this circle configuration all quadrilaterals are similar: having the same shape but different size. Abbreviate the number of radials by N. For each radial the quadrilaterals are the same, but rotated by the angle obtained by dividing 360 degrees by N. So, N quadrilaterals have the same size.  
Ratio  The quadrilaterals grow by this ratio. It is the quotient of the distance of P_{1} to center C divided by the distance of P_{0} to C. Note that P_{0} and P_{2} lie on the same circle around C.  
Skew in degrees  The angle from the middle of P_{0} and P_{2} to P_{1} seen from center C. 
The circle tessellation IH44 satisfies also the above description.
Field  Description 
Number of iterations  Number of substitution iterations, starting from the initial chair configuration. 
Xfraction (0.0  1.0)  Fraction of Xcoordinate indicating the tile to be deformed. 
Yfraction (0.0  1.0)  Fraction of Ycoordinate indicating the tile to be deformed. 
Configuration (13)  Select the initial configuration. 
The 3 initial configurations correspond to the 3 prototiles, refer to: Tilings Encyclopedia / Ammann A3.
The other nonperiodic tessellations with multiple initial configurations have the same dialog.
The 3 initial configurations of this tessellation correspond to the 3
prototiles, refer to: Tilings Encyclopedia / Ammann A4.
Note that the third prototile is a mirror of the second prototile.
The 2 initial configurations of this tessellation correspond to the 2 prototiles, refer to: Tilings Encyclopedia / AmmannBeenker.
The 9 initial configurations of this tessellation correspond to 7 special configurations, see image below, and the 2 prototiles, refer to: Tilings Encyclopedia / Penrose Kite Dart.
The 10 initial configurations of this tessellation correspond to 8 special configurations, see image below, and the 2 prototiles, refer to: Tilings Encyclopedia / Penrose Rhomb.
The 4 initial configurations of this tessellation correspond to a 7star and the 3 prototiles, refer to: A Minimal 7Fold Rhombic Tiling (Fig. 5).
The 8 initial configurations of this tessellation correspond to two 14stars, the 3 prototiles, and the 3 mirrored prototiles, refer to: Tilings Encyclopedia / Danzer's 7fold original.
The family of multigrid tessellations fills the plane in a nonperiodic
way with rhombuses. The user must choose the number of directions, say N.
The angles of the rhombuses are then multiples of Pi/N. In each direction
there is a grid of parallel lines, crossing the parallel lines of another
direction. At each crossing a rhombus is constructed with edges
perpendicular to the lines. The user can choose for each direction the
value of a variable, named gamma, that represents the distance of the
first line closest to the origin. Suitable gamma sets are given below. At
a so called regular point exactly 2 lines cross, whereas at singular
points more than 2 lines cross. Singular points cause failures of the
tessellation: you will recognize this situation from uncovered areas and
overlapping tiles. No measures are taken to prevent this, so that in such
cases the gammas must be adapted for solving it.
The edges of the rhombuses can be deformed in different ways. Three
variations have been implemented.
In this grid the edges for each direction have their own deformation, yielding N * (N1)/2 prototiles. So, the opposite edges of each rhombus have the same deformation.
In this grid the edges have the same deformation in all directions, yielding (N1) prototiles.
This grid is limited to 5 directions, so that the rhombuses are like the
Penrose P3 tessellation. Hence, there are 2 kinds of edge deformation.
This tessellation suffers most from singular points, unlike the above two
multigrid tessellations. Therefore, predefined gamma sets are available.
Furthermore, for a particular class of gamma sets one of the edges must be
deformed symmetrical for a valid tessellation.
Examples of valid gamma sets:
image description  gamma set  TIS file 
no need for tile symmetry.  0.40 0.40 0.40 0.40 0.00  MgTwo_1.tis 
tile symmetry needed; image has 180 degrees symmetry. A tessellation of size 5000 x 4000 pixels gives a correct image for this TIS file (with view 1280 x 700 pixels). 
0.45 0.45 0.45 0.45 0.00  MgTwo_2.tis 
tile symmetry needed; image has no symmetry.  0.40 0.40 0.40 0.40 0.00  MgTwo_3.tis 
Field  Description 
Number of directions  Number of directions. 
Xfraction (0.0  1.0)  Fraction of Xcoordinate indicating the tile to be deformed. 
Yfraction (0.0  1.0)  Fraction of Ycoordinate indicating the tile to be deformed. 
Gamma's  Open another dialog to enter gamma values. 
MultiGridOne has the same dialog.
Field  Description 
Xfraction (0.0  1.0)  Fraction of Xcoordinate indicating the tile to be deformed. 
Yfraction (0.0  1.0)  Fraction of Ycoordinate indicating the tile to be deformed. 
180 degrees rotation symmetry  Select this checkbox if one of the edges requires rotation symmetry. In case of (un)selecting the box, the gamma set gets predefined values (overwriting the previous values). 
Gamma's  Open another dialog to enter gamma values. 
Field  Description 
Gamma[x]  The gamma value for direction 'x'. 
Recently David Smith, Joseph Samuel Myers, Craig S. Kaplan, and Chaim
GoodmanStrauss discovered an aperiodic monotile, nicknamed einstein.
Details are given in this paper.
Note that deforming the edges of the einstein causes two different tiles
due to the fact that the tessellation also includes the mirrored version
of the einstein.
Field  Description 
Number of iterations  Number of substitution iterations, starting from the initial configuration. 
Xfraction (0.0  1.0)  Fraction of Xcoordinate indicating the tile to be deformed. 
Yfraction (0.0  1.0)  Fraction of Ycoordinate indicating the tile to be deformed. 
Configuration (14)  Select the initial configuration. 
Shape (0.0  1.0)  The einstein tile has 2 edges with lengths called A and B. This
shape parameter determines the (relative) lengths as: A =
sqrt(shape) and B = sqrt(1shape) . Common values are: 0.25 = hat, 0.4 = bird, 0.5 = turtle, 0.75 = penguin. 
The tessellations Vierstein and Spectre have a subset of the above parameters.