[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)