InkFlow

Drag to paint swirling ribbons of ink through a real fluid field — eddies keep evolving after you let go

Props

  • colorMode

    How the brush color is chosen: an ever-cycling rainbow, a single fixed color, or a custom three-color cycle

    Type
    "rainbow" | "single" | "custom"
    Default
    rainbow
  • colorSpeed

    How quickly the brush cycles through the rainbow or the custom colors as you paint

    Type
    number
    Default
    1
  • color

    Brush color used when Color Mode is Single

    Type
    string
    Default
    #ff2d7e
  • color1

    First color of the custom brush cycle

    Type
    string
    Default
    #4338ff
  • color2

    Second color of the custom brush cycle

    Type
    string
    Default
    #ff2d7e
  • color3

    Third color of the custom brush cycle

    Type
    string
    Default
    #19e3ff
  • colorSpace

    color space the custom colors blend through as the brush cycles between them

    Type
    "linear" | "oklch" | "oklab" | "hsl" | "hsv" | "lch"
    Default
    oklab
  • radius

    Size of the ink splat painted under the cursor

    Type
    number
    Default
    0.3
  • force

    How hard the cursor's motion pushes the fluid — higher throws faster, more violent jets and curls

    Type
    number
    Default
    1
  • curl

    Vorticity confinement — swirl energy that spins the ink into persistent eddies and curls

    Type
    number
    Default
    0
  • decay

    How fast the ink fades away — low values leave long, lingering trails

    Type
    number
    Default
    0.5
  • momentum

    How long the fluid keeps flowing after a stroke — high momentum lets the motion carry on and on

    Type
    number
    Default
    0.6

Usage

<Shader>
  <InkFlow
    color="#ff2d7e"
    radius={0.3}
  />
</Shader>