Published on June 24, 2020

Pixelsorting! It looks awesome! Pixelsort your art and turn it into GLITCH ART!

After reading Crespy Baptiste's excellent writeup on Pixel sorting in GLSL, I wanted to build on the work he did, to implement this style of image distortion in FFGL.

pixelsort-witchy-1

pixelsort-elevators

One constraint I ran into - sorting an HD image can be subtle & slow. As in, with a 1080p image, the width could take 1920 frames (32 seconds @ 60fps) to be fully sorted. Realistically, an image will be mostly sorted after 15 seconds or so. When VJ'ing, I want this to be faster - like one or two seconds at most.

To deal with this, I added a "Wildness" parameter. When the Wildness is 1, I strictly follow Baptiste's writeup, sorting the image two rows/columns of pixels at a time. When the wildness is 2 or greater, I sort more pixels at a time. This ends up distorting the image in some weird ways. It's not perfectly "accurate", but it's still fast and looks glitchy.

Parameters:

  • Wildness: how fast/wild the sorting is. Below 1, there is no effect. Set above 1 to start sorting.
  • Threshold: prevent pixels from sorting past each other if their difference is too large. At 0, this rule doesn't apply; at 1, no pixels will sort.
  • Vertical: switch from horizontal to vertical sorting

This is designed for Resolume 7 64-bit; it probably won't work with other versions! To use with Resolume, drop these .dll files into your Plugin Directory (set under Preferences->Video) and restart Resolume.

Source code here.
DOWNLOAD HERE. This software is provided for free under the MIT License. If you find this useful, consider donating $2 to support my future VFX efforts.