compudanzas/src/beans_computing.gmo

60 lines
2.3 KiB
Plaintext

# beans computing
lang=en es->{cómputo frijol}
non-electronic {digital systems} based on manipulating beans according to simple logical rules.
inspired by {the beans computer}, but going at a lower level. most of the times this is related to {paper computing}.
the {computadora de papel} is also related as a beans-based, "higher level" computer.
# projects
{norpet} is a proof-of-concept for ideas we have about beans computing in an 8x8 grid or board.
=> ./img/foto_norpet_02.png closeup photo of the norpet board completely solved in one of its states: the grid is full of either soy or black beans.
# prototypes
{bouncing ball logic} and {bouncer-2d prototype} provide some notes from the initial development of {poñg} around 12020.
=> ./img/secuencia_bounce2d-8x6-0a3.gif a sequence of four frames showing two paper boards with black and soy beans in them: the one in the left contains the processing cells, and the one in the right looks like a screen composed of soy beans except for one, which seems to be moving from the top left corner to the bottom and right.
# truth tables
we have only two classes of beans: black (1), and non-black (0).
these tables correspond to the NOT and NOR logical operations.
they show their possible inputs at their left, and their corresponding outputs to the right.
=> ./img/foto_beans-computing_truth-tables.png photo of the NOT and NOR truth tables, composed of beans in a greenish surface
## NOT
NOT: the output is the opposite of the input. (table at the top left)
+ <table>
+ <tr><th>input</th><th>output</th></tr>
+ <tr><td>0</td><td>1</td></tr>
+ <tr><td>1</td><td>0</td></tr>
+ </table>
& * input: 0, output: 1
& * input: 1, output: 0
## NOR
NOR: the output is black only when none of the inputs are black. in any other case, the output is non-black. (table at the center) {nor}
+ <table>
+ <tr><th>inputs</th><th>output</th></tr>
+ <tr><td>00</td><td>1</td></tr>
+ <tr><td>01</td><td>0</td></tr>
+ <tr><td>10</td><td>0</td></tr>
+ <tr><td>11</td><td>0</td></tr>
+ </table>
& * inputs: 00, output: 1
& * inputs: 01, output: 0
& * inputs: 10, output: 0
& * inputs: 11, output: 0
if you look closely you'll see that NOT can be defined the same way as NOR.
by combining multiple instances of this logic operation, we could build any possible digital behavior.