# Wolfram Function Repository

Instant-use add-on functions for the Wolfram Language

Function Repository Resource:

Generate a tiling from a set of rectangular array tiles

Contributed by:
Wolfram Research

ResourceFunction["GenerateTiling"][ covers a | |

ResourceFunction["GenerateTiling"][ covers a | |

ResourceFunction["GenerateTiling"][ covers a |

A pattern is a rectangular array of positive integer values suitable for use in the resource function TilingPatternPlot.

A tile mask is a subset of positions within a rectangular array, such as the *a* values in {{*a*,*a*,*a*},{*_*,*a*,_}}. This particular mask is also known as the Tetris T shape.

A tile is an array that can contain integers or blanks.

All tiles in a tileset fit in an array of the same size, say {*a*,*b*}. If all subarrays of that size in a larger pattern matches a tile in the tileset, then that tileset can be used to make the given pattern.

An all-zero tile leads to an all white or all zero pattern .

An all-one tile leads to an all black or all one pattern .

The two tiles lead to a checkboard pattern . No subset of the tiles will make a larger pattern, so these two tiles produce a minimal tiling.

The tileset will produce the all-white pattern, but the second tile is not necessary. Therefore, this is not a minimal tileset.

The above patterns have a *size* of 4×4.

The input *tiles* should be an array of integer or Blank (_) values.

Consider and {{_,0,0},{0,1,_}}. These both represent a 4-cell tile within a 6-cell array, where the integers indicate the coloring of the tile and the Blank (_) values are wildcards.

A tiling with a periodic boundary can be divided into identical pieces. Basically, this gives a tiling on a torus that may be used for an infinite tiling.

Generate a tiling for a set of tiles:

In[1]:= |

Out[2]= |

The tiles used:

In[3]:= |

Out[3]= |

The generated tiling:

In[4]:= |

Out[4]= |

Generate a tiling from a complicated set of tiles:

In[5]:= |

The tiles used:

In[6]:= |

Out[6]= |

The generated tiling:

In[7]:= |

Out[7]= |

Generate a tiling around a {{1,1}} initial condition:

In[8]:= |

Out[9]= |

A tiling around a {{0,0}} initial condition isn't possible for this set of tiles:

In[10]:= |

Out[11]= |

Generate a tiling on a size 30 torus (i.e. a tiling with a size 30 periodic boundary):

In[12]:= |

Out[12]= |

The tiles cover a size 12 section, but the toroidal wrapping between the top and bottom edge does not correspond to the tile set:

In[13]:= |

Out[13]= |

These tiles cannot cover a size 12 torus:

In[14]:= |

Out[14]= |

Generate a tiling from a complicated set of tiles:

In[15]:= |

The tiles used:

In[16]:= |

Out[16]= |

The generated tiling:

In[17]:= |

Out[17]= |

- 2.0.0 – 23 June 2022
- 1.0.0 – 25 March 2022

This work is licensed under a Creative Commons Attribution 4.0 International License