SVG Blob Generator

Generate a repeatable organic blob as a single SVG path, from a seed you choose.

Runs on your deviceDesign & ColorWorkingNo account needed

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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?
No. Everything happens in this browser tab — the seed stays on the page, pressing Run makes no request, and the tool keeps working with the network switched off.
Does the same seed always give the same shape?
Yes, byte for byte, as long as the other settings match. The seed only feeds the random generator; changing the point count or the edge variation changes the shape for that same word.
Why is edge variation 0% not a perfect circle?
Only the radii stop varying at 0%. Each point's angle is still shifted by the seed, so the points sit unevenly around the ring and the spline through them bulges where they are far apart and dips where they are close. For a true circle, a circle element or a CSS border-radius is the right tool.
Can I add a stroke, a shadow or a second blob?
Not here. Each run produces one path with one fill, so an outline, a filter or a second shape is something you add to the markup after copying it.
Why do two gradient blobs on one page share a colour?
Both gradient definitions are written with the id "g", and a document can only resolve that id to one element. Rename the id in one of the two files and both render as intended.
Can I paste the blob straight into CSS?
Not as a ready-made declaration. What you get is markup and a .svg file, so a CSS background means pointing background-image at the saved file, or URL-encoding the markup as a data URI yourself. SVG Pattern Generator is the one here that hands back the declaration already written.
Can I export a PNG instead?
Not from this tool. The output is SVG markup and a .svg file, which scales without loss — open it in a browser or a design application if you need a raster copy.

Related tools