Home

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│     
      └─────────┘     
  1. we start with an image
  2. it gets encoded to a DVI signal
  3. the result is the signal as bits sent via cables
  4. we decode the signal
  5. 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.

original photo of an underground pedestrian crossing dark and colorful glitched photo of an underground pedestrian crossing colorful glitched photo of an underground pedestrian crossing psychedelic looking colorful glitched photo of an underground pedestrian crossing

Clouds

clouds clouds clouds clouds

Home