Metaballs Generator
Make 2-D metaballs: round shapes that flow into each other when they come close. Each ball adds a field r²/d² (r is its radius, d the distance from its centre); the tool adds the fields of all the balls and traces the outline where the sum equals the threshold T, with marching squares and every edge point refined until it sits on the outline. One ball alone gives a circle of radius r/√T, and two equal balls join into one shape when their centres are closer than 2√2 r/√T. Choose one ball, two, a chain, a ring, a grid, a seeded cluster or scatter, or type your own list of balls, then outline, filled shapes, layers of inner levels or contour lines. It prints at real size, filling the page or at the width and height you type. Download a PDF, a 300 DPI PNG or an SVG. Nothing is uploaded.
100% private — everything runs in your browser. Everything runs in your browser; nothing is uploaded.
Print at 100% (Actual size): the design prints at real size. The SVG holds each outline as a path and each filled area as cell strips.
Balls
Look
Size
Page
Runs in your browser with our own code: nothing you type is uploaded or saved. Every outline is traced from the metaball sum by our own code. You may use what you make here, including commercially, with no credit needed.
How to make and print metaballs
- Pick a preset, or choose an arrangement of balls.
- Set the number of balls, the radius, the spacing and the threshold T.
- Or type your own balls as x, y, r from the centre of the design.
- Choose outline, filled shapes, layers or contour lines, and the colours.
- Choose fill the page or a width and height.
- Download the PDF and print at 100% (Actual size), or the PNG or SVG.
What you can use it for
- Logos, icons and stickers with soft joined shapes
- Posters and wall art
- Laser, vinyl and plotter cutting from the SVG outline
- Lessons on fields, contours and implicit curves
- Backgrounds for covers, cards and packaging
- Checking a metaball shader or game effect against exact outlines
The 16 presets
| Preset | Arrangement | Balls | Radius | T | Look | Outlines drawn | Printed size |
|---|---|---|---|---|---|---|---|
| One ball: a circle of radius r / sqrt(T) | one ball | 1 | 30 mm | 1 | outline | 1 | 184.5 mm × 236 mm |
| Two balls just joined (gap below the merge distance) | two balls | 2 | 25 mm | 1 | filled | 1 | 184.5 mm × 236 mm |
| Two balls just apart (gap above the merge distance) | two balls | 2 | 25 mm | 1 | filled | 2 | 184.5 mm × 236 mm |
| Chain of 5 balls | chain | 5 | 14 mm | 1 | filled | 1 | 184.5 mm × 236 mm |
| Ring of 8 balls | ring | 8 | 14 mm | 1 | outline | 2 | 184.5 mm × 236 mm |
| Grid of 12 balls | grid | 12 | 12 mm | 1 | filled | 1 | 184.5 mm × 236 mm |
| Cluster of 14 balls (seed 3) | cluster | 14 | 14 mm | 1 | filled | 1 | 184.5 mm × 236 mm |
| Scattered 24 balls (seed 7) | scattered | 24 | 14 mm | 1 | filled | 4 | 184.5 mm × 236 mm |
| Cluster with 5 layers | cluster | 10 | 16 mm | 0.6 | layers (5) | 7 | 184.5 mm × 236 mm |
| Contour lines, 6 levels | scattered | 16 | 16 mm | 0.5 | contour lines (6) | 26 | 184.5 mm × 236 mm |
| Low threshold: soft joined shapes | scattered | 18 | 12 mm | 0.35 | filled | 2 | 184.5 mm × 236 mm |
| High threshold: small separate shapes | scattered | 18 | 16 mm | 2.5 | filled | 6 | 184.5 mm × 236 mm |
| Ring of 6 with 4 layers | ring | 6 | 18 mm | 0.8 | layers (4) | 20 | 184.5 mm × 236 mm |
| Real size 150 mm square, 9 balls | grid | 9 | 14 mm | 1 | filled | 1 | 150 mm × 150 mm |
| Real size 6 x 4 in, 3 balls in a row | chain | 3 | 0.7 in | 1 | outline | 1 | 6 in × 4 in |
| Your own balls typed as x, y, r | typed list | 3 | typed | 1 | filled | 1 | 184.5 mm × 236 mm |
Counts and sizes are worked out by the tool on US Letter; fill the page uses the printable area.
One-ball radius and merge distance, checked
| Ball radius r | T | r/√T | Traced outline (distance from centre) | Merge distance 2√2 r/√T | Outlines at 98 % | Outlines at 102 % |
|---|---|---|---|---|---|---|
| 20 mm | 0.5 | 28.28 mm | 28.284 to 28.284 mm | 80.00 mm | 1 | 2 |
| 20 mm | 1 | 20.00 mm | 20.000 to 20.000 mm | 56.57 mm | 1 | 2 |
| 20 mm | 2 | 14.14 mm | 14.142 to 14.142 mm | 40.00 mm | 1 | 2 |
| 20 mm | 4 | 10.00 mm | 10.000 to 10.000 mm | 28.28 mm | 1 | 2 |
| 10 mm | 1 | 10.00 mm | 10.000 to 10.000 mm | 28.28 mm | 1 | 2 |
| 30 mm | 1 | 30.00 mm | 30.000 to 30.000 mm | 84.85 mm | 1 | 2 |
Each row is drawn by the tool at 180 × 120 mm.
What prints
| Download | What is in it |
|---|---|
| The design at real size, vector outlines and fills, with T, the one-ball radius, the merge distance and a check bar | |
| PNG 300 DPI | The same sheet as a picture |
| SVG | Each outline as a path and each filled area as cell strips, at real size |
To edit an outline, use the SVG Path Editor; for a cutter that needs DXF, use SVG to DXF.
Which tool to use
| You want | Use |
|---|---|
| Shapes that merge from placed balls, at a threshold | Metaballs Generator (this page) |
| One random smooth shape | Blob Generator |
| Spots and stripes from a reaction–diffusion simulation | Turing Pattern |
| Contour lines of a random landscape | Topographic Map Generator |
Other tools: the Blob Generator makes single random shapes, the Noise Texture Generator soft random textures, and the Topographic Map Generator draws contour maps.
More free tools
Maths art and printables?
Drawing and print tools that run privately in your browser, with no sign-up and no watermark.
Frequently asked questions
What are metaballs?
Metaballs are shapes drawn as the outline of a sum of fields. Here each ball has the field r²/d², which is large near its centre and falls off with distance. The outline is the curve where the total field equals the threshold T. Far apart, each ball is its own circle; close together, the fields add up between them and the outlines join smoothly.
Why is one ball a circle of radius r/√T?
Alone, the field is r²/d², and r²/d² = T exactly when d = r/√T. So at T = 1 the outline is the ball’s own radius, at T = 4 half of it, and at T = 0.25 twice it. The table below shows the traced outline against r/√T.
When do two balls join?
For two equal balls with centres D apart, the field along the line between them is lowest midway, where it is 2 × r²/(D/2)² = 8r²/D². The outlines touch when that equals T, so they join when D is less than 2√2 r/√T. The table shows our test: one outline at 98 % of that distance and two at 102 %.
How is the outline traced?
The design is sampled on a grid of cells no bigger than 0.5 mm. Marching squares finds every cell edge where the field crosses T, and each crossing is refined by halving the interval 40 times, so every point of the outline sits on f = T (in our tests, within one part in a million on every preset).
What do the looks show?
Outline draws the f = T curve. Filled shapes colour the inside, where f ≥ T. Layers add inner levels at 1.6 T, 1.6² T and so on, shaded darker towards the centres. Contour lines draw the same levels as lines only, like a contour map of the field.
What is the threshold T?
The field value the outline follows. Lower T makes every shape bigger and joins them sooner; higher T makes them smaller and keeps them apart. Spacing and radius set the size; T sets how soon the shapes merge.
Is this the same as the blob generator?
No. The blob generator draws one random smooth shape from a few points. This page draws the outline of a sum of ball fields, so shapes merge and split by the maths, and you can place every ball.
Is it free?
Yes. There is no sign-up, no watermark and no limit.
Is anything uploaded?
No. Every outline is worked out by JavaScript in your browser. Nothing you type is sent anywhere or saved when you close the page.