Wang Tiles for Image and Texture Generation

The purpose of the following project is to implement an interactive application for texture design and synthesis using Wang Tiles. Texture is an image of a certain pattern. It has locality property - any two small parts of the image look similar, and also stochastic property - no two parts look exactly the same.
Here are some examples:


In Computer Graphics, large texture images are often needed. Texture synthesis is a process that generates a large texture image from a small texture sample. The synthesized texture should have a natural appearence - it is not enough just to tile the sample image, because repetition artifacts are very visible:


Wang Tiles is a method to tile the plane with a small set of input tiles without periodicity. The input set consists of several tiles whose edges have colors. We tile these tiles, so that adjacent edges have the same color:


Input tiles set


Valid tiling

Now, inside the tiles we can put anything we want - texture, geometry, etc. Wang tiling ensures that if the input set is big enough (at least two tiles for each combination of north-west edges), the tiling will be non-periodic.

Here are examples of texture synthesized using the approach discussed in the paper:



Input texture


Automatically generated set of Wang tiles


The synthesized texture using the Wang tiles on the left

In addition, an interactive system provides the user the tool to design her own textures by painting an appropriate set of Wang tiles (or importing geometric primitives created in some other application). The system displays the resulting texture after every change of the Wang tiles the user makes.


More formal requirements:

Your project is to implement the texture synthesis part (automatic by example and interactive) of the paper:

Wang Tiles for Image and Texture Generation [pdf, 8MB]
Michael F. Cohen, Jonathan Shade, Stefan Hiller, Oliver Deussen

Automatic texture synthesis by example: the input is an image and the size of the Wang tiles set to use. Generate the Wang tiles and then, given
the desired output image size, tile it.

Interactive texture design: provide the user some basic drawing functionality (the more creative the better). The user designs the Wang tiles content herself, and the system displays the tiling result.

Bonus: Implement additional parts of the paper (i.e. 3D geometry generation, such as terrain synthesis, Poisson distribution).


ppt, 500KB


Olga Sorkine,, 03-6405360, Schreiber 002 (please notify by e-mail before coming)



Good luck and have fun!