Algorithm reference

Every dithering algorithm in the tool, named, grouped, and rendered by the same engine that ships inside it.

125 algorithms in 11 families

Each sample is the same gray ramp, rendered at 360×90 by the tool's own engine.

Open the tool

Error Diffusion 24

Floyd-SteinbergThe benchmark: error spread over four neighbors, giving the fine, even grain that suits photographs.
Floyd-Steinberg (Serpentine)Floyd-Steinberg scanning alternate rows in opposite directions, which breaks up the diagonal worm patterns a single scan direction leaves behind.
Jarvis-Judice-NinkeTwelve neighbors across three rows: smoother and less patterned than Floyd-Steinberg, for roughly three times the work.
StuckiThe same twelve-neighbor reach as Jarvis-Judice-Ninke with power-of-two weights, which reads sharper and computes faster.
Stucki (Serpentine)Stucki with alternating scan direction, trading its slight directional bias for a more even field.
BurkesStucki with the third row dropped: most of the smoothness for two-thirds of the cost.
AtkinsonDiffuses only three quarters of the error, so highlights and shadows blow cleanly to white and black — the early Macintosh look.
Atkinson (Serpentine)Atkinson's high-contrast look with alternating scan direction to even out its tendency to streak.
Sierra (3-row)A three-row kernel sitting between Stucki and Burkes in weight — smooth mid-tones without Jarvis's softness.
Sierra (2-row)Sierra's two-row form: faster, with slightly more visible texture.
Sierra LiteThe smallest Sierra — three neighbors, very fast, noticeably coarser grain.
Stevenson-ArceA wide kernel spanning four rows, designed for output on a 45-degree grid rather than a square one.
FanA Floyd-Steinberg variant that shifts weight along the row below to suppress its diagonal worms.
Shiau-Fan 1Five terms reaching two pixels back on the next row, which cancels directional artefacts more cheaply than a full three-row filter.
Shiau-Fan 2The Shiau-Fan kernel rebalanced toward the pixel directly ahead, giving a slightly crisper result.
Shiau-Fan 3The widest of the three, reaching three pixels back on the next row for the smoothest of the family.
XOTFive terms reaching two rows down, softening the texture without paying for a full three-row filter.
Diagonal DiffusionWeights the error down and to the right, so the grain reads as a direction rather than as noise.
Fake Floyd-SteinbergThree terms at eighths instead of four at sixteenths: visibly coarser than the real thing, and much cheaper.
1D DiffusionPushes the whole error to the next pixel on the same row and nowhere else, producing hard horizontal streaking — a texture, not a reproduction.
Steve PigeonA nine-term kernel reaching two pixels either side, tuned to keep flat areas from banding.
Robert KistFloyd-Steinberg's footprint with the lower weights rebalanced toward the pixel directly below.
2D Diffusion (Type 1)A compact serpentine kernel that spreads error in both axes, aimed at even texture on gradients.
2D Diffusion (Type 2)The second two-dimensional variant, weighted further down the image for a softer, more diffuse grain.

Variable Error Diffusion 2

RiemersmaDiffuses error along a space-filling curve rather than along scanlines, so the texture has no grain direction at all.
OstromoukhovVaries its coefficients with the input tone, which removes the artefacts fixed kernels leave in the deep shadows and bright highlights.

Ordered Dithering 47

