tegula

Tegula User Manual

Tegula is an interactive desktop application for exploring periodic tilings of the three two-dimensional geometries: the sphere, the euclidean plane and the hyperbolic plane.


1. Introduction

A periodic tiling covers a surface with tiles, repeating according to a symmetry group. Tegula represents such a tiling by its Delaney–Dress symbol, a finite combinatorial encoding of both the tiling and its symmetry group. From that symbol the program computes a fundamental domain with real coordinates and renders it in 3D, replicating it by the generators of the symmetry group.

Because the encoding is finite, tilings can be enumerated and stored in databases. Tegula ships as a browser for such databases: you open a collection of many thousands of tilings, scroll through them as a grid of thumbnails, filter them, and open any one of them in an editor.

What is a Delaney–Dress symbol?

A tiling is cut into chambers (also called flags): triangles each with one corner at a tile centre, one at an edge centre and one at a vertex of the tiling. The symbol records how chambers are glued to one another across their three sides, together with the orders of the rotations at the tiling’s vertices and edge centres. Two tilings have the same symbol exactly when they are equivalent as symmetric tilings, so the symbol is a complete and compact invariant.

In the program’s notation a symbol is written on one line, for example:

<1.1:1:1,1,1:5,3>

This is the dodecahedron: one chamber, and rotation orders 5 and 3.

The three geometries

The rotation orders decide the geometry, and Tegula computes it for you:

  condition rendered as
Spherical positive curvature a sphere you can rotate
Euclidean zero curvature a flat plane you can pan
Hyperbolic negative curvature a disk, in the Poincaré or Klein model

Raising a single rotation order will often move a tiling from one geometry to another, and Tegula follows it there.

Key features


2. Installation

Installers for macOS, Linux and Windows are available from the GitHub releases page.

Download and run the installer for your platform. On macOS, open the .dmg and drag the application to your Applications folder. On Linux, install the .deb or unpack the .tar.gz. On Windows, run the .msi.

To get started you will also want a database of tilings; see section 4.


3. The main window at a glance

Tegula opens a window with a menu bar, a toolbar and a tabbed area. Each tab holds either a collection of tilings or a single tiling in the editor.

3.1 Collection tabs

A collection tab shows the tilings of an opened file or database as a grid of thumbnails, with a label under each giving its number and its characteristics, for example:

Tiling 628 - n:6 t:3 e:3 v:2 g:*532

Here n is the size of the Delaney–Dress symbol, t, e and v are the numbers of tile, edge and vertex classes, and g is the symmetry group in orbifold notation.

3.2 The editor tab

Double-clicking a tiling opens it in an editor tab, which renders the tiling in 3D and surrounds it with collapsible panes.

3.3 The Symmetries pane

Shows the symmetry group in orbifold notation, with a row of spinners beneath it. Each spinner is the order of one rotation of the tiling: press ++ or -- to change it.

Changing a rotation order changes the tiling, and often its geometry — a euclidean tiling will become spherical or hyperbolic. Any reshaping you have done to the fundamental domain is carried over.

3.4 The Hyperbolic model pane

Enabled for hyperbolic tilings only. Choose between the Poincaré model, which is conformal and preserves angles, and the Klein model, in which geodesics are straight lines. Tiles -- and ++ set how far out from the centre the tiling is drawn.

3.5 The Lighting pane

Choose Point light, which shades the surface and gives it depth, or Ambient light, which lights every part of it equally and gives flat, even colour.

3.6 The Appearance pane

3.7 The Fundamental domain pane

Opens an editable view of the fundamental domain, the piece of the tiling from which the whole is generated. It is drawn as a polygon, subdivided into its chambers, with draggable handles:

handle meaning
red diamond a vertex of the tiling
green square an edge centre
yellow square a point restricted to lie on a mirror line

Drag a handle to reshape the domain; the tiling redraws to match. Dragging an edge centre bends that edge, which is how you give tiles curved or interlocking boundaries. Reset restores the computed shape.

3.8 The Algorithms pane

Holds operations that can be applied to the tiling; see section 5.


4. Loading and saving data

4.1 Supported formats

extension contents
.tdb a database of enumerated tilings, holding many thousands of symbols
.tgs a plain-text file of Delaney–Dress symbols, one per line
.tegula a collection together with its styling

4.2 Getting a database

The program does not ship with a database, because the databases are hundreds of megabytes and do not change from one release to the next. Use File → Download… to fetch one: you are asked where to put it, and the download is expanded as it arrives, so no compressed copy is left behind. The first time you start the program it offers to do this for you.

