explaingit

bradlarson/gpuimage

20,304Objective-CAudience · developerComplexity · 3/5DormantLicenseSetup · moderate

TLDR

iOS framework that applies image and video filters using the GPU for dramatically faster visual processing than CPU-based approaches.

Mindmap

mindmap
  root((repo))
    What it does
      GPU-accelerated filters
      Image and video processing
      Live camera effects
    How it works
      Filter pipeline chains
      OpenGL ES shaders
      Custom filter support
    Use cases
      Real-time camera effects
      Video file processing
      Photo editing apps
    Tech stack
      Objective-C
      OpenGL ES 2.0
      iOS 4.1+
    Built-in filters
      Color adjustments
      Blur effects
      Edge detection

Things people build with this

USE CASE 1

Build a real-time camera app with live sepia, blur, or edge-detection filters applied as the user frames shots.

USE CASE 2

Process video files to apply color grading, blur, or artistic effects and save the result as a new movie.

USE CASE 3

Create a photo editing app where users can chain multiple filters (e.g., blur then sharpen) and preview results instantly.

Tech stack

Objective-COpenGL ES 2.0iOSSwift

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Xcode, iOS SDK, and understanding of GPU shader integration; no external dependencies but needs device/simulator setup.

Use freely for any purpose, including commercial use, as long as you include the original copyright notice and license text.

In plain English

GPUImage is an open-source iOS framework written in Objective-C that lets developers apply image and video filters using the device's GPU (graphics processing unit) rather than the CPU. GPUs are specialized chips designed to handle many operations in parallel, making them dramatically faster for visual processing tasks. According to the README, on an iPhone 4 a simple image filter runs over 100 times faster on the GPU than an equivalent CPU-based approach. The framework works by setting up a processing pipeline called a chain: you connect a source (such as a live camera feed, a still image, or a video file) to one or more filters, and then to an output (such as the screen, a UIImage, or a saved movie file). For example, to show a sepia-toned live camera preview you connect GPUImageVideoCamera to GPUImageSepiaFilter to GPUImageView. Branching is supported, so the same source can feed multiple filter chains simultaneously. Under the hood, GPUImage uses OpenGL ES 2.0 shaders to do the actual processing, but hides all that complexity behind a clean Objective-C interface, you do not need to know anything about OpenGL to use it. The framework supports writing custom filters and includes a broad library of built-in effects covering color adjustments, blurs, edge detection, blending modes, and much more. It was a popular choice before Apple's Core Image framework matured on iOS. GPUImage requires OpenGL ES 2.0 (ruling out very early iPhones) and targets iOS 4.1 or later. It is BSD-licensed and is also available as a Swift-compatible framework module.

Copy-paste prompts

Prompt 1
Show me how to set up a GPUImage filter chain that takes live camera input, applies a sepia filter, and displays it on screen.
Prompt 2
How do I write a custom GPUImage filter that applies a specific color transformation to images?
Prompt 3
Walk me through the steps to process a video file with GPUImage, apply a blur filter, and save the output.
Prompt 4
What's the difference between using GPUImage and Core Image for iOS image filtering, and when should I pick each one?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.