Glitch Art Filters?

Before I began to mess around with G’MIC on GIMP due to a move to Linux from Windows and Processing being broken, I was a glitch artist. The pixel-sorting filter gave me a bit of nostalgia and now I’d love to see some things that can make JPEG glitches (and maybe PNG glitches too), with a few extras.

Before GIMP, I used Paint.NET, with which I used this plugin. I’d also like to see more channels for the pixel-sorting filter.

1 Like

Woah, “Literal Sort” looks like African sand-in-glass-bottle art, and “Low Pass” makes the image look 3D!

I believe most of the filters (if not all) available in the plug-in you mention can be done in G’MIC.
I’ll have a closer look, but I must say I’m very busy at this moment. Maybe other filter developers could be interested to port some of these effect into G’MIC ?

@thething, you could be of a great help for me to port these filters. Basically, what I need for each filter would be a screenshot of the parameters and some results with different parameters, so I can try to mimic the filter. Is this something you can easily provide ? I don’t think I can easily install the poly-glitch plugin on my machine (I’m using Linux), I’m not even sure Paint.Net can be easily installed on Linux (I’ve never tried it to be honest).

For instance, I’ve just tried to code something equivalent to the Quad Flip filter, but with blocs of arbitrary sizes. If you refresh your filters in the plug-in (version 1.7.5+), you should be able to access it (see screenshot below).

But is there any interesting parameters missing ?

that would be difficult. i’m on linux rn and PDN doesn’t work under wine. .NET apps have issues. mind you, it tried it last a few months ago.

there are some screenshots and descriptions there already, though.

scroll down to see 'em.

OK. I’ve seen the screenshots, but there are no screenshots of the parameters for each filter.
That could have helped a lot.
Anyway, I’ve updated the “Flip blocs” filter, with more options.

If you think of another interesting option missing, please tell me, I’ll see what I can do.


the descriptions should be enough to work with. the easiest to know about would be the JPEG glitch:

the new filter seems pretty good. the “rotation” option distorts the layer shape itself, so that’s very good for glitches when the block sizes are a good size. i think that maybe adding something that can randomly offset rows and columns would be neat.

something on the side, too: the “dream smoothing” filter does some really cool things when it’s using the “or” blending mode. original image first; “destroyed” one second.

xor has similar effects, though it doesn’t distort the colours nearly as much. negation is much smoother and distorts the colours a lot with one or more iterations.


whoops, didn’t see your reply until now.

literal sort’s already there in some form as “pixel sort”. it just can’t sort by channels and operate on specific channels in g’mic. i don’t think that the “low pass” effect can be done, even by taking a high-pass and using difference blending.


i have some ideas for the parameters.

“3Displace” and “Lumisort” should have one “global” offset multiplier each as well as settings for using different channel offsets.* The latter needs an horizontal/vertical/h-then-v/v-then-h option.

“Cumulative Math” could also have a multiplier of some sort.*

“Quadratic Looper” needs an x value, a y value and a c value, as well as a direction.*

“Row Shifter” and “Sigmoid Shifter” can be one filter, with an option to use different algorithms.*

“Spiral Transform” needs only one switch to allow an inverse to be used.*

“True Glitch” has one option in polyglitch, this being the JPEG glitch. that needs options like on snorpey’s website. i’ve also seen glitched PNGs before, and they’d be fun to work with again. a strength option and seed option for the latter would be good.*

“Step Slice” is pretty much self-explanatory; it needs vertical and horizontal directions as well as negative inputs (or left-right-up-down directions). being able to smear in any direction would be cool.*

“Pixel Sort” needs more channels, too.*

*all of these need channel operation options (YIQ, RGB et al).

we’ll need someone who has windows.

I’ve just pushed a new one : filter Degradations / Warp by intensity is basically something close to the 3Displace effect in the Polyglitch plug-in.

1 Like

pretty good! it works very well with high values. i’d appreciate it if you could increase the ranges; some people like myself use really big images.

I’ve extended the range for the X/Y factor.