Bayer 2x2The coarsest ordered threshold matrix: four levels, unmistakably digital, and very fast.
Bayer 3x3A nine-level matrix whose odd size stops the pattern locking to a power-of-two pixel grid.
Bayer 4x4Sixteen levels — the classic crosshatch of early games and Teletext.
Bayer 8x8Sixty-four levels: the default ordered dither, fine enough for photographs while still reading as a pattern.
Bayer 16x16256 levels, so the crosshatch becomes texture rather than pattern.
Bayer 32x32A very fine matrix that approaches continuous tone while staying perfectly repeatable.
Bayer 64x64The largest Bayer matrix here — effectively smooth, and useful when the pattern must tile invisibly across a large print.
Clustered Dot 4x4Groups dots into clumps that grow with tone, the way a printing press lays ink.
Clustered Dot 6x6A larger clustered cell: coarser dots that survive photocopying and low-resolution printing.
Clustered Dot 8x8The largest of the plain clustered cells, for output where isolated pixels would be lost.
Bayer Clustered Dot 1The first of eleven hybrid matrices that grow clustered dots on a Bayer lattice, combining press-like clumping with dispersed ordering.
Bayer Clustered Dot 2A tighter clustering than the first, giving smaller dot cores.
Bayer Clustered Dot 3Clusters weighted toward the cell center for rounder dots.
Bayer Clustered Dot 4A diagonal bias in the growth order, which reads as a 45-degree screen.
Bayer Clustered Dot 5Growth ordered outward from two centers per cell, doubling the apparent screen frequency.
Bayer Clustered Dot 6A looser cluster that keeps more dispersed pixels in the mid-tones.
Bayer Clustered Dot 7Weighted for even ink coverage in the shadows.
Bayer Clustered Dot 8A squarer dot shape, which holds its edges better at low resolution.
Bayer Clustered Dot 9Elongated clusters, giving the screen a directional grain.
Bayer Clustered Dot 10A fine cluster for high-resolution output where the dots should not be individually visible.
Bayer Clustered Dot 11The largest and softest of the family, closest to a conventional halftone.
Dispersed DotScatters the threshold order as widely as possible within the cell — maximum dispersion, minimum clumping.
Dispersed Dots 1A dispersed matrix tuned so no two adjacent thresholds are consecutive, which suppresses visible seams.
Dispersed Dots 2A second dispersed variant with a different scatter order, useful when the first tiles visibly on your image.
Ulichney Void DispersedUlichney's void-and-cluster ordering applied as a dispersed matrix: blue-noise character at ordered-dither cost.
Ulichney Bayer 5x5A five-by-five Bayer variant from Ulichney's work; the odd size avoids power-of-two alignment artefacts.
UlichneyUlichney's general ordered matrix, the reference implementation much of this family descends from.
Ulichney Clustered DotUlichney's clustered arrangement, designed for devices that cannot hold isolated pixels.
Non-Rectangular 1A threshold cell that is not square, so the pattern does not align with the pixel grid.
Non-Rectangular 2A second non-rectangular cell with a different aspect, giving a distinctly woven texture.
Non-Rectangular 3A steeper cell angle, which reads as a diagonal weave.
Non-Rectangular 4The most elongated of the non-rectangular cells, close to a line screen.
Central White PointGrows dots outward from a light center, keeping highlights open and clean.
Balanced Centered PointGrows dots symmetrically about the cell center, which keeps tone even as the dot fills.
Diagonal OrderedAn ordered matrix rotated onto the diagonal, the traditional angle for a single-color screen.
Magic 4x4A magic-square threshold matrix: every row and column sums equally, so tone stays even across the cell.
Magic 6x6The six-by-six magic square, a middle ground between pattern visibility and tonal resolution.
Magic 8x8The largest plain magic square here, fine enough for photographic tone.
Magic 4x4 (45°)The four-by-four magic square rotated 45 degrees, which hides the pattern from the horizontal and vertical.
Magic 6x6 (45°)The six-by-six magic square at 45 degrees — the classic angle for a black screen.
Magic 8x8 (45°)The eight-by-eight magic square at 45 degrees, the smoothest of the rotated set.
Magic 5x5 CircleA magic square whose growth order is circular, producing round dots rather than square ones.
Magic 6x6 CircleA larger circular magic cell, for rounder dots at coarser screen frequencies.
Magic 7x7 CircleThe largest circular magic cell — closest in look to a conventional round-dot halftone.
Blue Noise 128A real 128×128 void-and-cluster blue-noise mask: no repeating pattern the eye can find, and no error propagation at all.
Interleaved GradientJorge Jimenez's interleaved gradient noise, designed for real-time rendering — cheap, stable and very even.
Luminance AdaptiveChooses its threshold matrix per pixel according to local brightness, keeping detail in both the highlights and the shadows.

Noise 9

Gaussian NoiseThresholds against normally-distributed noise: soft, filmic grain with no structure whatsoever.
White NoisePure random thresholds — the noisiest option here, and the reference the other noise types are shaped against.
Blue NoiseNoise with the low frequencies removed, which the eye reads as texture rather than as dirt. The best-looking noise dither for most images.
Green NoiseMid-frequency noise: clumps more than blue noise, which survives printing and low-resolution display better.
Pink NoiseNoise weighted toward low frequencies, giving a cloudier, more organic mottle.
Violet NoiseThe inverse of pink — almost all high frequency, for the finest possible grain.
Red NoiseThe strongest low-frequency weighting here, producing broad blotches rather than grain.
Triangle NoiseTriangular-distribution noise, which removes the tone-dependent bias plain uniform noise introduces.
Perlin NoiseCoherent gradient noise, so the threshold field flows in shapes rather than scattering — a marbled, hand-made look.

Dot Diffusion 12

