The SVG Wave Generator builds smooth, layered wave dividers — the curved shapes
designers drop between page sections, at the bottom of a hero banner, or above a footer.
You control every detail: the canvas size, which edge the waves cling to, the amplitude
and wavelength of each layer, its colour, opacity and phase, and whether the
whole thing gently animates. When it looks right, download a clean, self-contained .svg
file or copy the markup straight into your page. Everything runs in your browser, so there
is no upload, no sign-up and no watermark.
How it works
Each layer is a sine-based curve sampled across the canvas and closed down to the chosen edge so it can be filled with a solid colour. The generator offers three wave shapes: a smooth sine, a double-harmonic blend that adds a second faster ripple for a more organic crest, and rounded crests that flatten the peaks slightly for a softer feel.
Stacking layers is where it gets interesting. Give the back layer the largest amplitude and
full opacity, then add lighter, shorter-wavelength layers in front with different colours and
phase offsets. Because the layers do not line up, the overlap reads as depth. You can add up
to eight layers and reorder them so any one sits in front or behind. Enable Animate and
each layer with a non-zero speed scrolls horizontally using an embedded SMIL
animateTransform — the path is drawn twice and translated by one full canvas width, so the
loop repeats with no visible seam and needs no JavaScript at all.
The export is a real vector file with preserveAspectRatio="none", meaning it stretches to
fill any container width without distorting the height — exactly how a full-bleed section
divider should behave. Your last design is remembered in this browser, and you can export the
configuration as JSON to share or version it.
Example
Say you want a calm three-layer footer wave on a dark hero. Set the canvas to 1200 × 220,
anchor to the bottom edge, and pick a dark navy background. Make layer one a deep indigo
at full opacity with an amplitude of 30 and a long 520px wavelength. Add layer two in
violet at 55% opacity, amplitude 20, wavelength 360, phase shifted 60°. Add a third
pink layer at 40%, amplitude 12, short 260px wavelength. The three offsets interleave
into a layered swell. Tick Animate, give the front layers a speed of 8–12 seconds, and
the waves drift slowly. Hit Download SVG and paste it above your footer markup.
| Layers | Look | Typical use |
|---|---|---|
| 1 | Clean single curve | Minimal section break |
| 2 | Subtle depth | Hero banner bottom |
| 3+ | Rich, fluid motion | Landing-page footer |
Every shape is generated locally — nothing about your design ever leaves this page.