Monday, 27 April 2015

Pretty Bits

As part of my Core Rope Memory project I've devised a binary encoding I call PrettyBits.

Why a new encoding, you ask? Well it turns out that ASCII has certain features that make it a bit ugly when used in my jewellery. Even if I just use 7 beads, (ignoring the leading bit that doesn't get used in basic ASCII), the two leading bits are always one for lower case letters, and there's a bias toward 0 on the lower order bits. I think this leaves the piece messy and unbalanced.

The effect is exaggerated here by the nylon beading string (a failed experiment), but it's also evident in the photo from my previous post:

(Both pieces have most-significant bit on the right in these photos).

Since ASCII was an arbitrary choice of encoding anyway, I started thinking about what I would like in an encoding for this jewellery, and I came up with three things:
1) Minimize zeros - the more threads through beads the neater it will look
2) Minimize strings of zeros - a thread weaving in and out of beads will look better than one going around three bead in a row
3) Balance the zeros between the left half and right half of the piece

I decided to use 7 bits, because having a central bit is nice, and because that gave me room to include lots of punctuation and the Irish accented vowels.

The first thing I did was generate a list of all the bit strings from 0000000 to 1111111. Which I ordered according to the rules above. Then I used the data in 
to produce an approximate frequency ordering including punctuation and capitalisation. The two lists were zipped together, so that the most frequently used characters got the prettiest bit-strings. I used that list to make this webpage work:
(edited to update link)

Here's the first piece made with the new encoding! I'm not very happy with the photo, but I think it just about shows that the new encoding is much more balanced. (I think it's very evident in-person).

This bracelet (no clasp yet) was made with found copper wire, so it's not hypoallergenic. The previous design is the best hypoallergenic solution I've come up with so far, though there are some high-end materials I can try if someone wants to order the wire-style above for sensitive skin.

I'll post soon about the more electronics-y side of this project, including my adventures with soldering and my new Arduino!

No comments:

Post a Comment