Skip to content

sixem/bitrot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BitRot

BitRot (/ˈbɪt.rɒt/ noun) — A simple interface for creating glitchy video effects

ui

Showcase

Pixelsort: Smears and reorders pixels along lines or bands, turning motion and edges into streaky, glitchy gradients.

  • Example (Pixelsort)
    pixelsort.mp4

Chroma Glitch: Splits and offsets color channels to create RGB drift, halos, and jittery color separation.

  • Example (Chroma Glitch)
    chroma-glitch.mp4

Datamosh: Emulates compression corruption and motion‑vector bleed for fluid, melting transitions between frames.

  • Example (Datamosh)
    datamosh-classic.mp4

VHS: Adds retro tape artifacts/scanlines, noise, wobble, and soft tracking drift, for that worn‑out analog feel.

  • Example (VHS)
    nasa-water.mp4

Development

Prereqs (typical Tauri + Vite stack):

Install and run:

# install packages
pnpm install
# if you need to load the ffmpeg/ffprobe binaries from PATH:
pnpm run setup:ffmpeg
# start development environment
pnpm tauri dev

Tests

Frontend tests (Vitest):

pnpm test

Rust tests:

cd src-tauri
cargo test

See TESTS.md for coverage details.

Dependencies (ffmpeg/ffprobe)

This project expects ffmpeg and ffprobe as sidecar binaries.

Place them in:

  • src-tauri/binaries/

Quick setup (copies from your PATH):

pnpm run setup:ffmpeg

ffmpeg is resolved in this order:

  1. ffmpeg(.exe) / ffprobe(.exe) next to the app executable (packaged builds)
  2. Sidecars in binaries/ (packaged into app resources) or src-tauri/binaries/ (dev)
  3. System PATH as a final fallback

For development and building, use names that match your platform target triple:

  • Windows (x64 MSVC):

    • ffmpeg-x86_64-pc-windows-msvc.exe
    • ffprobe-x86_64-pc-windows-msvc.exe
  • macOS (Intel):

    • ffmpeg-x86_64-apple-darwin
    • ffprobe-x86_64-apple-darwin
  • Linux (x64 GNU):

    • ffmpeg-x86_64-unknown-linux-gnu
    • ffprobe-x86_64-unknown-linux-gnu

Tauri resolves these from the base names binaries/ffmpeg and binaries/ffprobe.

Build + portable zip (Windows)

To build a portable zip on Windows:

pnpm run setup:ffmpeg
pnpm tauri build
pnpm run make:portable

Notes

  • Some files include multiple video tracks; BitRot always targets the first video stream plus the first audio stream (if present).
  • H.264 requires even dimensions. If a clip is odd-sized (for example 1921x1081), BitRot trims a single pixel to keep encoders happy.
  • Datamoshing is intentionally destructive, so the result isn't always perfect, and some videos may work better than others for certain modes.

About

An application for datamoshing and creating glitchy video effects 💫

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors