Grain, a Metal shader for SwiftUI
SwiftUI Metal shader

Grain

A slow, breathing colour field: a 3x3 palette grid sampled through a time-warped cubic Hermite, finished with film grain. Four palette presets — Umbrellas, Sunset, Ocean, Forest — and all nine grid colours stay editable.

SwiftUIReact NativeWeb

How it works

Grain is a real [[stitchable]] Metal shader, not a video or an image. It runs as a SwiftUI .colorEffect, so it paints any view you attach it to. You shape it with sliders in a live preview, then export the .metal file and the SwiftUI code that uses it, or the React Native and Web version. No MSL to write.

14 settings you can tune

  • Style
  • Speed
  • Flow
  • Grain
  • Brightness
  • Top left
  • Top center
  • Top right
  • Mid left
  • Center
  • Mid right
  • Bottom left
  • Bottom center
  • Bottom right

More SwiftUI shaders