A collection of image filters written in pure Luau; parallelizable via a custom multithreader.
Cezanne provides a set of various filters which you can use off the shelf via direct requires, or as a parameter to the custom parallelizer system.
Note
As of May 10, 2026, the only multithreader implementation available is that for Roblox. Though, this implementation, ironically, seems to be slower than direct requires (which are singlethreaded by nature). While this remains a persistent problem, please refrain from using that implementation. This note will be removed once the problem is resolved or the implementation is discontinued as a whole.
All filters provided by the repository have a common function signature, being:
(ImageSize: vector, InputImage: buffer, OutputImage: buffer, ...: any) -> ()where ...: any is a placeholder for parameters unique to the filter's functionality. All valid Cezanne filters (i.e. filters that can be passed as a parameter to the custom multithreader) must have these parameters, with their order and arity retained.
The following are the image filters implemented by the repository at filters. As of now, data regarding their implementation status in the only data visible. Data such as their average time taken and example images showcasing their visual output, are yet to be added.
| Feature | Status |
|---|---|
| Greyscale | ✓ |
| Mean Blur | ✓ |
| Gaussian Blur | ✓ |
| Kuwahara | ✓ |
| Sobel Edge | ✓ |
| Gaussian Edge | ✓ |
| Extended Difference of Gaussians | ✓ |
| Monochromatic Error-Diffused Dithering | ✓ |
| Chromatic Error-Diffused Dithering | ✓ |
| Error-Diffused Palette Quantizer | ✓ |
[1] The name was based on the famous still-life painter, Paul Cézanne.
[2] This project actually started on the late August of 2024 and was set to be finished and released to the public on September, but was postponed as school had just started again and development had to be pulled back a bit. I also started to gain interest in other more complex subjects to program around this time, which distracted me away.