Tübingen generates quasiperiodic tilings by projecting selected triangles from the *A*_{n} lattice onto a plane.

- Click to increase
*n*, SHIFT-click to reduce*n*, CTRL-click to get a new random tiling with the same*n*. - You can display this applet in a
**large window**(suitable for taking screen shots to use as desktop wallpaper) by hitting**the W key**. You might have to select the applet first by clicking on it (you can use SHIFT-CTRL-click to select the applet without changing the tiling). - To
**close the large window**, you can use the close gadget on its frame (if there is one), or hit either**the C key**or**the ESC key**. Some browsers, alas, will not pass any keystrokes to the large window, even after you’ve clicked on it, so as an**EMERGENCY EXIT**you can RIGHT-click the mouse to close the large window. - Hitting
**the SPACE BAR**will cause the applet to stop/start**automatically scrolling**across the tiling. Hitting the**PAGE UP**and**PAGE DOWN**keys scrolls a full page; the**UP ARROW**and**DOWN ARROW**keys scroll by one tenth of a page. - Some browsers have a bug that will cause the applet to ignore these key commands after you’ve opened a large window then closed it. If you find the applet ignoring these commands, even after you click on it, you will probably need to reload the page.

*A*_{n} is an *n*-dimensional lattice, but it can most easily be described as the set of points in a space of one more dimension: those points in *R*^{n+1}
whose coordinates are all integers, and whose sum is zero. The condition that the coordinates sum to zero means that the points lie in an *n*-dimensional subspace of *R*^{n+1}.

We can think of each lattice point *L* in *A*_{n} as being surrounded by a Voronoi cell, which consists of all
points in the subspace that are closer to *L* than to any other lattice point. The Voronoi cells of *A*_{n} are all identical convex polytopes that pack together to fill the subspace.

We can also
define Delaunay cells associated with the lattice, as follows: a vertex, *V*, of any Voronoi cell will
be shared by the Voronoi cells of several lattice points (much as each corner of a cell in a honeycomb is shared by several cells); we define the Delaunay cell “dual to” *V* to be the convex hull of all the lattice points whose Voronoi cells
share *V*. The Delaunay cells are convex polytopes that pack together to fill the subspace, but unlike the Voronoi cells they are not all identical.

Now, we can extend the duality between Delaunay cells and Voronoi vertices to one between Delauny (*n*–*m*)-boundaries and Voronoi *m*-boundaries. A 0-boundary of a polytope
is a vertex, a 1-boundary is an edge, a 2-boundary is a face, and so on. Any Voronoi *m*-boundary will be shared by the Voronoi cells of several lattice points; the convex hull of those
lattice points will be an (*n*–*m*)-boundary of some Delaunay cell.

To produce these quasiperiodic tilings, we pick a plane *P* that lies in the same subspace of *R*^{n+1} as *A*_{n}, and whenever *P* intersects a Voronoi (*n*–2)-boundary,
we project the dual Delaunay 2-boundary, which is a triangle, onto *P*.

Confused? The complete mathematical details are given in this companion page.

**Reference:** Peter Kramer, “Dual Canonical Projections”.