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:
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.
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?
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/
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.
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.
[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.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?
[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/#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,...
- 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/#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/#20,2,16,1,2,9,1,...
https://aesort.com/Turing-Drawings/#4,2,1,1,1,2,1,3,3,1,0,0,...
https://maximecb.github.io/Turing-Drawings/#4,3,3,1,0,3,1,1,...
https://maximecb.github.io/Turing-Drawings/#2,10,1,6,1,0,2,0...