DadaData
I've been having fun with bytes lately.
While a byte may be just a collection of eight ones and zeroes, it's the building block of a universe that we, humanity, have created. The Primary Particle.
At some point in your life you've probably wondered "does everybody see the same blue?" -- a question for which many philosophers and biologists surely have an answer. "Blue" happens when some light particles hit something, and that something reflects or emits light particles wiggling at a specific frequency directly into your eyeball, then your eye does some biology magic and you see blue. No eye, no "blue" -- it's the organ that turns some wiggly lines into the vibrant hue and gives it meaning.
In the universe of computers we control the particles, but we also get to control the organs with which we interpret those particles. A string of zeroes can mean a million different things, purely dependent on how we choose to parse them; 0011 0101 1111 0101 could be read as two 1-byte integers (53 and 245), or a single 2-byte integer (13813). It could also be some tightly-packed representation of pixels or flags -- it all depends on which lens you're looking with.
Something I have always enjoyed is looking at those bytes with the wrong lens. Opening an image in a text editor yields a wonderful corrupted view of invalid characters that has always held something beautiful and interesting to me:
�PNG
�
bB�lð��9W����r$��^.````���$I���(���Rdqb�)�x����b���'�L�C��H;�R@�H
9@��&���Z00б2Ҕ��J�
H��0k��@᪣üu.@Jܓ��UG
We���M*�Z���a���6цW"C&�H6�H�IEND�B`�
The inspiration prompt, Karawane, is a Dadaist poem -- an artistic movement I was previously unaware of. It's a movement that champions the liberation of art from meaning, and the absurdity of re-interpretation. I wanted to take that inspiration and create an interesting lens for looking at bytes.
If you're the kind of person who would read this far, you're probably aware of SVG graphics -- a vector based format that visualizes shapes via text-based instructions rather than a series of pixels. I was recently tinkering with some SVG content and discovered the "d" attribute, where a sequence of compact commands can be used to draw a path.
Stealing directly from the MDN documentation:
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<path
fill="none"
stroke="red"
d="M 10,30
A 20,20 0,0,1 50,30
A 20,20 0,0,1 90,30
Q 90,60 50,90
Q 10,60 10,30 z" />
</svg>
Gives us a heart:
For my submission I wrote a simple tool that plucks bytes out from a given file and re-interprets them as svg path commands and coordinates. While this is probably the worst byte compression mechanism ever (the output is several times the input filesize) I think the output is quite neat:
It isn't the most nuanced or impressive possible interpretation of bytes, but I don't think Dadaism is about putting in a lot of effort.
Now you, too, can take any soulless tax document or receipt (or anything else, really, under a megabyte) and turn it into "art":
all processing done in-browser
There are many binary visualizers, but this one is mine.
The concept doesn't mesh perfectly with Dadaism -- I've kept the data here structured enough that you can reverse the SVG-ification using the input below with an .odd.svg file.
note: this will just fail silently if you give it anything other than a valid odd.svg
I think a more true-to-spirit data-dada-ist transformation would destroy the file in the process and give a more chaotic output that what we see here -- but treating Dadaism as a coherent set of rules would be as absurd as the movement itself.
While this particular exercise has been somewhat trivial, my last two 0dd projects have led me to a discovery of a deep interest, both mathematically and artistically, in playing with binary data. While it isn't something I'd consider myself remotely good at yet (despite many years of professional computer-touching), I'm excited to continue playing in the space.
I leave you with this month's inspirational poem, Karawane, saved as a utf-8 file, but parsed as utf-16:
潪楬慦瑮慢扭慬漠映污楬戠浡汢牧썯榟慧洠瀧慦栠扡慬栠牯浥攊楧慧朠牯浡湥栊杩汢楯潫爠獵畳慬栠橵ੵ潨汬歡潨汬污湡潬潧戠湵੧汢条畢杮戠慬潧戠湵੧潢獳慦慴慫쌊₼볃볃쌠઼捳慨灭畷汬畷獳汯扯੯敨慴瑴潧敲੭獥档杩畺扮摡畷畬畢猠畳畢畤甠畬畷猠畳畢畤鎀浵੦畫慳朠畡慭戊鎀浵੦
Ba-umf.