SVG Blob Generator
Generate a repeatable organic blob as a single SVG path, from a seed you choose.
What this tool does
SVG Blob Generator builds a shape out of a word. The seed is hashed into a small pseudo-random generator; that generator places your chosen number of points on a ring 46% of the canvas width out from the centre, shifts each point's angle by up to about a fifth of the gap to its neighbour, pulls each radius inward by an amount the edge variation controls, and threads a closed Catmull-Rom spline through the result. The spline is written out as cubic Bézier curves, one segment per point, coordinates rounded to two decimals — so what you get is one path in a square viewBox, with a gradient definition beside it only if you ask for one. No groups, no layers, and none of the editor metadata a drawing application leaves behind.
Because the shape comes from the seed rather than from a stored file, the same seed with the same settings produces byte-identical markup every time. That makes a blob something you can note down instead of store: the word, the point count, the variation, the canvas size and the colour are all short values. The download is named blob-<seed>-<points>.svg, with the seed lower-cased and anything that is not a letter or a digit turned into a hyphen, so part of the recipe travels with the asset. Change the point count or the variation and the same word gives a different shape, which is why the settings need recording alongside it.
The generating happens in this browser tab. Nothing is sent anywhere, the page keeps working with the network disconnected, and the result arrives both as text you can paste straight into markup and as a downloadable .svg file. The colour comes from the swatch, which is the browser's own colour picker, so the fill is always an opaque six-digit hex and is written into the file in upper case. The hex box sitting next to that swatch is display only: it shows the value the page opened with, and typing a colour into it changes nothing.
A few limits are worth reading before you start. Setting edge variation to 0% does not give you a circle, because the angles are still shifted by the seed: the points sit unevenly around the ring and the outline swells and narrows as it goes round. At the other end of the slider, 100% pulls a point in by four fifths of the radius at most, so the deepest notch still sits a fifth of the way out — but sixteen points at that setting reads as spikes rather than a blob, and three or four points read as a rounded triangle or quadrilateral. Every run makes one path with one fill: no stroke, no shadow, no background rectangle, no second blob, and no raster or CSS output. The gradient is fixed as two stops running corner to corner, and its definition always carries the id "g", so two gradient blobs pasted into one document end up sharing a single gradient until you rename one of them.
How to use it
- Give it a seed, or take the default. Any word or number. The first line of the input box wins over the Seed setting, extra lines are ignored, and clearing both stops the run with a message asking for one.
- Set the edge points and the edge variation. Three to sixteen points, and 0 to 100% variation. Six points at 45% is the default and reads as a blob; pushing both sliders up moves the outline towards spikes.
- Choose the canvas size. 32 to 4096 px, in steps of 16. The number is written into the viewBox and into the width and height attributes; drop those two attributes in your markup if you want it to fill its container instead.
- Pick the fill, or switch on the gradient. One colour by default, taken from the swatch. Ticking Fill with a gradient reveals a second swatch and replaces the flat fill with a corner-to-corner linear gradient between the two.
- Copy the markup, or download the file. The SVG appears as a preview and as copyable text, and the same markup downloads as a .svg named after the seed and the point count.
Processing & privacy
Runs on your device. Your file is processed directly in this browser.
Common use cases
A background shape behind a hero section
A default 6-point blob at 512 px is about 390 bytes of markup, so it can sit inline in the page rather than costing an image request.
A mask or an avatar frame
The path is the only thing in the file, so it lifts cleanly into a clipPath or a mask, with coordinates already in the viewBox you chose.
A set of shapes that clearly belong together
Keep the point count, variation and colours fixed and change only the seed, and you get siblings rather than a set of unrelated outlines.
Decoration you would rather not keep in the repository
Note the seed and the settings that made it in a comment, then regenerate the file when it is needed instead of carrying another asset in the tree.
Questions
Does the seed leave my browser?
Does the same seed always give the same shape?
Why is edge variation 0% not a perfect circle?
Can I add a stroke, a shadow or a second blob?
Why do two gradient blobs on one page share a colour?
Can I paste the blob straight into CSS?
Can I export a PNG instead?
Related tools
- HEX to RGB — Convert a hex colour to RGB values.
- WCAG Contrast Checker — Test colour pairs against AA and AAA thresholds.
- RGB to HEX — Convert RGB values to a hex colour.
- HEX to HSL — Convert hex to hue, saturation and lightness.
- HSL to HEX — Convert HSL values back to a hex colour.
- CMYK Converter — Convert between RGB and CMYK for print work.