Hacking the DVI cable to make glitch art
I worked together with @NucleicAcidTest@tech.lgbt on emulating the DVI cable encoding and decoding to try to break it in several ways and get cool glitchy graphics as a result.
i want to write a lot more about this once i have more time but here's a tldr of what we did
Plan
beware of the pipeline
┌─────────┐
│(1) image│
└────┬────┘
┌────────▽───────┐
│(2) DVI encoding│
└────────┬───────┘
┌──────────▽─────────┐
│(3) binary signal to│
│send over the wire │
└──────────┬─────────┘
┌────────▽───────┐
│(4) DVI decoding│
└────────┬───────┘
┌────▽────┐
│(5) image│
└─────────┘
- we start with an image
- it gets encoded to a DVI signal
- the result is the signal as bits sent via cables
- we decode the signal
- the result is the same image
Implementation
After reading the DVI docs, it took a couple hours to implement, over 3 livestreams, and a ton of bugfixing in bitwise operations. Once we were done, we could start playing with it.
Our first attempts were to just mess up the bits that would be going over the wire (step 3). This was mildly interesting but got boring really quick - no interesting glitches there.
The next idea worked great. We realized that the bugs we were fixing during implementation resulted in much more interesting glitch art than the previous idea. So we played with adding bugs on purpose! Flipping a bit in a constant, changing a bitwise or to an xor, removing a condition, skipping decoding entirely, etc...
And then we realized we can do this
┌──────────────────┐
│ (1) image │
└△────────────────┬┘
│ ┌▽───────────────┐
│ │(2) DVI encoding│
│ └┬───────────────┘
┌┴───────────────┐│
│(4) DVI decoding││
└△───────────────┘│
┌┴────────────────▽─────────────────────┐
│(3) binary signal to send over the wire│
└───────────────────────────────────────┘
Looping the different glitches together. We'll experiment with this more in the future.
Below are some examples of what we got.
Glitch Art!
You can check out the code in the git repo.Wrocław
I think the jpg compression resulted in those right-angled rectangular parts of the image.
Clouds