💾 Archived View for gemlog.blue › users › maleza › 1606688877.gmi captured on 2022-01-08 at 13:45:45. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2021-12-04)

-=-=-=-=-=-=-

9binary, slow computing and the nibble dice

Everything started about a year ago while I was trying to make a pixel art drawing toy. The idea was simple, you have some cubes widh different colors in its sides and arrange them over a grid to draw. The problem with this obvious solution was that to make a draw as simple as the minecraft creeper face, 64 cubes where needed. That was too much wood and craft for not so much drawing fun. Enough to drop the idea forever or jump into the rabbit hole and take the challenge: "How to radically increase the drawing fun density per cube to make it worth the material and work needed?"

After a few days with my ability to do anything but thinking about cubes and pixels absolutelly damaged (I'm not so smart, you'll see) something emerged. It is posible to fit in a single cube, using its 6 faces plus some rotations, every posible 4 pixels draw. "Wow! That's 4 times more drawing fun per cube" I thought "...no, wait how many draws can it express? Lets count em...". If you know even the most basic binary math there's no surprise in here for you (sorry). 16 possible draws per cube it is. "16 sounds like a preety computer-y number. You can even count to 16 with hexadecimal digits."

+ -  - + -  - + -  - + -  - + -  - + -  - + -  - + -  - +
|      |      | ●    |      |    ● |      |      |      |
|      | 0    |      | 1    |      | 2    |    ● | 3    |
+ -  - + -  - + -  - + -  - + -  - + -  - + -  - + -  - +
|      |      | ●  ● |      |    ● |      |      |      |
| ●    | 4    |      | 5    |    ● | 6    | ●  ● | 7    |
+ -  - + -  - + -  - + -  - + -  - + -  - + -  - + -  - +
| ●    |      | ●    |      |    ● |      | ●  ● |      |
| ●    | 8    |    ● | 9    | ●    | a    |    ● | b    |
+ -  - + -  - + -  - + -  - + -  - + -  - + -  - + -  - +
|    ● |      | ●    |      | ●  ● |      | ●  ● |      |
| ●  ● | c    | ●  ● | d    | ●    | e    | ●  ● | f    |
+ -  - + -  - + -  - + -  - + -  - + -  - + -  - + -  - +

                    _  _
                  + -  - +
                | |      | |
                | | ●    | |
           + -  - + -  - + -  - + -  - +
           |      | ●  ● |    ● |      | |
           | ●  ● | ●  ● | ●    |      | |
           + -  - + -  - + -  - + -  - +
                | |    ● | |
                | | ●  ● | |
                  + -  - +

Since I knew nothing about hexadecimal numbers it was time to, at least, read the Wikipedia entry.

Hexadecimal numerals are widely used by computer system designers and programmers because they provide a human-friendly representation of binary-coded values.

Hexadecimal on Wikipedia

By that moment the fediverse was in fire with the plan9 obsession season and my todo looked like this:

Many man <library> later I had an awfully implemented working prototype that my kids loved and named it (you gessed) 9binary.

              + -  - + -  - + -  - + -  - +
              |      |      |      |      |
              |    ● | ●  ● |      | ●    |
              + -  - + -  - + -  - + -  - +
              |    ● |    ● |    ● |      |
              |      |    ● | ●    |      |
              + -  - + -  - + -  - + -  - +
              |    ● | ●  ● |    ● |      |
              |    ● |    ● |    ● |      |
              + -  - + -  - + -  - + -  - +
              |    ● | ●  ● | ●  ● | ●    |
              |      |      |      |      |
              + -  - + -  - + -  - + -  - +

I did not published the code yet for two reasons. As I said it is still awfull, and the encodding is based on the first arbitrary table above.

Few days ago I (finally) fully realized that it was about bits and nibbles all the time - feel free to express your facepalm reaction, I'll wait here - that's why it felt computer-y.

The 9binary dice, with a proper encodding table, can be used as a nibble dice. This opens a lot of posibilities around slow computing that exceds 9binary as a toy.

+ -  - + -  - + -  - + -  - + -  - + -  - + -  - + -  - +
|      |      |      |      |      |      |      |      |
|      | 0    | ●    | 1    |    ● | 2    | ●  ● | 3    |
+ -  - + -  - + -  - + -  - + -  - + -  - + -  - + -  - +
|    ● |      |    ● |      |    ● |      |    ● |      |
|      | 4    | ●    | 5    |    ● | 6    | ●  ● | 7    |
+ -  - + -  - + -  - + -  - + -  - + -  - + -  - + -  - +
| ●    |      | ●    |      | ●    |      | ●    |      |
|      | 8    | ●    | 9    |    ● | a    | ●  ● | b    |
+ -  - + -  - + -  - + -  - + -  - + -  - + -  - + -  - +
| ●  ● |      | ●  ● |      | ●  ● |      | ●  ● |      |
|      | c    | ●    | d    |    ● | e    | ●  ● | f    |
+ -  - + -  - + -  - + -  - + -  - + -  - + -  - + -  - +

The 9binary toy it's preety simple. You have 16 nibble dices and a 16 slots grid to draw in arranging the dices. This allows to encode / decode drawings into 8 bytes representations of hexadecimal digits. It can be virtual or not; made of wood, paper or anything. You can even craft one in minutes by printing and folding 16 times the nibble dice template above. I have a huge roadmap / wishlist for the project including cli, gemmini cgi, plan9 filesystem. It seems that 9binary allready became my default excuse for computing exploration and it's going to be lots of fun. But what excites me the most is the nibble dice, its possibilities and what other people will come up with in the future.

That's all. I hope this makes any sense for you. Leave you in company of my test subject. Have a nice day.

              + -  - + -  - + -  - + -  - +
              |      |      |      |      |
              |      |      |      |      |
              + -  - + -  - + -  - + -  - +
              |    ● | ●    |    ● | ●    |
              |    ● | ●    |    ● | ●    |
              + -  - + -  - + -  - + -  - +
              |      |    ● | ●    |      |
              |      | ●  ● | ●  ● |      |
              + -  - + -  - + -  - + -  - +
              |      | ●    |    ● |      |
              |      |      |      |      |
              + -  - + -  - + -  - + -  - +