Abalone, a Metal shader for SwiftUI
SwiftUI Metal shader

Abalone

Two fbm fields read on a slowly turning sphere normal stand in for the growth of paua nacre — a coarse one warps a finer one, and the fine field sets a film thickness that a cosine at three wavelengths turns into the green-blue-violet interference colour. A sine across the same normal bands that colour and rotates its channel triplet, so neighbouring growth rings disagree on hue, and the crest of the warp field cuts the dark grooves between them.

SwiftUIReact NativeWeb

How it works

Abalone 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.

27 settings you can tune

  • Speed
  • Radius
  • Swirl
  • Thickness
  • Bands
  • Grooves
  • Spectrum
  • Film
  • Tint
  • Shell
  • Shell tint
  • Sheen
  • Bloom
  • Bounce
  • Specular
  • Key
  • Iris
  • Iris tint
  • Wall
  • Wall tint
  • Lamp
  • Fill
  • Exposure
  • Colors
  • Edge softness
  • Glow
  • Glow tint

More SwiftUI shaders