Splotch Image Generator
Generate painterly splotch art from any image. Averages random square regions with exponential size distribution for unique abstract effects.
About
The splotch filter decomposes an image into averaged square regions of varying size. Large clumps receive fewer iterations, producing broad color washes. Small clumps receive exponentially more iterations, preserving localized detail. The distribution follows count(s) = min + (max − min) × tp, where t is a normalized position between 0 and 1. The exponent p controls curve steepness. At p = 1 the distribution is linear. At p = 3 (default) the smallest clumps dominate heavily, creating a characteristic organic texture.
Getting the parameters wrong produces either a blurred mess (too few small iterations) or an unchanged image (too few large iterations). This tool exposes the full parameter space with real-time preview so you can dial in the exact abstraction level. Processing runs in a Web Worker so large images (up to 4096×4096 px) do not freeze the browser. Note: results are non-deterministic. Each run produces a unique output due to random region placement.
Formulas
For each clump size level s starting from size and stepping down by step to a minimum of 1, the iteration count is computed as:
where the normalized parameter t is:
At each iteration, a random position (x, y) is chosen uniformly. All pixels within the s × s square anchored at that position are averaged:
The same averaging is performed independently for each channel (R, G, B). Alpha is preserved. Every pixel in the square is then set to the averaged color, producing the characteristic flat-patch appearance.
Where: size = maximum clump side length, min = iterations at largest clump, max = iterations at smallest clump, p = exponent controlling curve shape, step = size decrement between levels, t = normalized position in [0, 1].
Reference Data
| Parameter | Symbol | Default | Range | Effect |
|---|---|---|---|---|
| Max Clump Size | size | 4 | 2 - 64 | Side length of the largest averaged square |
| Min Iterations | min | 1000 | 100 - 50000 | Iterations at the largest clump size |
| Max Iterations | max | 9000 | 100 - 50000 | Iterations at the smallest clump size (1×1 or step-determined) |
| Exponent | p | 3 | 0.1 - 10 | Curve steepness. Higher = more weight on small clumps |
| Step | s | 1 | 1 - 16 | Decrement between clump sizes |
| Exponent 1 | - | - | - | Linear distribution: equal weight all sizes |
| Exponent 2 | - | - | - | Quadratic: moderate small-clump bias |
| Exponent 3 | - | - | - | Cubic: strong small-clump bias (recommended) |
| Exponent 5 | - | - | - | Quintic: extreme detail preservation |
| Exponent 0.5 | - | - | - | Square root: large-clump bias, very abstract |
| Step 1 | - | - | - | Every size level processed: smoothest gradient |
| Step 2 | - | - | - | Skip every other level: faster, blockier |
| Size 2 | - | - | - | Minimal abstraction: subtle mosaic |
| Size 8 | - | - | - | Moderate abstraction: painterly feel |
| Size 16 | - | - | - | Heavy abstraction: large color blocks |
| Size 32 | - | - | - | Extreme: nearly impressionist blobs |
| Size 64 | - | - | - | Maximum: coarse abstract tiles |
| Total Iterations | - | - | - | Sum of all size-level iterations. Higher = slower |
| Image Limit | - | 4096px | - | Max dimension. Larger images auto-scaled down |