Home
📠

turing

A visualization of a 3-symbol, 3-state Turing machine.
α0
315f5b
β0
db76d0
γ0
78c43b
α1
8ac006
β1
4e4a01
γ1
64612b
α2
1fce77
β2
c86934
γ2
5bfc94
input
c75894edd3

🔗 Details 🤓

The input turing complete hashes to the following:
66a77509eaf0d8589812c53dacb80ebb5f98f16dc06b6ae65f3bd67a5a00937e
We divvy this hash up into several parameters:
α0      66a775
β0      09eaf0
γ0      d85898
α1      12c53d
β1      acb80e
γ1      bb5f98
α2      f16dc0
β2      6b6ae6
γ2      5f3bd6
input   7a5a00937e
Our machine has a head which can read and write values 0, 1, and 2 from an infinite tape (represented by a white square, a gray square, and a black square respectively). The head itself can be in one of three states α, β, and γ. It starts at state α.
The field α0 means “for state α and a value 0 on the tape.” The segment of the hash for field α0 (66a775) is then split into 3 bytes (66, a7, and 75) to generate a triple with the following:
  1. Write (which state should we write to the tape? 0, 1, or 2)
  2. Move (should we move the head left or right?)
  3. State (which state should we set the head to? α, β, or γ)
Repeat this for each of the fields to finish building the transition table.
To keep things interesting, we seed the tape with some initial squares based on input. (We convert input to base 3 and read off the digits to set the tape).
Then we start writing ✍️. After each step, we draw the tape and the position of the cursor with a little ▼.
The results are not super interesting - 3 states and 3 symbols just isn’t that much to work with - but each piece looks pretty unique and that’s plenty interesting to me.