Knuth Dot DiffusionKnuth's original dot diffusion: the image is divided into cells processed in a fixed class order, spreading error in every direction rather than along a scan.
Mini-Knuth Dot DiffusionA smaller Knuth cell, giving finer texture and faster processing.
Optimized KnuthKnuth's method with a class order chosen to minimize the visible cell structure.
Mese 8x8Mese and Vaidyanathan's optimized eight-by-eight class matrix, a measurable improvement on Knuth's original ordering.
Mese 16x16The sixteen-by-sixteen Mese matrix: smoother still, at four times the cell area.
Guo-Liu 8x8Guo and Liu's class matrix, tuned against a human visual model rather than by hand.
Guo-Liu 16x16The larger Guo-Liu matrix, for the smoothest result this family offers.
Spiral Dot DiffusionProcesses each cell in a spiral from the center out, which suppresses the rectangular cell edges.
Inverted SpiralThe spiral run inward from the edges, giving the opposite bias in the cell.
Lippens-Philips 1The first Lippens-Philips class matrix, designed for hardware implementation where memory is scarce.
Lippens-Philips 2A second Lippens-Philips ordering with different edge behavior.
Lippens-Philips 3The third of the set, the smoothest and the most expensive.

Space-Filling Curves 8

Hilbert CurveWalks the image along a Hilbert curve, so neighboring pixels in the walk are neighbors on screen — texture with no direction and no seams.
Riemersma PeanoRiemersma's method on a Peano curve, which fills the plane in thirds rather than halves and gives a coarser, more woven grain.
Riemersma FASS 0The first of three FASS-curve variants — space-filling, self-avoiding, simple and self-similar — with the shortest memory of past error.
Riemersma FASS 1A longer error memory than FASS 0, trading sharpness for smoothness.
Riemersma FASS 2The longest FASS memory here, the smoothest and the least sharp.
Riemersma GosperRiemersma on the Gosper curve, whose hexagonal cell gives a distinctly non-square texture.
Riemersma FASS SpiralA spiral FASS variant: the walk turns continuously, so the grain has no preferred axis at all.
Riemersma Hilbert 2The Hilbert walk transposed — the same curve reflected about the diagonal, so its grain runs the other way.

Optimization-Based 10

Void & ClusterUlichney's void-and-cluster: builds the threshold mask by repeatedly filling the largest empty space, producing the most even dot distribution of any ordered method.
Kacker-AllebachOptimizes the dot pattern against a model of human vision, which is why it holds fine detail that error diffusion smears.
DBS Coarseness 0Direct Binary Search at its finest setting: iteratively swaps pixels until no swap improves the result. The slowest and the most accurate method here.
DBS Coarseness 1DBS with a slightly wider filter, giving marginally coarser grain for less work.
DBS Coarseness 2DBS at a moderate coarseness — a good balance of quality and time.
DBS Coarseness 3DBS coarsening further, with visibly larger dot clusters.
DBS Coarseness 4The midpoint of the DBS range, where the texture starts to read as deliberate.
DBS Coarseness 5Coarse DBS, approaching the look of a clustered screen.
DBS Coarseness 6Very coarse DBS, for output that cannot resolve fine dots.
DBS Coarseness 7The coarsest DBS setting: large, well-separated clusters that survive any reproduction.

Pattern Tile 6

Pattern 2x2Replaces each pixel with a two-by-two tile chosen by tone — the output is larger than the input, and every tone is a fixed shape.
Pattern 3x3 v1A three-by-three tile set with ten tones, arranged to grow from the center.
Pattern 3x3 v2The same cell with a different growth order, giving a squarer dot.
Pattern 3x3 v3A third three-by-three arrangement, biased toward the diagonal.
Pattern 4x4A four-by-four tile set with seventeen tones — smoother, at sixteen times the pixel count.
Pattern 5x2A wide, short tile, which produces a horizontal line-screen texture.

Hybrid 3

Ordered ModulationAn ordered matrix whose threshold is modulated by a second waveform, breaking the regularity without adding noise.
Contrast AwareSwitches between ordered and diffused behavior according to local contrast: patterns in flat areas, detail preserved at edges.
Grid DitherThresholds on a fixed grid with the cell size exposed as a control, for a deliberate, visible pixel structure.

Special 2

Yliluoma (Type 1)Yliluoma's first ordered algorithm: searches for the mixture of palette colors whose average matches the target, rather than picking the nearest single color. Far better on small palettes.
Yliluoma (Type 2)The second Yliluoma variant, which weights the mixture search by perceived brightness and handles gradients more gracefully.

Modulation Diffusion 2

Modulation Diffusion (Horizontal)Error diffusion whose kernel is modulated horizontally, so the grain varies in bands across the image.
Modulation Diffusion (Vertical)The same modulation applied vertically, banding the texture down the image instead.

ProDesigner is free for everyone, everywhere. If it saves you time, consider supporting its development.

Support ProDesigner