ImgMixer

A real-time image convolution playground built with C++ and SDL3

Role

Designer & Implementer

Platform

SDL3 / Native

Timeline

2026

Tools

C++17 · SDL3_image

Overview

Convolution kernels, applied live

ImgMixer loads an image into a software framebuffer and lets you apply classic image-processing kernels in real time, watching the pixel buffer update as you switch effects.

The project is built on SDL3 for windowing and rendering, with a custom FRAME abstraction for the pixel buffer and a KERNEL module that implements each convolution filter. Keyboard shortcuts toggle between blur, Gaussian blur, emboss, Laplacian, Sobel edge detection, ridge detection, sharpen, and color inversion — with the option to reset or save the current frame at any time.

Approach

A pixel buffer and a kernel library

Rather than relying on an existing image-processing library, each convolution kernel is implemented directly against the raw frame buffer, giving full control over how the matrix is applied per pixel.

Load image → framebuffer → convolution kernel pass → SDL texture update → optional save

8

Convolution kernels implemented

C++17

Core implementation

SDL3

Real-time rendering

Live

Keyboard-driven effect switching

Timeline

2026

Role

Designer & Implementer

Platform

Native desktop (SDL3 framebuffer)

Tools

C++17, SDL3, SDL3_image, Make

Effects

Blur, Gaussian blur, emboss, Laplacian, Sobel, ridge, sharpen, invert