Skip to content
madphaseBack to website ↗
Contact support ↗

Pixel Sorting

Sort pixels along paths and intervals to create flowing streaks, melts, and colour separations.

Add Pixel Sorting

Open an image or build the source composition first. Put this effect after the content it should process in stack processing order. Choose Glitch → Pixel Sorting in the effects picker, or search for Pixel Sorting with Cmd/Ctrl + F. Select the new layer in Layers to open its Effect Panel.

Choose the path

In Path, select Mode. Adjust Angle or the mode-specific origin and field controls so the path follows the direction you want to sort. Turn on canvas handles for editable spatial paths.

Choose what sorts

In Sort, choose Sort By and Order. In Target, choose the source test and set its threshold or range; increase Quantity until useful regions participate.

Set streak length

In Interval, choose Mode and adjust Length or Min/Max Length where available. Continuous Streamlines follow the field to their natural ends; interval controls apply to segmented modes. Finish with Smoothing, Feather or a gradient in Effects.

Pixel Sorting: source left and current native result right
Source left; Pixel Sorting result right. Example settings. Source: David Clode (Unsplash).

Edit the shared palette

Enable Gradient in Effects to show Palette. Colors and Palettes explains adding and moving stops, editing colour and opacity, extracting colours and saving a palette for reuse.

Compare and finish

Toggle the layer eye to compare with the incoming composition. Use the Effect Panel footer for opacity and blend mode, or add a mask to limit the affected area. In Video or Live, use the function menu on a supported control to add keyframes or a driver.

Control reference

