About
Current status
- Started: November 2025
- Status: web lite build is public, full build still in active development.
- Web version scope: core image workflow. Heavier features like the full video pipeline stay in the standalone track.
About / Technical Overview
-
What TheBends is
TheBends is a creative image/video tool built from scratch for databending. Databending means intentionally modifying raw file data to create glitches and unexpected visual art. Instead of only using normal filters, TheBends lets you alter the underlying byte structure in controlled ways.
- Results feel less like standard filter packs and more unique.
- Different formats react differently to the same action.
- You can explore randomly and still reproduce results later.
-
Why this project exists
The main goal is a practical workflow for creative databending with high artistic freedom.
- One connected workspace for formats, chains, randomization, selection, and export.
- Fast iteration tools: generation mode, quick apply, undo flow, fullscreen workflow.
- Precise control: region selection, chunk range, manual + random parameter workflows.
- Reproducibility: seeds, logs, metadata, presets.
- Flexible export: bent formats, PNG snapshots, ZIP packages, video frame workflows.
-
Core idea: processing format
You load an image, TheBends converts it to a chosen target structure (for example BMP 8-bit, TIFF 4-bit, ILBM), then operations run on that format’s data model.
Format choice is a creative tool, not just an export option.
-
Supported input images
- Direct decode: BMP, TIFF (little-endian), PPM, PGM, TGA, ILBM, SGI RGB, Sun Raster, PCX.
- Common modern load support: PNG, JPEG, WEBP, GIF.
-
Processing formats you can bend in
- BMP: 24-bit, 8-bit paletted, 4-bit paletted, 1-bit paletted.
- TIFF: 24-bit, 8-bit paletted, 4-bit paletted, 1-bit paletted.
- TGA: 24-bit, 24-bit RLE.
- ILBM: 8/6/4 bitplanes.
- Other families: SGIRGB, SUNRAS, PCX, NETPBM, JPEGSAFE.
Lower bit depth usually gives harder/graphic looks; higher depth preserves richer color detail.
-
Operation system
There are currently 47 operations. Each operation is a data transformation rule with parameters and optional seeded randomness.
- Byte operations: XOR, shifts, sorting windows, bit transforms.
- Spatial operations: row/column/block remaps and smears.
- Channel/color operations: channel ordering, offsets, hue/luma/chroma style transforms.
- DSP-inspired operations: delay/reverb/phaser/chorus/comb-like logic applied to data.
-
Chain system
A chain is your recipe. You can add, remove, duplicate, reorder, load back into editor, update, and copy/paste steps. Order matters: A→B is not B→A.
-
Seeds and reproducibility
Same image + same format + same chain + same seed = same result. Change the seed and you get a variation.
-
Morphing across frames
Parameters can evolve over time with easing modes, useful for smoother sequence/video motion.
-
Randomization tools
- Random format picker
- Random chain builder
- Random parameter generation
- Range-scale control from 1x to 50x
-
Chunk bending
Modes: whole file, random contiguous chunk, or manual start/end chunk percentages.
-
Region selection
- Rectangle selection for direct area targeting.
- Polygon selection with editable nodes and smoothness control.
This isolates glitching to specific image zones.
-
Fullscreen generation mode
Fast iterative workspace with next-generation stepping, undo, zoom, and pan controls.
-
Generation automation
Next generation can auto-pick format + random one-step chain. You can constrain randomness using format/operation white- and blacklists.
-
Generation logging
Logs include format, operation, full parameter JSON, seed, chunk details, and region details. Undo is reflected in the log so final logs stay accurate.
-
Image export options
- Export bent native format
- Export PNG snapshot
- Export ZIP with file + metadata JSON + README
-
Save current in generation mode
Saves timestamped PNG + matching log text. Uses selected folder when available, otherwise browser download fallback.
-
Palette editing
Manual and randomized palette controls for 1-bit, 4-bit, and 8-bit modes across paletted format families.
-
JPEGSAFE mode
Safer scan-data bending for JPEG to reduce hard decode failures while keeping useful glitch behavior.
-
Video workflow
Frame-based processing with FPS, time-window, and frame-limit control. Export package includes processed frames, metadata, source copy, and helper scripts for MP4 rebuild and optional audio reattach.
-
Video quality profiles
Small, Balanced, and High profiles control CRF, encoder preset, and audio bitrate for fast output tradeoffs.
-
Preset system
Save/load JSON presets including format choice, chain steps, seeds, morph settings, palette settings, and frame options.
-
Metadata and packaging
Exports include structured metadata (time, source, format, chain, preset reference) for archiving and replay workflows.
-
Undo/redo and stability
Undo/redo works across editing and generation, busy states are visible, long jobs can be canceled, and errors are surfaced clearly in English.
-
Desktop workflow quality
Dense UI mode, fullscreen generation workflow, zoom/pan, and region tools keep high-res iteration practical.
-
Current practical value
The current build already supports full image/video databending workflows with speed, control, reproducibility, and export tooling.
-
Quick glossary
- Databending: intentional file-data manipulation for glitch art.
- Processing format: active structure used as bending playground.
- Bit depth: number of bits used for color data.
- Palette: fixed indexed color table.
- Seed: value for deterministic randomness.
- Chain: ordered list of operations.
- Morphing: parameter evolution over frames.
- Chunk bending: modify one contiguous data range.
- Region selection: bend only selected visual area.
- FPS: frames per second.
- CRF: H.264 quality/compression control value.
Demos
Demo 01 — Format comparison (same source, same chain, same seed)
phaser {"rate":1.2,"depth":0.7,"stages":4} · seed 123456 · chunk mode whole · source DSC_0506.JPG (JPEG)
Demo 02 — Bit depth comparison (same source, no chain)
DSC_0941.JPG (JPEG) · chain length 0 · chunk mode whole
Demo 03 — Palette control (BMP4)
DSC_1193.JPG (JPEG) · processing format BMP4 · chain length 0 · chunk mode whole
Demo 04 — Chunk bending
DSC_0053.JPG (JPEG) · processing format BMP24 · op amp {"gain":20,"mode":"soft"} · seed 123456
Demo 05 — Region selection
DSC_0061.JPG (JPEG) · chunk mode whole