Simplex Noise

심플렉스 노이즈

Organic noise with smoothly moving regions of color.

Also known as: SimplexNoisesimplex gradient noise

Moves in browsers that support WebGPU

This device could not render the demo — showing a still

React
// Renders only in browsers with WebGPU.
import { Shader, SimplexNoise } from 'shaders/react'

export default function ShaderEffect() {
  return (
    <Shader style={{ width: '100%', height: 320 }} disableTelemetry>
      <SimplexNoise />
    </Shader>
  )
}
Vue
<!-- Renders only in browsers with WebGPU. -->
<script setup lang="ts">
import { Shader, SimplexNoise } from 'shaders/vue'
</script>

<template>
  <Shader style="width: 100%; height: 320px" :disable-telemetry="true">
    <SimplexNoise/>
  </Shader>
</template>
Svelte
<!-- Renders only in browsers with WebGPU. -->
<script>
  import { Shader, SimplexNoise } from 'shaders/svelte'
</script>

<Shader style="width: 100%; height: 320px" disableTelemetry>
  <SimplexNoise />
</Shader>
Solid
// Renders only in browsers with WebGPU.
import { Shader, SimplexNoise } from 'shaders/solid'

export default function ShaderEffect() {
  return (
    <Shader style={{ width: '100%', height: '320px' }} disableTelemetry>
      <SimplexNoise />
    </Shader>
  )
}
JavaScript
// Renders only in browsers with WebGPU.
// expects <canvas id="canvas" style="width:100%;height:320px"></canvas> on the page
import { createShader } from 'shaders/js'

const shader = await createShader(document.getElementById("canvas"), {
  components: [
    {
      type: 'SimplexNoise',
    }
  ]
}, { disableTelemetry: true })

Props · SimplexNoise

Changes apply to the demo above and to the code tabs. Descriptions come from the library registry (MIT).

NameValueDefaultRange / optionsDescription
colorAColor A#ffffff—First color
colorBColor B#000000—Second color
stopsColorsSet in codenull—Multi-stop gradient colors (overrides Color A / Color B when set)
colorSpaceColor Spacelinearlinear · oklch · oklab · hsl · hsv · lchColor space for color interpolation
scaleScale2-2 – 5 (step 0.1)Pattern scale (higher = larger patterns)
balanceBalance0-1 – 1 (step 0.1)Balance between colors (negative = more colorB, positive = more colorA)
contrastContrast0-2 – 5 (step 0.1)Pattern contrast (higher = sharper transitions)
seedSeed00 – 100 (step 1)Random seed for pattern variation
speedSpeed10 – 5 (step 0.1)Animation speed

Every component also takes blendMode · opacity · visible · maskSource/maskType · boundingBox · id

Its rounded regions look like ink spreading slowly through water. Like `PerlinNoise`, it stays soft, while this entry emphasizes organic patterns that move.

`scale` defaults to 2 and ranges from -2 to 5; higher values make the pattern larger. `contrast` defaults to 0 and ranges from -2 to 5; higher values sharpen the boundary between light and dark areas. `balance` defaults to 0 and ranges from -1 to 1, shifting the mix toward the second color below zero and the first above zero. `speed` defaults to 1 and ranges from 0 to 5; higher values make the motion faster.

This generator fills the canvas and does not need a separate input layer. Pair it with `PerlinNoise` or `FractalNoise` to vary the scale of background patches. Keep the color contrast restrained behind text or in a busy scene so the pattern does not compete for attention.

When to use

Use it for organic backgrounds, soft color patches, and moving abstract scenes. Avoid it when you need geometric repetition or fixed straight lines.

Open as page ↗