This plugin provides a collection of effects designed for glitch art. They're a bit hacky, but then that's what glitch art is all about
Latest Version: 1.4b
IMPORTANT: As of version 1.4, you will now need to download the CodeArtEng.DspToolbox.dll file (DSP Toolbox, not DSP Lab) and place it in the main Paint.NET directory. PolyGlitch will not work without it, as some of the effects now use various DSP functionality. This DLL is now provided as of version 1.4b, and can be found in the DspToolbox directory of the ZIP archive.
IMPORTANT: As of version 1.3, the file name has changed from PolyGlitch.dll to PolyGlitch.Effects.dll - you will need to delete the old file and copy the new one in. The name change is due to a re-architecture of the project namespaces, in line with future features relating to custom file types.
v1.4bNow bundling the required CodeArtEng.DspToolbox.dll file with the plugin. This library is copyright © 2011 CodeArtEng (Code Art Engineering) and distributed under MIT license.
v1.4Added RGB888 to Y'UV444 translations.
Added Literal Sort effect.
Added Low Pass effect.
Added Lumisort effect.
Added QAM Fault effect.
Added Sigmoid Shifter effect.
Added Spiral Transform effect.
Added Step Slice effect.
Added True Glitch effect.
Optimised existing effects.
v1.2Added Quadratic Looper effect.
Added Row Shifter effect.
v1.1Added Codebook effect.
Added Quad Flip effect.
Added Render Raw File.
I'll demonstrate each filter with the following source image:
R/G/B channel displacement using source pixel intensity as an offset multiplier. Good for generating 3D-like effects that look a bit nicer than linear displacement.
Encrypts the image using AES in Electronic Codebook (ECB) mode, creating a heavy glitch effect that works best with images that have large sections of block colour.
Convert RGB to YUV / YUV to RGB
No demo image for this - converts between RGB888 and Y'UV444, mapping the channels respectively. Produces interesting effects when affecting only the Y channel, or only the UV channels.
Performs a cumulative mathematical operation (add / or / xor) on source pixels given a loop bound amount and step, with an option for horizontal or vertical. This can produce heavy glitch effects or ghost images.
Simple horizontal interlace effect with optional independent R/G/B channels.
Sorts an image's pixels horizontally by value, using Intensity, Hue, Saturation, Luminance, Red, Green, or Blue as the sort key.
Transforms the image into a digital signal and performs a low-pass filter. Essentially a blur that targets detailed areas most heavily.
Shifts pixels up to a certain distance, weighted by the luminance of the pixel.
Picks pixels at random and drags them (either horizontally or vertically) based upon a minimum and maximum drag distance.
Emulates a faulty Quadrature Amplitude Modulation system. Supersamples two selected channels of the image, applies a pair of 90-degree phase-shifted carrier waves of a specified frequency, combines the two channels, then performs a demodulation using specified carrier frequencies for each channel. By shifting the demodulation carrier frequencies, you can gain different failure modes. Right now this is a WIP and almost always produces very heavy glitches, but in future it will be significantly more powerful and precise. The ultimate goal is to build upon this to the point where you can fully transform an image into a broadcast TV frame signal with all sorts of tweakable parameters, apply a number of transmission filters (e.g. notch filter, noise, clipping, etc.) then demodulate it back into an image (emulating TV hardware functionality) with yet more tweakable parameters.
Flips pixel quads to create a subtle blocking effect. The process is invertable, such that performing the operation twice produces the original image. This can produce interesting subtle results when applied with other effects.
Translates X,Y coordinates based upon a quadratic function with customisable coefficients. Produces repeating loop patterns with varying scales.
Render Raw File
Renders a raw file as an image, into the current layer, given a pixel format and byte offset. This is a work in progress - there is currently no file browser, so you just have to manually enter the file name, and errors are not displayed. However, it can create some really cool effects - this one is a random DLL file loaded in 64bpp A16R16G16B16 format on top of the source image:
Shifts each row sequentially by a chosen offset, creating a tearing effect. In combination with other effects, can be used to create analog tape pause effects.
Works similarly to the Row Shifter effect, except it uses a sigmoid function to calculate the row offsets, and supports both positive and negative skew.
Almost useless at the moment. Translates each pixel from being in right to left, top to bottom sequence, into a spiral pattern. The original idea was to also include an inverse transform, such that a blur or other cross-pixel effects would make weird patterns when applied in sequence (e.g. spiral, blur, un-spiral), but writing this gave me a headache and I haven't got round to building the inverse function.
A split hold-and-drag effect with customisable position, length, and position settings.
Compresses the image to a JPEG and fuzzes the data in a deterministic pattern to create the classic blocky broken-JPEG look.