Modular Modifier (old)

Modular Modifier is a Processing script that allows you to chain together procedural/glitch effects on an input image/GIF. The output depends on the order and settings of each effect. For example, you can split a GIF into RGB subframes, then apply a glitch effect to those subframes before putting the whole thing back together again. Or you can convert an image to ASCII then spiral-project it. Or you can palette-cycle a GIF and then slit-scan it. There are lots of possibilities!

Note: this tool is mostly superseded by an HTML5 version, on my website. Additionally, some of this documentation is outdated.

the previous image slit-scanned and JPEG-glitched:

a spiral-projected GIF:

Download

Download version 2016-04-04

Requirements

This script was tested on Processing 3 and also requires the Processing 3 version of the gifAnimation library which can be downloaded here.

Usage

At the top of the file, set inputFilename and modifiers. Examples for modifiers are commented out below it. Each modifier is an object that can be initialized with or without options, in the latter case defaults are used.

Frames will be saved to the folder in framesFolder, which generates a path from a list of a folder and subfolders.

You can also set fps to change the rate that the output frames are displayed, but this doesn't affect the actual output, since individual images are exported and should be assembled to GIF with something like ImageMagick, FFmpeg, or Photoshop.

To export the results, press any key while the output window is open.

Frame Helper Details

FrameDuplicator

When loading still images instead of GIFs, this can be used to generate more frames to work with.

Options

PixelScaler

Scales input frames 2x, 3x, etc, without any smoothing.

Options

Doubler

Produces output frames with the input doubled, side-by-side.

Mirrorer

Produces output frames with the input doubled, horizontally mirrored.

Options

RgbSplitter

Splits RGB1, RGB2, etc frames into R1, G1, B1, R2, G2, B2, etc.

RgbMerger

Puts them back together.

HsbSplitter

Same idea as RgbSplitter, but with Hue, Saturation, Brightness.

HsbMerger

Puts them back together.

Frame Modifier Details

Asciifyer

Converts an image into ASCII art. Note 1: The fonts in /fonts will need to be installed first. Note 2: stores cached lookup tables in ~/Desktop/cache in order to run faster.

Options

PaletteCycler

Palette-cycles a frame based on brightness. The number of frames needs to be equal to the number of colors in the palette, which is 16.

Options

Polarizer

Creates a polar projection of the input.

Options

Spiralizer

Creates a logarithmic spiral projection of the input.

Options

BoxSwapper

This repeatedly takes two random pieces of a frame and swaps them.

Options

JpegGlitcher

Commonly known as the "notepad trick", this is the glitch effect you get when randomly removing chunks of a JPG's binary data. On small input frames, this can error out. Fixing that is a to-do.

Options

SlitScanner

Applies a slit-scan effect. Same idea as recording a plane propeller or other fast object with a cell phone camera.

Options

PixelSorter

This one needs to be revisited, and may not work like most pixel sorters.

Options

RgbShuffler

Shuffles RGB subframes between adjacent frames.

Options

To-do

Changelog

2016-04-04

2016-03-13

2015-05-06

2014-11-14

2014-11-03

2014-10-23

2014-05-25