[HN Gopher] The Domino Computer
       ___________________________________________________________________
        
       The Domino Computer
        
       Author : bschne
       Score  : 48 points
       Date   : 2024-04-18 08:22 UTC (14 hours ago)
        
 (HTM) web link (www.andrewt.net)
 (TXT) w3m dump (www.andrewt.net)
        
       | tromp wrote:
       | Teaches you how to build NOT, OR, AND, and XOR gates out of ideal
       | dominoes (that fall perfectly straight).
        
       | SilasX wrote:
       | Pet peeve: This shouldn't be called computers. Doing so blurs the
       | difference between what they and <the natural conceptspace
       | cluster normally called "computers"> do.
       | 
       | This is a _calculator_ : a machine cable of doing a one-off
       | operation (implementing something interpretable as a calculation)
       | before requiring further intervention. "Computer" should be at
       | least reserved for those that can do a lot of instructions,
       | preferably indefinitely, without human involvement.
       | 
       | And I don't think this is a terminological nitpick, it bleeds
       | into a fundamental disconnect that leaks out in their puffery:
       | 
       | >The aim is to demonstrate how very simple reactions, simple
       | enough that they occur in real physics, can be combined to
       | perform mathematical calculations -- which hopefully helps
       | explain how large numbers of transistors can combine to play
       | Doom.
       | 
       | No, it doesn't. No matter how many of these domino calculators
       | you string together, _you 're not getting Doom_ (even with the
       | appropriate hardware to use the calculation's results). To model
       | the core dynamic needed to run Doom, you at least need the
       | ability to indefinitely run such calculations, in a way that
       | subsequent ones depend on the results of earlier ones. By
       | construction, these systems can't do that, and provide no insight
       | into how you would.
       | 
       | It does provide a demonstration that a (non-electronic) physical
       | system can implement the dynamic behind addition. Cool. But I'm
       | not sure what layperson actually has trouble on that point. There
       | are lots of physical systems that do that -- the confusion, I
       | think, would lie in _how_ you can bridge the gap to Doom. (At
       | least, it was for me when computers seemed mysterious.)
       | 
       | Cool, they found one more physical way to implement a specific
       | calculation. Call it a domino calculator. Don't call it a
       | computer, don't imply it solves the core difficulties needed to
       | run Doom.
       | 
       | Okay, rant over, now you can accuse me of making a mountain out
       | of a molehill.
        
         | fwip wrote:
         | If the dominos had little motors to stand themselves back up
         | after N seconds, would it then fit your criteria?
         | 
         | Also, more pedantry - if you string enough domino calculators
         | together, you could get arbitrarily long running-time of Doom -
         | even the 49.7 days of uptime after which Windows 95 would
         | restart. :)
        
           | SilasX wrote:
           | I made a comment in the neighboring subthread that I think
           | answers this:
           | 
           | https://news.ycombinator.com/item?id=40080169
        
         | VyseofArcadia wrote:
         | When I was little and first starting to dig through my local
         | library for books about how computers work, I ran across
         | something sort of like this domino example, and I spent years
         | trying to work out how you could build something Super Mario
         | Bros. out of just a bunch of stuff that a cheap four-function
         | calculator could to. Sure, I guess ANDs and ORs are a little
         | different from + and -, but they're still fundamentally
         | calculations.
         | 
         | Eventually I realized the same thing you called out here. You
         | need a few extra things to really do computation instead of
         | calculation. Memory, for one, and branching is crucial. But
         | these little demo "computers" like this and Steve Mould's water
         | computer always leave these out.
         | 
         | There's probably dozens of little curious minds like mine that
         | look at this, get excited that they'll finally understand how
         | that magic rectangle works, and then get frustrated when they
         | can't see how the rubber meets the road (because they're
         | missing crucial pieces through no fault of their own).
        
           | SilasX wrote:
           | Thank you! It feels so good to know I wasn't alone in
           | thinking this!
           | 
           | Here's an earlier comment where I fleshed out the point
           | (connected to a possibly dubious, parallel argument about
           | LLMs). Start from "If my point isn't clear":
           | 
           | https://news.ycombinator.com/item?id=35472089
        
         | andoando wrote:
         | But a loop can be constructed with just these gates.
         | 
         | CPU, memory, and etc sre just a collection of these gates,
         | connected by these gates.
         | 
         | For sure, you need to go further in this direction to build a
         | general purpose computer, but it is in this direction that you
         | have to go.
        
           | SilasX wrote:
           | >But a loop can be constructed with just these gates.
           | 
           | No, it can't be. You could unroll a _constant length loop_
           | into a network of these domino calculators (which is how you
           | get Turing-completeness in homomorphic encryption from a few
           | logical primitives), but you cannot implement arbitrary
           | looping that real computers can do.
           | 
           | >CPU, memory, and etc sre just a collection of these gates,
           | connected by these gates.
           | 
           | No, they aren't. Those implement the additional functionality
           | necessary to do that for arbitrary _cycles_ of calculations,
           | not just one static loop unrolled into a fixed-size circuit.
           | 
           | >For sure, you need to go further in this direction to build
           | a general purpose computer, but it is in this direction that
           | you have to go.
           | 
           | No, the functionality implemented here cannot generalize to
           | arbitrary computation until you implement other, orthogonal
           | primitives.
        
             | andoando wrote:
             | A CPU is only capable of generating loops so long as one
             | feeds it enough power. In essence it is creating a constant
             | length loop which is bounded by how long the machine is
             | turned on for.
             | 
             | These dominoes are distinct in that they cannot flip the
             | state back and therefore cannot rerun the same sections,
             | and need need more and more dominoes to do more
             | computations, but fundamentally I dont see how that is any
             | different than providing a longer and longer input of
             | energy into a modern computer.
             | 
             | Can you clarify what "orthogonal primitives" are missing?
        
               | SonOfLilit wrote:
               | Ok, but do you get how there's something fundamentally
               | different between repetition and unrolled repetition?
        
               | SilasX wrote:
               | >Can you clarify what "orthogonal primitives" are
               | missing?
               | 
               | Sure. From my earlier comment[1] distinguishing the core
               | primitives -- labeled a) through d) -- necessary to call
               | something a computer:
               | 
               | >>if you want to get the core, impressive functionality
               | of the things-we-call-computers, you have to include a
               | bunch of other, nontrivial, orthogonal functionality,
               | like a) the ability read and execute a lot of such
               | instructions, and b) to read/write from some persistent
               | state (memory), and c) have that state reliably interact
               | with external systems. Logic gates (d) are just one piece
               | of that!
               | 
               | >These dominoes are distinct in that they cannot flip the
               | state back and therefore cannot rerun the same sections,
               | and need need more and more dominoes to do more
               | computations, but fundamentally I dont see how that is
               | any different than providing a longer and longer input of
               | energy into a modern computer.
               | 
               | In addition to SonOfLilit's comment, a fundamental
               | difference is that, for a modern computer, the provision
               | of electricity is _specified as part of how the computer
               | works_ , while the domino "computer" did not specify the
               | apparatus necessary to reset and execute the subsequent
               | instructions (nor the mechanism whereby such subsequent
               | instructions would be provided) -- the a) and possibly b)
               | in my model above.
               | 
               | So yes, _if_ they had presented a  "domino computer" that
               | included such functionality (and rounded out the a-d), I
               | would indeed agree with calling that a computer!
               | 
               | Why does (the absence of) such apparatus matter? Well,
               | the whole point of the project was to provide intuition
               | behind how/why some physical mechanisms give rise to a
               | "computer". Since people already understand how dominoes
               | work, they will therefore understand how the computer
               | built from them works! Except they don't, because, for it
               | to be a computer, you'd have to add on something they
               | _don 't_ have an intuition for (the resetters etc).
               | 
               | So yes, by all means, use this as an intuition pump for
               | yet-another-way to physically implement a calculator.
               | Just, not a computer, which is something else and a tad
               | more mysterious.
               | 
               | [1] https://news.ycombinator.com/item?id=35472089
        
               | adrianmonk wrote:
               | > _while the domino "computer" did not specify the
               | apparatus necessary to reset and execute the subsequent
               | instructions_
               | 
               | I don't see why it would need to specify this. Anyone who
               | has played with dominoes knows you can set them up again.
               | Why would anyone waste time stating something so obvious?
        
               | SilasX wrote:
               | Because they're claiming it's a computer, even though
               | that term implies that it's a mechanism by which this all
               | happens _automatically_.
               | 
               | We already have a term for the machine where you have to
               | reset it yourself after every calculation: a calculator.
               | Hence the original comment.
        
       | mark_undoio wrote:
       | On a holiday with friends I once spent some time on a beach
       | trying to demonstrate a computer could be built with sandcastles
       | and tennis balls.
       | 
       | IIRC, we managed to get AND, OR, NOT, XOR working and I set about
       | building a half adder. It needed a lot of beach space, since it
       | was a fairly shallow slope and you needed the balls to get up
       | enough speed to work the logic.
       | 
       | The end result was, unfortunately, that the sea started washing
       | away my design before I quite managed to debug it.
       | 
       | Ultimately I'd have needed to find a way to build a bigger chunk
       | of logic and keep the balls circulating around it - didn't get
       | that far but felt ready to do so if a post-apocalyptic scenario
       | called for it.
        
         | jl6 wrote:
         | Excellent use of silicon.
        
       | javajosh wrote:
       | I've often felt that neither Church nor Turing really captured
       | the essence of computation. All you need is a set of
       | distinguishable states, and the ability for them to affect each
       | other a la a nand gate. Neither binary nor electrons are
       | particularly important to the idea. This is what's so great about
       | these primitive machines is that they highlight the full
       | generality of computation. I would like to see more non-binary
       | systems though.
        
       ___________________________________________________________________
       (page generated 2024-04-18 23:01 UTC)