Superformula
Draw shapes with the superformula, the one-line formula Johan Gielis published in 2003 that bends a circle into stars, flowers, rounded squares and polygons: r(φ) = (|cos(mφ/4)/a|^n2 + |sin(mφ/4)/b|^n3)^(−1/n1). Type m, n1, n2, n3, a and b, and the tool works out every point of the curve from the formula and draws it over exactly the number of turns it needs to close, so whole-number and fractional m both give a clean closed outline. Draw one shape, nested or turned copies, or a sheet of shapes for stickers or a cutter, as an outline, filled or as a 0.1 mm laser cut line. Download a PDF at real size or fitted to the page, 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). Real size prints each shape at the size you type when the design fits on one sheet. The SVG holds every curve as one closed path.
Shape
Layout
Page
Runs in your browser with our own code: nothing you type is uploaded or saved. Every point of every curve is worked out from the formula by our own code. You may use what you make here, including commercially, with no credit needed.
How to make and print a superformula shape
- Pick a preset, or type m, n1, n2, n3, a and b.
- Choose one shape, nested copies, turned copies or a grid.
- Choose outline, filled, both or a laser cut line, and the colours.
- Type the size and choose Fitted to one page or Real size.
- Download the PDF and print at 100% (Actual size), or the PNG or SVG.
What you can use it for
- Logo and icon shape studies
- Laser, vinyl and plotter cutting from the SVG outline
- Sticker sheets and badges at real size
- Maths lessons on polar curves and the superellipse
- Posters, cards and wall art
- Shape ideas for tiles, stencils and textiles
The 16 presets
| Preset | m | n1 | n2 | n3 | a | b | Turns to close | Layout | Look | |
|---|---|---|---|---|---|---|---|---|---|---|
| m 4, n1 = n2 = n3 = 2: the unit circle | 4 | 2 | 2 | 2 | 1 | 1 | 1 | one shape | outline | fitted |
| m 4, n1 = n2 = n3 = 40: rounded square | 4 | 40 | 40 | 40 | 1 | 1 | 1 | one shape | outline | fitted |
| m 4, n1 = n2 = n3 = 1: diamond (straight sides) | 4 | 1 | 1 | 1 | 1 | 1 | 1 | one shape | outline | fitted |
| m 5, n1 0.3, n2 = n3 0.3: five-point star | 5 | 0.3 | 0.3 | 0.3 | 1 | 1 | 1 | one shape | outline | fitted |
| m 3, n1 4.5, n2 = n3 10: rounded triangle | 3 | 4.5 | 10 | 10 | 1 | 1 | 1 | one shape | filled | fitted |
| m 6, n1 1, n2 = n3 7: six-petal flower | 6 | 1 | 7 | 7 | 1 | 1 | 1 | one shape | filled + outline | fitted |
| m 16, n1 0.5, n2 = n3 0.5 nested: spiky ring | 16 | 0.5 | 0.5 | 0.5 | 1 | 1 | 1 | nested copies (6) | outline | fitted |
| m 8, n1 0.5, n2 0.5, n3 8: eight lobes | 8 | 0.5 | 0.5 | 8 | 1 | 1 | 1 | one shape | filled | fitted |
| m 2.5, n1 = n2 = n3 1: closes after 2 turns | 2.5 | 1 | 1 | 1 | 1 | 1 | 2 | one shape | outline | fitted |
| m 0.5, n1 = n2 = n3 0.3: two turns, nested loops | 0.5 | 0.3 | 0.3 | 0.3 | 1 | 1 | 2 | one shape | outline | fitted |
| m 7, n1 0.2, n2 = n3 1.7: 8 copies turned 6.43° apart | 7 | 0.2 | 1.7 | 1.7 | 1 | 1 | 1 | turned copies (8) | outline | fitted |
| m 2, n1 1, n2 4, n3 8, a 1, b 0.8: leaf-like oval | 2 | 1 | 4 | 8 | 1 | 0.8 | 1 | one shape | filled + outline | fitted |
| m 1, n1 0.5, n2 0.5, n3 0.5: heart-like loop | 1 | 0.5 | 0.5 | 0.5 | 1 | 1 | 1 | one shape | filled | fitted |
| m 6, n1 = n2 = n3 1: real-size sheet of 12 (45 mm) for cutting | 6 | 1 | 1 | 1 | 1 | 1 | 1 | grid sheet (4 × 3) | laser cut line | real size, 45 mm |
| Real size: 120 mm, m 5, n1 2, n2 = n3 7 | 5 | 2 | 7 | 7 | 1 | 1 | 1 | one shape | outline | real size, 120 mm |
| Real size: 4 in, m 3, n1 = n2 = n3 3, laser cut line | 3 | 3 | 3 | 3 | 1 | 1 | 1 | one shape | laser cut line | real size, 4 in |
Turns are worked out by the tool from m and checked by our tests. Names describe what the computed curve looks like.
Special cases, checked at every point
| Settings (a = b = 1) | Shape | x at 45° | On the shape at every vertex |
|---|---|---|---|
| m 4, n1 = n2 = n3 = 1 | diamond: |x| + |y| = 1 | 0.5 | yes (all 1,440 points) |
| m 4, n1 = n2 = n3 = 2 | unit circle: x² + y² = 1 | 0.70711 | yes (all 1,440 points) |
| m 4, n1 = n2 = n3 = 4 | superellipse |x|⁴ + |y|⁴ = 1 | 0.8409 | yes (all 1,440 points) |
| m 4, n1 = n2 = n3 = 40 | rounded square |x|⁴⁰ + |y|⁴⁰ = 1 | 0.98282 | yes (all 1,440 points) |
| m 4, n2 = n3 = 2, n1 = 40 | unit circle again: cos² + sin² = 1, so n1 does nothing | 0.70711 | yes (all 1,440 points) |
The x value at 45° shows how square the corner is: 0.70711 is a circle, 0.98282 is nearly a square corner.
How many turns before the curve closes
| m | Turns, a = b and n2 = n3 | Turns, otherwise |
|---|---|---|
| 0.25 | 4 | 8 |
| 0.5 | 2 | 4 |
| 1 | 1 | 2 |
| 1.5 | 2 | 4 |
| 2.5 | 2 | 4 |
| 3 | 1 | 2 |
| 3.5 | 2 | 4 |
| 4.25 | 4 | 8 |
| 5 | 1 | 2 |
| 7 | 1 | 2 |
| 12.5 | 2 | 4 |
The tool refuses an m that would need more than 20 turns; use fewer decimals.
What prints
| Download | What is in it |
|---|---|
| The design fitted to one page or at real size, vector, with the formula values, the number of turns and a check bar | |
| PNG 300 DPI | The same sheet as a picture |
| SVG | Every curve as one closed path, at the printed size |
For a cutter that needs DXF, use SVG to DXF; to edit points by hand, use the SVG Path Editor.
Which tool to use
| You want | Use |
|---|---|
| Stars, flowers and rounded polygons from one formula | Superformula (this page) |
| Rounded-square corners for app icons and CSS | Squircle Generator |
| Curves drawn by gears | Spirograph Art Generator |
| Soft random organic shapes | Blob Generator |
| Engraving-style rosettes | Guilloche Pattern Generator |
Other tools: the Squircle Generator makes superellipse corners, the Spirograph Art Generator draws gear curves, the Blob Generator makes organic blobs and the Guilloche Pattern Generator draws rosettes.
More free tools
Curves, patterns and printables?
Drawing and print tools that run privately in your browser, with no sign-up and no watermark.
Frequently asked questions
What is the superformula?
It is a formula for curves in polar form, a generalisation of the superellipse, proposed by Johan Gielis in 2003 in the American Journal of Botany (“A generic geometric transformation that unifies a wide range of natural and abstract shapes”). Gielis suggested it can describe many shapes and curves found in nature. The curves it draws are often called Gielis curves or supershapes.
What do m, n1, n2, n3, a and b do?
m sets the symmetry: with a = b and n2 = n3 a whole-number m gives m lobes or points. n1 sets how puffed out or pinched the shape is, n2 and n3 shape the two halves of each lobe, and a and b stretch them. Small n values make sharp stars; large equal values make rounded polygons.
When does the curve close?
The tool works out the number of full turns from m: with a = b and n2 = n3, m = p/q in lowest terms closes after q turns, otherwise after 2q / gcd(p, 2q) turns. So m = 2.5 closes after 2 turns, or 4 turns when n2 and n3 differ. The table below lists more, and our tests check every case against a brute-force search.
Which special cases does it include?
With m = 4 and n1 = n2 = n3 = n it is the superellipse |x|^n + |y|^n = 1: n = 2 is the unit circle, n = 1 a diamond with straight sides and n = 40 a rounded square. With n2 = n3 = 2 and a = b the formula is a circle whatever n1 is, because cos² + sin² = 1. Every one of these is checked at every point by our tests.
Is every point exact?
Each vertex is the formula worked out at an even step of the angle, 1,440 points for each turn, and joined by straight lines. In our tests every printed vertex is within 0.2 mm of its true place on US Letter and A4, as long as you print at 100% (Actual size).
Can I cut it on a laser cutter or plotter?
Yes. Choose the laser cut line look for a 0.1 mm red outline, or any look, and download the SVG: each curve is one closed path at the printed size. For DXF, convert the SVG.
Does it make 3-D supershapes?
No. This page draws the flat 2-D curve only.
Is it free?
Yes. There is no sign-up, no watermark and no limit.
Is anything uploaded?
No. Every point, line and filing is worked out by JavaScript in your browser. Nothing you type is sent anywhere or saved when you close the page.