Originally published at: http://boingboing.net/2017/01/19/marble-based-general-purpose-c.html
…
Sure, but the internet is for Rule 34
Rule 110 x Rule 34
Edit:
spoilered for those with folks lurking behind them at optimal distances
I was going to make a witty Plinko comment here, but I don’t know enough about computers.
Oh, cool, an image that makes people think I’m looking at porn but only if they’re more than 3’ away. Thanks man!
aarrgg that hurt my head.
I cant work out if I’m sad or glad that I’m not that smart!
If it’s spoilered and I mouse over it, it still looks like porn.
Whenever I lament that maybe I should have gone into computers as a profession- I’ll think of this video and how futile it would have been competing against people way way smarter than I. I watched the video, yet I still have no idea how one could make it multiply 5 times 9 (something I would have been capable of in machine language/assembler on an Apple II), or if that’s even a stupid question to ask.
Mostly I’m just worried about the squadron of stealth bombers in the Rule 110 graph about to attack the north-west half.
I wasted many an hour at my former shit job drawing sierpinski triangles. Very therapeutic.
Yeah, someone one here could probably tell you how many of those cells would be need to be able to multiple 5 times 9, but it would be a very large number.
The basic idea behind its being Turing Complete actually uses those very stealth bombers. Those stealth bombers represent an infinitely-repeating pattern, as a kind of “background” to the calculations. Then you can set up your initial conditions (the first line of your code) so that you create that background, with a few key changes in some select locales. Those changes will “ripple” either left to right or right to left, and when the left-moving ripples (also called “space ships”) collide with the right-moving ripples, they will sometimes move through each other or they will sometimes collide and remain stationary.
So then you can look at the final output of where all your ripples have ended up, and work out the result of the calculation.
In the example above, the top line is the initial state of the machine, and each subsequent line is the next state. The first state started with the majority of the cells in a position that would generate the ever-repeating tiny stealth bomber. But a few of the cells on the left were just dots (i.e. they alternated 010101), and you can see that these dots “moved” to the right over time. (Seeing it in 2D helps make it look like it moved in a diagonal line, but you could also just look at the single row and say “hey, our little sequence of 010101 has moved to the right!”)
And a few of the cells on the left made larger stealth bombers, which moved to the left in a more messy ripple. These two collided, and produced the mega stealth bombers which stayed repeating in one place.
That’s now the result of one tiny bit of a calculation.
At least, that’s how I’ve understood it.
This guy didn’t do a very good job of explaining what his Turing machine actually did, because he built a machine to demonstrate a theory. He didn’t really explain the whys and wherefores of the theory, or what its applications are to real-world problems.
Basically, this is a state machine, where the center cell depends on the values of the cells surrounding it. If a cell is true, it becomes the NAND of the cells surrounding it, otherwise it takes on the state of the cell to the right of it. If there were a way to tease the NAND gate out of this state machine,* it is possible to derive all of the other logical functions from this, and therefore binary arithmetic, etc.
*I’m not going to. Someone else do it.
Yeah, I didn’t think he did a good job of explaining Rule 110 on the whiteboard. “000 is 0, 010 is 1, 011 is 1…” How? He’s just saying numbers.
Cook did it, with a different but equivalent approach.
He’s describing a state machine. The single bit he mentions last is the new value for the middle bit in the first three bits. Basically, each bit’s new value depends on its previous value, as well as the values of the bits to the left and right of it. He’s describing how to calculate the new bit’s value.
I know, but he doesn’t really describe the how.
The how is kind of important. Instead he just made a video about this cool toy he made, and assumed everyone knew what the hell he was talking about. That doesn’t make him smart, just a bad communicator who can dazzle with bullshit.
It all depends who his intended audience is. I would not consider him a bad communicator if his intended audience didn’t include laypersons. If he made this thinking it was going to be viewed by computer science majors, then it’s (I imagine) perfectly well done.
More computer engineering than computer science.
I have a graduate degree in electrical engineering and even I was confused by what he was talking about. I didn’t pick up that he was talking about state machines at first, but then once I realized it I could tell that this machine could emulate gate-level logic, even if I couldn’t figure out exactly how.
I say he’s a bad communicator because he didn’t describe the concepts or why they matter.