This is my favorite [1]. These are a fun exercise to program yourself. Fairly straightforward but also insightful and easy to create fun variations with.
I “clearly” see lots of dots appear and disappear. It feels direct and unassailable that I am seeing dots. But I never really see a single dot appear and disappear. (Without making a very selective effort.)
Clues like that suggest that the qualia answer has mechanistic explanation. The signal saying that we see something, directly and clearly, and actually seeing something, are separable.
Which is true for recognition of a previous experience (Deja vu), knowing (unquestioning belief), etc.
We experience certainties and experiences we deem direct, that we often attribute to reality, but the measure of certainty and directness themselves are just other signals only approximating or filling in (usefully confabulating) what we think they say.
Our experiences are absolutely full of invisible simplifications, internally created opaque illusions, of not only information, but meta-information.
They work as efficiencies because by design we do not have the natural ability to perceive or question them. No natural inclination to seperate seemingly deep experience from actually sparse internal sensory and meta status representations, or representations from reality (whether internal or external).
Using a stack based expression approach makes it easier to design images at the cost of being less flexible computationally. I have often pondered enhancements to make it more capable,and indeed Turing complete. Forth style word definition would work, but I also have a soft spot for state machines.
Very impressive! I have come across your website before as well. I really like how polished and sophisticated the demos are. Great work, and thanks for sharing!
I'd like to take this opportunity to share a couple of my own, much less impressive, tools that explore similar ideas:
To see the demos, click or type '?' and then scroll down to the bottom of the manual.
Lerc · 10d ago
I like the turtle one. Although I feel like with a minimal number of commands really wants the ability to define new ones.
like a:[xyz] defines further instances of a to be [xyz]
I think the thing that makes me want it is that it takes a loop 3 deep to recover the characters used to define it.
CC is shorter than [C]
and
CCCC is shorter than [[C]]
It's not until CCCCCCCC that [[[C]]] provides a gain. but that's also [[CC]] or [CCCC]
Unless you wanted to define things more literally. If you allowed a user defined a to be a literal [[[ and b to be ]F] then you could make some truly incomprehensible programs where it would be nigh on impossible to keep track of the nesting. Sick, but entertaining.
[update]
Late thought alternate theory. Byte pair encoding to create additional instructions.
a:bc defines a to be bc
so <:[[ and >:]] would define < and > to be double loops (while looking like bert and ernie smilies to boot) but more importantly you'd get some deliciously evil options like
X:RR // X becomes RR
Y:XX // Y becomes XX which is RRRR
Z:XY // Z become XY which is RRRRRR
L:ZR // L becoomes ZR which is RRRRRRR which is 7 rights So L is now one left
but if redefinition were allowed then A:B: would mean ACD would define B to CD and ADC would change B to DC. I did a few scribbles of ideas and I think there's a ridiculous amount of overly complex power in there.
suddenlybananas · 10d ago
It's interesting how some of them halt after a while and some of them don't. I wonder if one could figure out which ones do and which ones don't?
tromp · 10d ago
None of them halt, since no halting state is ever introduced into these canvas dwelling TMs :-(
nialv7 · 10d ago
I think GP is actually asking whether we can determine if one enters a steady state, i.e. tape no longer changes.
It was fine. The combination of difficulty detecting humor or sarcasm, a need to geek-preen, and limited filter can sometimes result in unfriendly or unwelcoming comments.
Y_Y · 10d ago
These are FSMs though, as the tape is finite.
7373737373 · 10d ago
I forked a fork of this and added extra functionality, including rating and sharing machines, variable simulation speed and canvas size here: https://aesort.com/Turing-Drawings/
Thanks. I really needed this when I was in college studying "Theory of computation". I promised my classmates I would make a tool that would produce step by step soltuoins with diagarms and eventually made a really hacky one. I didnt have much experience at the time so failed to find a premade solution.
If I had to guess, I would say that of the ones with more than a few states and symbols that do not halt (i.e. reach a static image configuration), modern mathematics (ZFC) probably cannot prove that fact for most of them. The Busy Beaver project managed it for all 5 state, 2 symbol machines on the empty tape, but IIRC they’re uncertain whether BB(6) is ZFC-provable. (Someone from that project correct me if I’m wrong.)
I find that fascinating. Small scale computation (exploring Turing machine behavior, cellular automata, etc.) is mostly considered a curiosity within the hobbyist realm at the moment, but I suspect that will change over time as we develop better and better tools to characterize computation.
ttctciyf · 9d ago
As with randomly generated CA, I think the most interesting are the ones that exhibit some large scale characteristic which persists while micro states continue to evolve unpredictably, as for example:
I wonder if Stephen Wolfram has opined on the applicability of his 4 classes of CA behaviour (fixed, periodic, random, complexly structured) to this type of automaton?
andoando · 10d ago
This is interesting, looks like different patterns at different levels of zoom.
A lot of the style of images this creates are similar to Cellular Automata. Especially when you have a piece of information move diagonally across the screen.
There was once a similar page that generated a game-of-life game with randomized rules. Does anyone has that link?
The concept there was more restricted, but that made it more likely to produce interesting results.
colordrops · 10d ago
The "rapids" example is impressively natural and organic looking.
CSMastermind · 10d ago
Is it possible to work backwards and take a video and turn it into a turing machine using this format?
[1]: https://maximecb.github.io/Turing-Drawings/#2,10,0,2,1,0,6,1...
I “clearly” see lots of dots appear and disappear. It feels direct and unassailable that I am seeing dots. But I never really see a single dot appear and disappear. (Without making a very selective effort.)
Clues like that suggest that the qualia answer has mechanistic explanation. The signal saying that we see something, directly and clearly, and actually seeing something, are separable.
Which is true for recognition of a previous experience (Deja vu), knowing (unquestioning belief), etc.
We experience certainties and experiences we deem direct, that we often attribute to reality, but the measure of certainty and directness themselves are just other signals only approximating or filling in (usefully confabulating) what we think they say.
Our experiences are absolutely full of invisible simplifications, internally created opaque illusions, of not only information, but meta-information.
They work as efficiencies because by design we do not have the natural ability to perceive or question them. No natural inclination to seperate seemingly deep experience from actually sparse internal sensory and meta status representations, or representations from reality (whether internal or external).
Using a stack based expression approach makes it easier to design images at the cost of being less flexible computationally. I have often pondered enhancements to make it more capable,and indeed Turing complete. Forth style word definition would work, but I also have a soft spot for state machines.
Little toys like these are things I would recommend everyone have a go at. I have quite enjoyed https://tixy.land/ and https://www.dwitter.net
I'd like to take this opportunity to share a couple of my own, much less impressive, tools that explore similar ideas:
https://susam.net/cfrs.html (Turtle graphics but with only 6 commands)
https://susam.net/fxyt.html (Inspired by Tixy but stack-based with 36 instructions)
To see the demos, click or type '?' and then scroll down to the bottom of the manual.
like a:[xyz] defines further instances of a to be [xyz]
I think the thing that makes me want it is that it takes a loop 3 deep to recover the characters used to define it.
CC is shorter than [C] and CCCC is shorter than [[C]]
It's not until CCCCCCCC that [[[C]]] provides a gain. but that's also [[CC]] or [CCCC]
Unless you wanted to define things more literally. If you allowed a user defined a to be a literal [[[ and b to be ]F] then you could make some truly incomprehensible programs where it would be nigh on impossible to keep track of the nesting. Sick, but entertaining.
CC[[[[[[[[[FFF]FR]FR]FRS]FSR]]]][[FR]]CRRRFR[RFRRR[[[[FFF]]]]]CCCCCCC[[FF]]CCCCCCC[[[F]F]F]CCCC[[[[[[RF]FFR][[[F]]R]R[[[FS]]RS]]]]
[update] Late thought alternate theory. Byte pair encoding to create additional instructions.
a:bc defines a to be bc
so <:[[ and >:]] would define < and > to be double loops (while looking like bert and ernie smilies to boot) but more importantly you'd get some deliciously evil options like
but if redefinition were allowed then A:B: would mean ACD would define B to CD and ADC would change B to DC. I did a few scribbles of ideas and I think there's a ridiculous amount of overly complex power in there.[0] https://en.wikipedia.org/wiki/Halting_problem
https://aesort.com/Turing-Drawings/#2,16,1,6,3,0,11,0,1,5,1,...
a short film: https://maximecb.github.io/Turing-Drawings/#7,3,5,2,0,6,2,1,...
long time to reach NESS (if it does at all): https://maximecb.github.io/Turing-Drawings/#7,3,3,1,0,0,2,3,...
Cool glyphs: https://maximecb.github.io/Turing-Drawings/#4,4,0,2,1,3,1,0,...
- https://maximecb.github.io/Turing-Drawings/#4,3,1,2,3,3,1,0,...
- https://maximecb.github.io/Turing-Drawings/#6,3,2,1,0,4,1,1,...
- https://maximecb.github.io/Turing-Drawings/#7,3,4,1,2,6,1,3,...
- https://maximecb.github.io/Turing-Drawings/#7,3,5,1,1,6,2,3,...
- https://maximecb.github.io/Turing-Drawings/#4,3,0,2,1,1,2,0,...
- https://maximecb.github.io/Turing-Drawings/#6,6,4,2,3,0,4,2,...
- https://maximecb.github.io/Turing-Drawings/#6,6,0,5,2,4,3,1,...
- https://maximecb.github.io/Turing-Drawings/#3,6,2,5,1,2,3,3,...
https://maximecb.github.io/Turing-Drawings/#8,3,6,1,0,0,1,1,...
https://maximecb.github.io/Turing-Drawings/#8,3,3,1,1,3,1,3,...
https://maximecb.github.io/Turing-Drawings/#2,22,1,2,3,1,16,...
I find that fascinating. Small scale computation (exploring Turing machine behavior, cellular automata, etc.) is mostly considered a curiosity within the hobbyist realm at the moment, but I suspect that will change over time as we develop better and better tools to characterize computation.
https://maximecb.github.io/Turing-Drawings/#4,4,1,3,2,3,2,0,...
I wonder if Stephen Wolfram has opined on the applicability of his 4 classes of CA behaviour (fixed, periodic, random, complexly structured) to this type of automaton?
https://maximecb.github.io/Turing-Drawings/#20,2,16,1,2,9,1,...
https://maximecb.github.io/Turing-Drawings/#4,3,3,1,0,3,1,1,...
https://aesort.com/Turing-Drawings/#4,2,1,1,1,2,1,3,3,1,0,0,...
https://maximecb.github.io/Turing-Drawings/#2,10,1,6,1,0,2,0...