i’ve already been at work with the two new filters (see: and

i’m on da a lot; i’m trying to find people who have pdn so that they can get some screenshots.

welp, i managed to get pdn working on linux and polyglitch working with it. i used winetricks to install gdiplus, msxml3 and dotnet40 before installing PDN 3.5.11 and finding it in .wine64 (Program Files).

3Displace - each slider’s range is -127.99 to 128

no parameters for Codebook, Convert RGB to YUV and Convert YUV to RGB

Cumulative Math - operations are: add, or, xor; amount slider’s range is 1 to 512 and step slider’s range is 1 to 256

Interlace Lines - unusual effect; leaves some lines “clear”.

Literal Sort - options are: intensity, hue, saturation, luminosity, red, green, blue.

Pixel Drag - sliders’ ranges (going down the window) are 1 to: 65,535, 500, 500, 256.

QAM Fault crashes pdn; Quad Flip has no parameters.

Quadratic Looper - first, second, fourth and fifth sliders have a minimum value of 0. the other two have ranges of -1 to 1.

Render Raw File - options are: 16 bits per pixel (R5G5B5), 16bpp(R5G6B5), 24bpp (R8G8B8), 32bpp (A8R8G8B8), 64bpp (A16R16G16B16). Offset slider’s range is 0 to 7.

Row Shifter - range 0 to 1000; resolution: 0.01.

Sigmoid Shifter - range -9.99 to 10; resolution: 0.01.

Spiral Transform has no parameters (though, again, an inverse transform was intended to be in polyglitch).

Step Slice - performs two horizontal smears. positions use percentages; maxmium distances are 200 pixels. directions for both smears are left and right.

True Glitch has no parameters, but i believe that some should appear anyway, like in Snorpey’s glitch experiment.

also, now that i’m really nostalgic, i’m remembering other plugins. i once had 300 or some really stupid number - one of them being a pretty interesting curves tool that i used to use like crazy:

1 Like

Curves+ by pyrochild is very nice. The advanced mode is unique (for open and free software, I think).

In G’MIC you have: Colors>Curves. Here you can pick colors from the image. Also you can chose a color space. (please, read descriptions under filter)

But there are no advanced curves in G’MIC…:wink:

1 Like

the thing that i’d love is the “advanced” bit.

also, i’ve just seen what david’s up to. good stuff; can’t wait to try it!

I think I’l revive this topic by asking about how I can reproduce the ‘cumulative math’ filter and the ‘true glitch’ filter.

I don’t know what are the exact algorithms behind, but:

  • Cumulative math: isn’t it just a duplicate layer shift followed by a special blending mode ?
  • True glitch: seems a bit harder to do in G’MIC, has the plug-in doesn’t contain a JPG encoder. This can be probably simulated somehow as JPEG is just DCT compression of small blocks, but probably not with a ten-lines script.

The first filter looks similar to some of the results I’ve got from ‘breaking’ the dream smoothing filter, but the filter which allows me to create somewhat-similar results is GIMP’s alien map:

The result is not as similar as it could be because the carrier waves are sines or triangles. Sawtooth waves or some other waveform would be far more suitable for the sharp changes in colour. If it can be done, a wavetable would be neat to use (just like in many soft synths).

Now, a JPG glitch is much harder to implement given that the artefacts are quite diverse; there are shifted and tinted lines (they may also blurred) which are 16 pixels tall and wrap themselves into the image’s boundaries (continuing below). They’re divided into 16x16 blocks apart from at the bottom and right edges; there are also 8x8 blocks, often making themselves shown within malformed 16x16 blocks. The patterns within 8x8 and 16x16 may be soft, in ab chrominances only or extremely hard. The most jagged of these patterns are for 16x16 blocks where two tints are smashed together as if patterns shown in the last image are given full contrast and applied as a layer mask on one of the tints. Broken lines may be blurred and can have broken 8x8 or 16x16 blocks while continuing, though most malformed blocks come when there’s a change between lines.

The contents of the malformed blocks may also be blurred and the usual compression artefacts occur in blocks which are not corrupted. When the quality is lowered, there is downsampling across the image and colour deviance is often more intense, with little or no colour variations within the line (they appear to be almost solid with a few extremely-contrasted remains of the original image). TL;DR: if you wish to implement this, you’re better off getting the encoder in alongside a byte writer.

Kudos to David for adding a DCT compression filter; I think that this can be broken in all sorts of different ways though I’ll need to figure out how.

1 Like