Rolling ball sculptures: Difference between revisions

From Adam Colton
Jump to navigation Jump to search
Line 7: Line 7:
== Architecture ==
== Architecture ==


=== Clock ===
Need
In a Clock architecture the marble represents the data and a clock signal is either propagated with a marble or mechanically. I like propagating with a marble because then there is always a marble available for output.
* Jump: how to move forward and backward in the code a set number of positions
* Power: Make sure a lack of power won't cause it to enter a bad state.


=== Track ===
=== Power ===
In a track architecture, the track that the marble takes represents the computation.
At an abstract level, I think the easiest solution to power is to store up power until there is guaranteed to be enough. This could be storing mechanically in a spring or weight or a pure rolling ball solution where the next clock only starts when there are enough marbles in the reservoir.


=== Bin Computer ===
One approach for a marble system would be to have a special clock marble. This could be a heavy, large ball bearing where the weight could be used to make things easier. When one clock cycle is done, it must be lifted back up to the top, but the mechanism that lifts it also lifts the other marbles in parallel. This would guarantee to lift some number of marbles before the next cycle.
Need to find the right, only has 3 instructions. The models allows for registers of unlimited size, but that would not be possible. Instead I think the bins can be constructed of clear tube. The add would work like subtract that there would be an overflow condition. There are a few useful operations that could be easily added like empty a bin.


I also think the bins could be arranged in banks and I could have one reader and one writer in each bank. With operations to increment, decrement or reset either.
=== Tumble Incrementer ===
I don't have the specific mechanism down. To do a jump, there will be a max jump - say 256. To jump N positions you enter 256-N. Then we increment back up to 256. This is better than a decrement because decrement needs a marble resevoir. With increment, we can put in an increment marble and that will always be sufficient.


Ops
A tumble incrementer would have the positions staged around cylinder.  
* Halt
* Inc [bank] [jmp]
* Dec [bank] [jmp]
* FRd [bank] [jmp]
* RRd [bank] [jmp]
* FWr [bank] [jmp]
* RWr [bank] [jmp]
 
Power can be delivered by cams with the marbles lining up to deliver power.


[[Category:Workshop]]
[[Category:Workshop]]

Revision as of 23:05, 30 June 2020

Also see Rolling Ball Sim

I now have Kace working/started. It would be a good point to start going between physical and digital models. I could make some good prototypes with cardboard, and possibly the popsicle sticks from a craft store. I should be able to get some models built marble size, later I can scale them down to BB size.

Architecture

Need

  • Jump: how to move forward and backward in the code a set number of positions
  • Power: Make sure a lack of power won't cause it to enter a bad state.

Power

At an abstract level, I think the easiest solution to power is to store up power until there is guaranteed to be enough. This could be storing mechanically in a spring or weight or a pure rolling ball solution where the next clock only starts when there are enough marbles in the reservoir.

One approach for a marble system would be to have a special clock marble. This could be a heavy, large ball bearing where the weight could be used to make things easier. When one clock cycle is done, it must be lifted back up to the top, but the mechanism that lifts it also lifts the other marbles in parallel. This would guarantee to lift some number of marbles before the next cycle.

Tumble Incrementer

I don't have the specific mechanism down. To do a jump, there will be a max jump - say 256. To jump N positions you enter 256-N. Then we increment back up to 256. This is better than a decrement because decrement needs a marble resevoir. With increment, we can put in an increment marble and that will always be sufficient.

A tumble incrementer would have the positions staged around cylinder.