Show individual controls
ControlWhat it doesValues and animation
Heightwave height — negative flips the phase-50 to 50 %; -256 to 256 px
Default: 1 %
Continuous keyframes
Angleorientation of the path0° to 360°
Default: 0°
Continuous, overflow allowed
X Originhorizontal pivot the fan opens away from0% to 100%
Default: 0%
Continuous keyframes
Y Originvertical pivot the fan opens away from0% to 100%
Default: 50%
Continuous keyframes
Blendcolour space used between palette stopsOKLab / RGB / HSL
Default: OKLab
Discrete keyframes
Continuous StreamlinesKeeps vector-field streamlines continuous through the sorting region.On / Off
Default: Off
Discrete keyframes
Curve SmoothnessSmooths bends in the sorting path so neighbouring pixel runs follow a more continuous curve.0% to 100%
Default: 100%
Continuous keyframes
Dipole AXhorizontal position of the first pole0 to 1
Default: 0.3
Continuous keyframes
Dipole AYvertical position of the first pole0 to 1
Default: 0.5
Continuous keyframes
Dipole BXhorizontal position of the second pole0 to 1
Default: 0.7
Continuous keyframes
Dipole BYvertical position of the second pole0 to 1
Default: 0.5
Continuous keyframes
Pole Signhow the two poles interactOpposite Poles / Same Poles / Both Attract
Default: Opposite Poles
Discrete keyframes
Featherfades interval edges without changing their colour orderOn / Off
Default: Off
Discrete keyframes
Feather Kneehow far the edge fade reaches into each interval0% to 50%
Default: 20%
Continuous keyframes
Feather Opacityopacity at the feathered interval edges0% to 100%
Default: 0%
Continuous keyframes
Octavesmore octaves = finer flow detail1 to 6
Default: 3
Discrete keyframes
Feature Sizeaverage size of the noise features0.5 to 300 % (typed input: 0.5 to 1000); 5 to 4000 px (typed input: 5 to 16000)
Default: 5 %
Continuous keyframes
Seedchange for a different random pattern0 to 1000
Default: 0
Discrete keyframes
Tightnesspositive winds tighter, negative inverts the wind-2 to 2
Default: 0.5
Continuous keyframes
Gradientreplaces each interval with the selected gradient paletteOn / Off
Default: Off
Discrete keyframes
Interval Blursoftens the seams between adjacent intervals0% to 100%
Default: 0%
Continuous keyframes
Lengthbase length each random interval rolls around0 to 100 %; 0 to 4000 px (typed input: 0 to 16000)
Default: 7.5 %
Continuous keyframes
Length Variancehow widely each rolled length deviates from the base — 0 = uniform, 100 = full spread0% to 100%
Default: 100%
Continuous keyframes
Modehow the path is sliced into sortable runsThreshold / Random / All
Default: Threshold
Discrete keyframes
Seeddrifts random interval length and offset patterns — same number repeats the layout0 to 999999
Default: 0
Discrete keyframes
Shiftslides intervals along the path — animate to flow0% to 100%
Default: 0%
Continuous keyframes
Thicknessperpendicular streamline width — wider = blockier streaks0.5 to 50 %; 1 to 500 px
Default: 1 px
Continuous keyframes
Offsetshifts the vortex line off centre-0.5 to 0.5
Default: 0
Continuous keyframes
Vortex Radiussize of each vortex0.01 to 0.3
Default: 0.08
Continuous keyframes
Spacinglower = more eddies packed together0.02 to 0.5
Default: 0.15
Continuous keyframes
Strengthhow hard each vortex bends the flow0 to 5
Default: 0.6
Continuous keyframes
Max Lengthcaps each interval so one streak can't dominate0.1 to 100 %; 1 to 2000 px (typed input: 1 to 10000)
Default: 100 %
Continuous keyframes
Min Lengthskips intervals too short to register0 to 100 %; 0 to 2000 px (typed input: 0 to 10000)
Default: 0 %
Continuous keyframes
Mirrorblends each sorted run with a reflected copyOn / Off
Default: Off
Discrete keyframes
Mirror Kneewhere the reflection folds inside each run0% to 100%
Default: 50%
Continuous keyframes
Radiussize of the obstacle0.01 to 0.5
Default: 0.15
Continuous keyframes
X Originhorizontal position of the obstacle0% to 100%
Default: 50%
Continuous keyframes
Y Originvertical position of the obstacle0% to 100%
Default: 50%
Continuous keyframes
Output Only Sortedhides unsorted pixels, leaving streaks on transparentOn / Off
Default: Off
Discrete keyframes
Orderascending or descending orderAscending / Descending
Default: Ascending
Discrete keyframes
Originshifts the wave sideways0% to 100%
Default: 0%
Continuous keyframes
Palettegradient palette sampled from the start to end of every intervalAvailable presets
Default: madphase
Discrete keyframes
Path AAsmooths jagged vector-field path edges after sorting0% to 100%
Default: 20%
Continuous keyframes
Path Control1 XHorizontal position of the sorting path's control point 1.-2 to 3
Default: 0.38333334
Continuous keyframes
Path Control1 YVertical position of the sorting path's control point 1.-2 to 3
Default: 0.5
Continuous keyframes
Path Control2 XHorizontal position of the sorting path's control point 2.-2 to 3
Default: 0.6166667
Continuous keyframes
Path Control2 YVertical position of the sorting path's control point 2.-2 to 3
Default: 0.5
Continuous keyframes
DirectionChooses which direction the pixels travel along the path.Forward / Reverse
Default: Forward
Discrete keyframes
End FeatherBlend out at the end of the whole spline.0% to 100%
Default: 0%
Continuous keyframes
End WidthSets the width of the path at its endpoint.0% to 100%
Default: 100%
Continuous keyframes
Path End XHorizontal position of the sorting path's end.-2 to 3
Default: 0.85
Continuous keyframes
Path End YVertical position of the sorting path's end.-2 to 3
Default: 0.5
Continuous keyframes
Side FeatherBlend the spline’s side edges into the underlying image.0% to 100%
Default: 0%
Continuous keyframes
Modeshape of the path the sort travels alongLinear / Spline / Linear Spiral / Wave / Zig Zag / Curve / Blast / Sweep / Rain / Circular / Radial / Spiral / Perlin / Gradient / Isophote / Magnetic Dipole / Topographic / Karman Vortex Street / Flow Around Obstacle
Default: Linear
Discrete keyframes
Scalecurve strength — 0 is straight, sign flips the bend-200% to 200%
Default: 100%
Continuous keyframes
ShearShears the custom sorting path across its width.-300% to 300%
Default: 0%
Continuous keyframes
Start FeatherBlend in from the beginning of the whole spline.0% to 100%
Default: 0%
Continuous keyframes
Start WidthSets the width of the path at its starting point.0% to 100%
Default: 100%
Continuous keyframes
Path Start XHorizontal position of the sorting path's start.-2 to 3
Default: 0.15
Continuous keyframes
Path Start YVertical position of the sorting path's start.-2 to 3
Default: 0.5
Continuous keyframes
WobbleSets the transverse wave displacement of the custom sorting path.0 to 100 %; 0 to 500 px
Default: 0 px
Continuous keyframes
WavesNumber of transverse waves along the custom sorting path.0 to 32
Default: 3
Continuous keyframes
PhaseSlides the custom path's wave through its cycle.0% to 100%
Default: 0%
Continuous keyframes
WidthSets the width of the custom sorting path.0.5 to 100 %; 1 to 2000 px
Default: 24 px
Continuous keyframes
Quantitylower = sparser, dotted streaks0% to 100%
Default: 100%
Continuous keyframes
Angledirection the rain falls — 90° is straight down0° to 360°
Default: 90°
Continuous keyframes
Noise Amounthow far each drip wanders sideways0 to 20 %; 0 to 256 px
Default: 0.4 %
Continuous keyframes
Noise Scalelower = jittery drips, higher = long lazy curves1px to 512px
Default: 64px
Continuous keyframes
Seedchange for a different random pattern0 to 1000
Default: 0
Discrete keyframes
Random Offsetjitters interval starts to break up regular spacing0% to 100%
Default: 0%
Continuous keyframes
Smoothingsoftens the visible single-pixel sort steps0% to 100%
Default: 0%
Continuous keyframes
Sort Bywhich pixel property orders the sortBrightness / Saturation / Hue / Intensity / Minimum / Red / Green / Blue / Random
Default: Brightness
Discrete keyframes
Source Blurhigher = streamlines follow broad shapes, not detail0 to 100 %; 0 to 2000 px (typed input: 0 to 8000)
Default: 8 %
Continuous keyframes
StopsEditable colour stops used when each sorted interval is replaced by a gradient.Gradient stops
Default: None
Per-stop keyframes
StyleTraced keeps the patchy fragmented texture; Guided lays uniformly dense flow lines and renders fasterTraced / Guided
Default: Traced
Discrete keyframes
Sweep Exponentcurve sharpness — lower bends harder near the origin0.05 to 3
Default: 0.5
Continuous keyframes
Flipuses the positive square-root branch on both sides of the originOn / Off
Default: Off
Discrete keyframes
Sweep Origin Xhorizontal anchor of the sweep curve0 to 1
Default: 0.5
Continuous keyframes
Sweep Origin Yvertical anchor of the sweep curve0 to 1
Default: 0.5
Continuous keyframes
Targetwhich pixels participate in the sortInclusive / Exclusive / All
Default: Inclusive
Discrete keyframes
Threshold Lowerpixels below this value fail the test0 to 100
Default: 20
Continuous keyframes
Threshold Upperpixels above this value fail the test0 to 100
Default: 80
Continuous keyframes
Triggerpixel property tested against the thresholdMatch Sort / Brightness / Saturation / Hue / Intensity / Minimum / Red / Green / Blue / Random
Default: Match Sort
Discrete keyframes
Lengthlength of one wave cycle or streamline1 to 200 %; 1 to 2000 px
Default: 2 %
Continuous keyframes
X Originhorizontal position of the centre0% to 100%
Default: 50%
Continuous keyframes
Y Originvertical position of the centre0% to 100%
Default: 50%
Continuous keyframes

Related