Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GenerateMe Video Glitch Processing Suite

GenerateMe Video converts the classic GenerateMe glitch suite by Tomasz Sulej (@tsulej / generateme) into frame-by-frame video glitch processors for both Processing 3 & 4 (Java Mode) and openFrameworks (C++).

It supports 720p, 1080p, 4K, and 8K video processing with temporal continuity, parameter evolution, scaled miniature HUD preview display, and embedded FFmpeg workflows.


Generative Video Glitch Processes & Rendered Examples

Below is a catalog of all 32 glitch processes included in the suite, along with their live autoplaying WebP video previews and an explanation of the underlying algorithm:

Sketch / Process Live WebP Preview Glitch Algorithm & Process Description
blendimages Temporal Frame Delay Blending: Blends current video frames with delayed historical frames using dynamic channel statistics, color math mode switching, and pixel difference accumulation over time.
composite_video_simulator Composite Analog Signal Simulation: Emulates VHS, NTSC, and PAL analog video degradation including line sync jitters, scanline noise, phase shifts, phosphor blooming, and tape dropouts.
cutsort Line Slice & Pixel Sorting: Cuts frames into horizontal or vertical line slices and sorts color channel pixel values along slice boundaries based on luminance or hue thresholds.
decayscreen Screen Decay Hack: Port of the classic XScreenSaver decay algorithm that applies organic pixel fuzzing, spatial stretching, squeezing, and directional bias drift across frames.
decompose_paint Quadtree Paint Decomposition: Recursively subdivides image frames into quadtree rectangular color blocks evaluated against color variance thresholds, creating abstract painterly blocks.
distorter Wave & Perlin Displacement Field: Applies dynamic sine-wave displacement fields combined with multi-octave Perlin noise maps to distort and ripple frame pixels over time.
drawing_generative Procedural Drawing Agents: Autonomous agents navigate image brightness vector fields, depositing generative ink lines and trails guided by underlying frame channel data.
drawing_strokes Feature-Aligned Robot Brush Strokes: Renders video frames into stylized painterly brush strokes aligned with image edge gradients and structural feature contours.
fm Frequency Modulation Synthesis: Treats pixel scanlines as continuous audio/radio waveforms, modulating and demodulating frequency signals to generate video synthesis artifacts.
fractalify Mandelbrot / Julia Complex Warping: Maps image pixels into complex plane coordinates, using Mandelbrot and Julia set iterations driven by frame color channels to warp frame geometry.
granularresynth Visual Granular Re-synthesis: Slices image frames into visual micro-grains, redistributing and re-synthesizing pixel grains temporally across frame sequences.
imagelens Refraction & Chromatic Aberration Lens: Simulates optical refraction lenses, applying radical displacement mapping and RGB chromatic aberration distortion driven by depth maps.
imageslicer Voronoi Slice Segmentation: Segments image frames into Voronoi geometric polygon regions, displacing slice positions and rotating segments based on temporal noise.
imsyntex Texture Patch Synthesis: Reconstructs frame images using non-parametric texture synthesis by matching and blending texture patches sampled from frame source regions.
lz77_images LZ77 Compression Dictionary Glitching: Converts image data into LZ77 compression tokens, corrupting match offsets and length buffers to induce structural compression glitches.
lz77_raws Raw Binary LZ77 Stream Corruption: Operates directly on raw byte streams compressed with LZ77, injecting bitwise corruption to cause decoding stream offsets and data tearing.
median_filter Order-Statistic Percentile Filtering: Applies custom median and rank percentile filters to local pixel neighborhoods, yielding posterized lines and high-contrast block edges.
mirrorimage Multi-Mode Symmetry Mirroring: Mirrors frames across 24 dynamic geometric symmetry modes, including quad symmetry, kaleidoscopic rotations, and edge-folded reflections.
moire Moiré Interference Patterns: Overlays procedural line grids, concentric rings, and wave patterns to create optical moiré interference fringes across moving video frames.
ntsc_analogtv NTSC Analog TV Broadcast Emulation: Emulates cathode-ray tube (CRT) display dynamics, sync signal losses, horizontal/vertical hold errors, scanline shadow masks, and static snow.
Obj2Raw 3D OBJ Mesh & Vertex Cloud Projection: Projects rotating 3D wireframe OBJ meshes and vertex point clouds dynamically onto 2D video frames with z-depth layering.
pix2line Grid-Snapped Vector Line Conversion: Converts raster pixel grids into vector-like hatch line segments snapped to noise grids, direction vectors, and luminance bands.
pixeldrifter Thresholded Directional Pixel Drift: Shifts pixels along directional vectors when color channel values cross threshold conditions, causing pixels to bleed and trail across frames.
pngglitch PNG Chunk Corruption & XOR Bit Inversion: Simulates raw PNG file chunk corruption, corrupting scanline filter types and applying XOR bit inversion across image scanlines.
shufflestream 16x16 Tile Stream Permutation: Divides video frames into 16x16 grid cell tiles and permutes tile positions across frames using deterministic pseudo-random shuffling streams.
slitscan Space-Time Slitscanning: Captures dynamic temporal slit slices across sequential video frame history, converting temporal motion into spatial distortions.
threadraw Generative Soft Thread Overlay: Weaves generative thread overlays and string patterns across frames while preserving underlying subject contours and color balance.
ultimateSort Multi-Algorithm Pixel Sorting Engine: Comprehensive pixel sorting framework containing 20+ sorting algorithms (QuickSort, MergeSort, ShellSort, Radix, etc.) across channels.
watmap Histogram Texture Tile Mapping: Matches regional source frame histograms to pre-computed target texture tile sets, mapping input video onto archival texture libraries.
wavelets Haar Wavelet Frequency Quantization: Performs 2D Haar wavelet transform decomposition on video frames, quantizing high-frequency sub-band coefficients to produce frequency ringing.
wrongqsort Faulty QuickSort Glitch Engine: Employs an intentionally buggy QuickSort implementation that swaps out-of-order pixel elements into recursive self-similar glitch patterns.
wzipprocess2 Quantized Wavelet Recompression: Applies multi-pass wavelet compression and byte packing quantization, inducing blocky compression artifacts and frequency banding.

