How to convert a Turing Machine program to a tiling using Wang Tiles? This is a cross-post from a post on MathSE due to lack of answers.

To illustrate my question I provide the following example.

The website Online Turing Machine provides a Turing Machine simulator. The following program adds 1 to any binary number.

q0,1  =&gt;  q0,1,&gt;
q0,0  =&gt;  q0,0,&gt;
q0,_  =&gt;  q1,_,&lt;
q1,0  =&gt;  q3,1,&gt;
q1,1  =&gt;  q1,0,&lt;
q1,_  =&gt;  q3,1,&gt;


A program line has the following format:

state, character read =&gt; new state, character written, direction tape


In the program above q0 is the initial state and q3 is the accepting state.

In Tilings and Patterns by Gruenbaum and Shephard, 11.4 "Computing By Tiles" I read that it is possible to convert any turing machine program to a tiling of the plane using Wang tiles. The book contains an example tiling which calculates the Fibonacci numbers. The procedure, recipe, to convert a Turing machine program to a set of Wang tiles is not entirely clear to me.

Question: What is the algorithm to convert a Turing Machine program line by line to a set of tiling of the plane using Wang Tiles? And how does it work on the Turing machine in the given example?

Update:

Image is that of a Wang tile that adds 1 to a binary: 111 + 1 = 1000 where 1 is red, 0 is cyan. Aiming to generate tiles like this from any Turing Machine. First row 111, last row 1000.
(partial answer) via wikipedia, the conversion/reduction of TMs to Wang tiling was 1st proven in this paper, &amp; there are possibly later simplifications:


Berger, R. (1966). "The undecidability of the domino problem", Memoirs Amer. Math. Soc. 66 (1966). (Coins the term "Wang tiles", and demonstrates the first aperiodic set of them).