tilings-1-18.tdb holds all tilings of Dress complexity at most 18. It is about 200 MB to download and about 1.5 GB on disk. Where you put it is remembered, so the question is asked only once.

The databases can also be downloaded by hand, from the release that holds them:

https://github.com/husonlab/tegula/releases/tag/data-v1

Unzip such a download and open the file with File → Open….

4.3 Opening and saving


5. Tiling names

Every tiling carries a name such as DS02-1AM5-8, shown in the label beneath it and in the status line. The name is not an index into a catalogue and not a hash: it is the tiling, written out. It can be decoded back into the Delaney–Dress symbol it names, so it needs no database, no lookup and no registry to be meaningful.

Three things follow from that, and they are the reason for the scheme:

5.1 Reading a name

DS02-1AM5-8
│  │  └──── the tiling itself, in base 32, in groups of four
│  └─────── the size of the Delaney–Dress symbol: this one has 2 chambers
└────────── a fixed prefix

The size is already contained in the encoded part; the prefix repeats it for the benefit of people reading the name, not of the program.

The alphabet is Crockford base 32, 0123456789ABCDEFGHJKMNPQRSTVWXYZ, which leaves out I, L, O and U precisely because they are the characters people confuse. Reading a name is correspondingly forgiving: case is ignored, I and L are read as 1, O as 0, and hyphens are dropped. So DS02-1AM5-8, ds02-1am5-8 and DS021AM58 are the same name, and a name survives being written on paper, read aloud or retyped.

Names are short: about 9 characters for a symbol of size 1, 28 for size 18, 38 for size 24. Every character is in the QR alphanumeric set, so a name fits compactly into a QR code.

5.2 Examples

tiling name geometry
<1.1:1:1,1,1:5,3> — the dodecahedron DS01-0TM0 spherical
<1.1:1:1,1,1:3,5> — the icosahedron DS01-0TH0 spherical
<1.1:1:1,1,1:4,4> — the square tiling DS01-0TJG euclidean
<1.1:1:1,1,1:7,3> DS01-0TPE-0 hyperbolic

The exact bit-level specification is given in the class documentation of DSymbolCode in the source.


6. Operations on a tiling

These act on the tiling in the current editor tab, and are undoable.

operation effect
Dualize exchange the roles of tiles and vertices
Max Symmetry replace the tiling by the one with the largest symmetry group having the same shape
Orientate pass to the orientation double cover, so that the symmetry group contains no reflections
Straighten straighten all edges of the fundamental domain, undoing any reshaping

7. Menu reference

7.1 File menu

item  
New… open an empty window
Open… open a database or file of tilings
Open Recent reopen a previously opened file
Save Selected… write the selected tilings to a file
Download… fetch a database of tilings, expanding it as it arrives
Page Setup… / Print… print the current view
Close close the current window
Quit leave the program

7.2 Edit menu

Undo, Redo, Copy, Paste, Select All, Select None, and Open in Editor…, which opens the selected tiling in an editor tab.

7.3 View menu

item  
Use Dark Theme switch between the light and dark interface
Show Labels show or hide the label under each tiling
Color Preview colour the thumbnails in a collection
Show Chambers draw the chamber subdivision on the tiling
Show More / Less Tiles how much of an unbounded tiling is drawn
Reset restore the default view
Zoom In / Zoom Out change the scale
Set Max Copies Hyperbolic… / Euclidean… limits on how many copies are generated
Enter Fullscreen fill the screen

7.4 Tiling menu

First Page, Last Page and Choose Page… move through a collection; Dualize, Max Symmetry, Orientate and Straighten are described in section 6.

7.5 Window menu

Lists the open windows, so that you can bring any of them to the front.

7.6 Help menu

item  
Check for Updates… ask whether a newer version has been released
About… show the version and authors
Open User Manual in Browser… open this manual

8. Notes on the mathematics

The symmetry groups are named in orbifold notation: digits are the orders of rotation points, a * introduces mirror lines, and digits after a * are the orders of the corners where mirrors meet. So *532 is the symmetry group of the dodecahedron including its reflections, and 532 is its rotation-only subgroup of index two — which is what Orientate computes.

The databases distributed with Tegula contain all periodic tilings of Dress complexity at most 18, and all euclidean and spherical tilings of Dress complexity at most 24. They were computed with genDSyms, available at https://github.com/odf/julia-dsymbols.

The underlying mathematics, the algorithms and the software are described in the paper cited below.


9. Citation

If you use Tegula in your work, please cite:


10. License

Tegula is free software, released under the GNU General Public License v3. It comes with no warranty. See LICENSE.txt in the source repository for the full text.