Highlights & Features

  1. Processing & openFrameworks C++ Support:

    • Processing 3/4 (Java Mode) sketches located in processing_sketches/.
    • openFrameworks (C++) project applications located in openframeworks_sketches/.
    • openFrameworks binaries/source trees are not bundled with the repository, ensuring a clean and lightweight git repository.
  2. Master openFrameworks Application:

    • openframeworks_sketches/GenerateMe_Video_MasterApp/ allows live keyboard switching ('1'-'9', 'N') across all 32 video glitch algorithms during playback/rendering.
  3. Full Resolution Processing & Miniature Preview Display:

    • Offscreen graphics buffers (PGraphics in Processing, ofFbo in openFrameworks) render full-resolution output frames (4K, 1080p, 720p).
    • Display window renders a scaled miniature preview (e.g. 960x540) with live HUD progress overlays, preventing screen overflow errors on smaller monitors.
  4. Temporal Continuity:

    • Smooth parameter evolution (noise(t)) and temporal frame feedback guarantee smooth video motion without erratic flickering.

Quick Start (FFmpeg Workflow)

1. Extract Frames from Video

ffmpeg -i input.mp4 -q:v 2 input_frames/frame_%04d.png

2. Process Frames

  • Processing: Open any sketch in processing_sketches/ (e.g., processing_sketches/decayscreen/decayscreen.pde) in Processing 3/4 and press Run (Ctrl + R).
  • openFrameworks: Build and run any project in openframeworks_sketches/ (e.g., GenerateMe_Video_MasterApp/) linking to your local OF_ROOT.

3. Re-assemble Output Video

ffmpeg -r 30 -i output_frames/frame_%04d.png -i input.mp4 -map 0:v:0 -map 1:a:0? -c:v libx264 -pix_fmt yuv420p output.mp4

Credits & License

  • Original single-image algorithms by Tomasz Sulej (generateme.tumblr.com).
  • Processing 3 ports by wabisabit & philhudson91.
  • Video framework, temporal continuity, miniature preview scaling, openFrameworks C++ suite, and FFmpeg video pipeline by Antigravity.
  • Released under Unlicense.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages