Shaders#

Available since version 3.82

Shaders are GPU-powered visual effects that transform how layers and items look in real time. They can be applied in two ways:

  • FX Shader — applied as a layer effect on Overlap Groups (available in KWGT, KLWP and KLCK)
  • Animation Shader — applied as an animation action, reacting to scroll, gyroscope or other triggers (KLWP and KLCK only)

Both paths use the same shader library and parameters.

How to apply a shader#

As a Layer FX#

  1. Select an Overlap Group
  2. Go to the Layer tab
  3. Set FX to one of the shader effects (e.g., Vignette, Scanline, etc.)
  4. Adjust Intensity and the shader-specific parameters

As an Animation#

  1. Select an item on the root layer
  2. Go to the Animation tab, add a new animation
  3. Set Action to Shader (or Shader Inverted)
  4. Pick a shader type from the Shader Type dropdown
  5. Set Param 1 and Param 2 default values
  6. The animation will drive shader Intensity (or Scroll for Scanline/Scanline Fade) based on the trigger

Samples#

Common parameters#

Every shader has these base controls:

ParameterRangeDescription
Intensity0–100Overall effect strength. At 0 the original image is shown unchanged.
Param 10–100Shader-specific, see table below.
Param 20–100Shader-specific, see table below.
ScrollanimatedUsed by shaders that support continuous animation (Scanline, Halftone, Heat Haze, Film Grain, VHS Glitch, Frosted Glass, Ripple). Driven automatically when used as animation.
Color 1colorPrimary color, used by some shaders. The alpha channel may control a secondary effect (e.g. fringe amount).
Color 2colorSecondary color, used by Duotone and Halftone.

Not all shaders use all parameters — the editor only shows the ones relevant to the selected shader.

Shader reference#

Vignette#

Darkens the edges of the image, drawing focus to the center.

ParameterLabelEffect
IntensityIntensityHow dark the vignette gets at the edges
Param 1SoftnessEdge falloff — 0 is a hard edge, 100 is a very gradual fade
Param 2RadiusSize of the clear center area — 0 is a small opening, 100 covers most of the image

Scanline#

Overlays horizontal scan lines that simulate a CRT monitor. Supports scrolling animation and color fringing.

ParameterLabelEffect
IntensityIntensityVisibility of the scan lines and brightness boost
Param 1SpacingDistance between lines — 0 is very tight (2px), 100 is wide (8px)
Param 2HardnessLine sharpness — 0 is a smooth sine wave, 100 is a hard on/off pattern
ScrollScrollMoves the line pattern vertically for animation
Color 1ColorFringe color — the alpha channel controls how much chromatic aberration (color separation) is applied

Scanline Fade#

Same visual effect as Scanline, but when used as an animation the intensity fades in/out instead of scrolling.


Pixelate#

Reduces the image to large pixel blocks with optional color quantization and shape control.

ParameterLabelEffect
IntensityIntensityPixel block size — 0 shows the original image, 100 creates large 64px blocks
Param 1ShapeBlock shape — 0 is square, 100 is circular (rounded dots)
Param 2Color DepthColor quantization — 0 keeps full color, 100 reduces to 4 levels per channel (retro look)

Duotone#

Maps the image to two colors based on luminance, like a duotone print.

ParameterLabelEffect
IntensityIntensityBlend between original image and duotone output
Param 1ThresholdLuminance split point — 0 maps most pixels to the shadow color, 100 maps most to the highlight color
Param 2SpreadTransition sharpness — 0 is a hard cutoff between colors, 100 is a smooth gradient
Color 1Shadow ColorColor applied to dark areas
Color 2Highlight ColorColor applied to bright areas

CRT Curvature#

Simulates the barrel distortion and edge characteristics of a curved CRT screen.

ParameterLabelEffect
IntensityIntensityAmount of barrel distortion (screen curvature)
Param 1Edge DarkEdge vignette on the curved surface — higher values darken edges more
Param 2Corner CropHow aggressively corners are cropped to black — 0 is a sharp cutoff, 100 is a wide soft fade
Color 1Tint ColorScreen tint — the alpha channel controls how much tint is applied to darkened edges

Halftone#

Converts the image to a dot pattern like newspaper print, with configurable dot shape and rotation.

ParameterLabelEffect
IntensityIntensityDot spacing — 0 shows the original image, higher values create larger, more spaced-out dots
Param 1RotationPattern rotation angle — 0 to 100 sweeps through a full 360 degrees
Param 2Dot ShapeDot geometry — 0 is circular, 100 is square
ScrollScrollContinuously rotates the pattern when animated
Color 1Dot ColorColor of the printed dots
Color 2Background ColorColor of the background between dots

Heat Haze#

Creates a wavy horizontal distortion that simulates heat shimmer or underwater effects.

ParameterLabelEffect
IntensityIntensityDistortion amplitude — how far pixels are displaced
Param 1FrequencyWave frequency — 0 is slow, wide waves, 100 is rapid, tight ripples
Param 2ComplexityWave layering — 0 is a simple sine wave, 100 blends in a second wave for more organic movement
ScrollScrollAnimates the wave phase for continuous motion

Film Grain#

Adds photographic noise to simulate analog film texture.

ParameterLabelEffect
IntensityIntensityGrain visibility — how bright/dark the noise is
Param 1ScaleGrain size — 0 is fine single-pixel grain, 100 is coarse chunky blocks
Param 2ContrastGrain contrast — 0 is soft, subtle noise, 100 is harsh, punchy grain
ScrollScrollRandomizes the grain pattern each frame for animation
Color 1Grain TintTint color for the grain — the alpha channel controls how much tint is applied (0 alpha = white noise)

VHS Glitch#

Simulates VHS tape artifacts with horizontal tears, jitter, and chromatic aberration.

ParameterLabelEffect
IntensityIntensityControls tear severity and chromatic aberration spread
Param 1Tear FreqNumber of horizontal tear bands — 0 is a few wide bands, 100 is many narrow bands
Param 2JitterRandom horizontal pixel displacement — 0 is stable, 100 is chaotic shaking
ScrollScrollRandomizes which bands tear each frame

Chromatic Aberration#

Separates RGB channels radially, creating a lens-like color fringe effect.

ParameterLabelEffect
IntensityIntensityAmount of channel separation — 0 is none, 100 is extreme color fringing
Param 1FalloffRadial falloff — 0 applies uniformly, 100 concentrates the effect at edges
Param 2AngleDirection of the channel split — 0 to 100 sweeps through 360 degrees

Edge Glow#

Detects edges using a Sobel filter and renders them as colored outlines for a neon wireframe look.

ParameterLabelEffect
IntensityIntensityBlend between original image and edge-detected output
Param 1ThresholdEdge sensitivity — 0 detects all edges, 100 shows only strong edges
Param 2Line WidthDetection radius — 0 is fine detail, 100 detects coarser, wider edges
Color 1Edge ColorColor of the detected edges / glow
Color 2BackgroundTint color for non-edge areas

Thermal Vision#

Maps image luminance to a thermal (heat) color ramp: blue → cyan → green → yellow → red.

ParameterLabelEffect
IntensityIntensityBlend between original image and thermal output
Param 1ContrastContrast/gamma on the luminance input — 0 is flat, 100 is high contrast
Param 2TemperatureShifts the color ramp — 0 biases cold (blue), 100 biases hot (red)

Emboss#

Creates a raised relief effect like carved stone or stamped metal.

ParameterLabelEffect
IntensityIntensityDepth/blend of the emboss effect
Param 1AngleLight direction — 0 to 100 sweeps through 360 degrees
Param 2MetallicMetallic highlight blend — 0 is plain relief, 100 adds shiny highlights
Color 1HighlightTint color for the emboss highlights

Frosted Glass#

Simulates frosted/textured glass by displacing pixels through a noise pattern, combined with a chained Gaussian blur. Higher intensity makes the glass more opaque by increasing the grain size.

ParameterLabelEffect
IntensityGrain SizeNoise grain size — 0 is fine grain (subtle), 100 is coarse blocks (opaque frost)
Param 1DisplaceDisplacement strength — how far pixels are shifted by the noise pattern
Param 2BlurGaussian blur radius — chained after the shader for additional frosted diffusion
ScrollScrollRandomizes the grain pattern for animation
Color 1TintTint overlay color — the alpha channel controls tint strength

Ripple#

Creates radial water ripple distortion emanating from the center.

ParameterLabelEffect
IntensityIntensityWave amplitude — how far pixels are displaced
Param 1FrequencyWave density — 0 is slow, wide waves, 100 is rapid, tight ripples
Param 2DecayDistance dampening — 0 ripples reach the edges, 100 confines them to center
ScrollScrollAnimates the wave phase for continuous motion

Tips#

  • Combine with animations: Use Scanline or Film Grain with scroll-based animation for a constantly shifting retro effect.
  • Stack shaders: Apply a CRT Curvature FX on the layer, then add a Scanline animation for a full CRT simulation.
  • Use formulas: All shader parameters support Kustom formulas, so you can tie intensity to battery level, time of day, or any other data source.
  • Performance: Shaders are GPU-accelerated and have minimal impact on battery. On Android 13+ they use AGSL (Android Graphics Shading Language), on older devices they fall back to OpenGL ES 3.0.



Privacy Policy