SmokeFlow

Cursor-driven smoke that lingers, swirls, and dissipates with fluid dynamics

Props

  • colorA

    Color of fresh smoke

    Type
    string
    Default
    #e29c8b
  • colorB

    Color smoke transitions to as it ages

    Type
    string
    Default
    #d517f9
  • stops

    Multi-stop gradient colors (overrides Color A / Color B when set)

    Type
    object
    Default
    null
  • intensity

    How much smoke is emitted as you move the cursor

    Type
    number
    Default
    1
  • emitRadius

    Size of smoke puff emitted at cursor

    Type
    number
    Default
    0.07
  • momentum

    How much cursor velocity is transferred into the smoke (higher = more directed flow)

    Type
    number
    Default
    20
  • dissipation

    How fast smoke fades over time

    Type
    number
    Default
    0.5
  • detail

    Fine-scale swirling detail driven by vorticity confinement

    Type
    number
    Default
    10
  • gravity

    Vertical drift — negative floats up, positive sinks down

    Type
    number
    Default
    2
  • colorDecay

    How quickly smoke shifts from fresh to aged color

    Type
    number
    Default
    0.5
  • colorSpace

    Color space for color interpolation

    Type
    "linear" | "oklch" | "oklab" | "hsl" | "hsv" | "lch"
    Default
    OKLAB

Usage

<Shader>
  <SmokeFlow
    intensity={1}
  />
</Shader>