Smoke Orb, a Metal shader for SwiftUI
SwiftUI Metal shader

Smoke Orb

Smoke sealed inside a glass ball, floating in a wall-only studio void. The view ray refracts once at the shell and is then marched through sixteen slices of a warped fbm field, each one taking two cheap taps toward the key light for self-shadow and integrating Beer-Lambert transmittance. What the smoke leaves through shows the graded wall behind it, sampled once per channel at three indices of refraction. Every colour in the room is a swatch: the wall gradient, the two lamp bounces, the four glass highlights and the smoke albedo.

SwiftUIReact NativeWeb

How it works

Smoke Orb 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.

26 settings you can tune

  • Speed
  • Radius
  • Density
  • Detail
  • Shadow
  • Scatter
  • Tint
  • Key
  • Fill
  • Rim
  • Wall
  • Wall tint
  • Lamp
  • Bounce
  • Specular
  • Softbox
  • Highlight
  • Edge
  • Albedo
  • Albedo tint
  • Bloom
  • Exposure
  • Colors
  • Edge softness
  • Glow
  • Glow tint

More SwiftUI shaders