Last updated
CSS Noise Background Using SVG Filter
The generator exports noise textures as CSS using SVG feTurbulence:
.noise-background {
background-color: #f0f4f8;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.08'/%3E%3C/svg%3E");
}
This produces a subtle grain texture that overlays the background color. The opacity value controls intensity — 0.05 for very subtle, 0.15 for more visible grain.
Perlin Noise Parameters
Adjusting the key parameters changes the texture appearance dramatically:
// Fine grain (high frequency)
baseFrequency: 0.9
numOctaves: 1
Result: Fine static-like noise, similar to film grain
// Medium clouds (medium frequency)
baseFrequency: 0.3
numOctaves: 4
Result: Soft, cloudy texture with medium-scale variation
// Large sweeping patterns (low frequency)
baseFrequency: 0.05
numOctaves: 6
Result: Large, smooth variations like aerial terrain view
Fractal Noise vs Turbulence
The type attribute in feTurbulence controls the noise style:
<!-- Fractal noise — smooth, cloud-like -->
<feTurbulence type="fractalNoise" baseFrequency="0.3" numOctaves="4" />
<!-- Turbulence — sharp, swirling patterns -->
<feTurbulence type="turbulence" baseFrequency="0.3" numOctaves="4" />
Fractal noise produces smooth, organic patterns suitable for clouds, fog, and subtle backgrounds. Turbulence produces sharper, more chaotic patterns suitable for fire, water, and marble effects.
Tileable Noise Texture as PNG
Export a 256×256 tileable PNG for use as a CSS background:
.textured-card {
background-color: #1a1a2e;
background-image: url('/textures/noise-256.png');
background-repeat: repeat;
background-size: 256px 256px;
}
The generator ensures the texture tiles seamlessly — no visible seam where edges meet. This is achieved by wrapping the noise function to be periodic at the texture boundaries.
Colored Noise Texture — Water Effect
Apply a gradient color map to create a water-like texture:
<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400">
<defs>
<filter id="water">
<feTurbulence type="fractalNoise" baseFrequency="0.02" numOctaves="5" seed="2"/>
<feColorMatrix type="matrix" values="
0 0 0 0 0.1
0 0 0 0 0.4
0 0 0 0 0.8
0 0 0 1 0
"/>
</filter>
</defs>
<rect width="400" height="400" filter="url(#water)"/>
</svg>
The feColorMatrix maps noise values to blue tones, creating a water-like appearance. Adjust the matrix values to shift toward green for a forest texture or orange/red for fire.
Marble Texture Effect
Combine noise with a gradient for a marble-like pattern:
<svg xmlns="http://www.w3.org/2000/svg" width="400" height="400">
<defs>
<filter id="marble">
<feTurbulence type="turbulence" baseFrequency="0.015 0.05" numOctaves="6" seed="5"/>
<feDisplacementMap in="SourceGraphic" scale="30"/>
</filter>
<linearGradient id="base" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#f5f5f0"/>
<stop offset="50%" stop-color="#c8c0b0"/>
<stop offset="100%" stop-color="#f5f5f0"/>
</linearGradient>
</defs>
<rect width="400" height="400" fill="url(#base)" filter="url(#marble)"/>
</svg>
Noise Texture for Game Development
Generate terrain heightmap data using Perlin noise parameters:
// Terrain generation settings
{
"type": "perlin",
"scale": 0.005, // Large features (mountains, valleys)
"octaves": 8, // High detail
"persistence": 0.5, // Each octave contributes half as much
"lacunarity": 2.0, // Each octave doubles in frequency
"seed": 42, // Reproducible terrain
"resolution": 512, // 512x512 heightmap
"export": "PNG 16-bit" // 16-bit for smooth height gradients
}
Export as a 16-bit grayscale PNG for maximum height precision. Import into Unity, Unreal Engine, or Godot as a terrain heightmap.
Subtle UI Background Grain
Add a barely-visible grain to a modern UI for depth:
.app-background {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
position: relative;
}
.app-background::after {
content: '';
position: absolute;
inset: 0;
background-image: url("data:image/svg+xml,..."); /* noise SVG */
opacity: 0.04;
pointer-events: none;
}
Keep opacity between 0.03–0.06 for a subtle effect that adds texture without being distracting. This technique is used in many modern design systems to prevent flat gradients from looking too digital.
Noise Texture Export Formats
- PNG — Raster image, use for backgrounds and game assets
- SVG — Vector with embedded feTurbulence filter, scales to any size
- CSS — Inline SVG data URI, no separate file needed
- Raw data — Float array of noise values for programmatic use
/* CSS data URI approach — no image file needed */
body {
background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.05'/></svg>");
}