Gyroid
Draw the gyroid, the surface sin x cos y + sin y cos z + sin z cos x = t, in two ways. Slice it at any height to get a repeating pattern: the lines where the surface cuts the plane, the solid side, or a band around the surface. Set the period and it prints at real size, with a seamless PNG or SVG tile for one period. Or look at the 3D solid inside a box of whole periods, turn it, spin it and save the view; when the mesh passes our watertight check you can also download it as an STL. Nothing is uploaded.
100% private — everything runs in your browser. Everything runs in your browser; nothing is uploaded.
Print at 100% (Actual size): one period prints at the length you set, and the check bar in the footer confirms the scale. The PNG tile (a whole number of pixels per period) and the SVG tile hold one period and repeat edge to edge. STL is offered only when the 3D mesh passes our watertight check. Spin turns the 3D view for 600 frames and stops (it pauses while the tab is hidden).
Gyroid
Slice
3D solid
Page
Runs in your browser with our own code: nothing you pick is uploaded or saved. Every line and shape comes from the gyroid equation sin x cos y + sin y cos z + sin z cos x = t. You may use what you make here, including commercially, with no credit needed.
How to make a gyroid pattern or model
- Pick a preset, or choose Lines, Solid or Band.
- Set the level t, the band half-width w and the slice height z.
- Set the period (one repeat) in mm, cm or inches, and the colours.
- For the 3D solid, pick network or sheet, the periods per side and the grid steps; turn and tilt it.
- Download the PDF and print at 100% (Actual size), the PNG or SVG tile, the 3D view, or the STL.
What you can use it for
- Maths and geometry lessons on minimal surfaces
- Seamless backgrounds and textile repeats from the tile
- Laser and plotter line art from the SVG
- Posters of the slice pattern at real size
- 3D models to view or print from the STL
- Pictures of the 3D solid for slides and notes
The 14 presets
| Preset | Draws | t | w | Slice z (period) | Period | 3D solid |
|---|---|---|---|---|---|---|
| Lines at t = 0, slice z = 0, 20 mm period | lines | 0 | – | 0 | 20 mm | network, 1 × 1 × 1 |
| Lines, slice a quarter period up (z = 0.25) | lines | 0 | – | 0.25 | 20 mm | network, 1 × 1 × 1 |
| Lines, slice z = 0.125 | lines | 0 | – | 0.125 | 20 mm | network, 1 × 1 × 1 |
| Solid side f ≥ 0, teal | solid side | 0 | – | 0 | 20 mm | network, 1 × 1 × 1 |
| Solid side, z = 0.25, violet | solid side | 0 | – | 0.25 | 20 mm | network, 1 × 1 × 1 |
| Solid side f ≥ 0.6 (thinner network) | solid side | 0.6 | – | 0 | 20 mm | network, 1 × 1 × 1 |
| Band |f| ≤ 0.3 (sheet), coral | band | 0 | 0.3 | 0 | 20 mm | network, 1 × 1 × 1 |
| Thin band |f| ≤ 0.12 | band | 0 | 0.12 | 0.125 | 20 mm | network, 1 × 1 × 1 |
| Band, z = 0.25, night | band | 0 | 0.25 | 0.25 | 20 mm | network, 1 × 1 × 1 |
| Fine lines, 10 mm period | lines | 0 | – | 0 | 10 mm | network, 1 × 1 × 1 |
| Large solid, 50 mm period | solid side | 0 | – | 0 | 50 mm | network, 1 × 1 × 1 |
| Lines, 1 inch period | lines | 0 | – | 0.25 | 1 in | network, 1 × 1 × 1 |
| Sheet solid 3D, 2 × 2 × 2 periods | band | 0 | 0.4 | 0 | 20 mm | sheet, 2 × 2 × 2 |
| Network solid 3D, t = 0.3 | solid side | 0.3 | – | 0 | 20 mm | network, 2 × 2 × 2 |
Level check: points on the lines
| Preset | Grid per period | Line points in one tile | Largest |f − level| at those points |
|---|---|---|---|
| Lines at t = 0, slice z = 0, 20 mm period | 25 × 25 | 150 | 0.0054 |
| Lines, slice a quarter period up (z = 0.25) | 25 × 25 | 148 | 0.0044 |
| Lines, slice z = 0.125 | 25 × 25 | 196 | 0.0054 |
| Solid side f ≥ 0, teal | 25 × 25 | 150 | 0.0054 |
| Solid side, z = 0.25, violet | 25 × 25 | 148 | 0.0044 |
| Solid side f ≥ 0.6 (thinner network) | 25 × 25 | 148 | 0.0057 |
| Band |f| ≤ 0.3 (sheet), coral | 25 × 25 | 296 | 0.0062 |
| Thin band |f| ≤ 0.12 | 25 × 25 | 356 | 0.006 |
| Band, z = 0.25, night | 25 × 25 | 304 | 0.006 |
Worked out by evaluating sin x cos y + sin y cos z + sin z cos x at every line point the tool draws in one tile.
Periods and how many fit
| Period | Grid per period | Grid step | Periods on US Letter | Periods on A4 |
|---|---|---|---|---|
| 5 mm | 16 | 0.313 mm | 38.1 × 48.4 | 36.9 × 51.9 |
| 10 mm | 16 | 0.625 mm | 19.1 × 24.2 | 18.5 × 26 |
| 20 mm | 25 | 0.8 mm | 9.5 × 12.1 | 9.2 × 13 |
| 50 mm | 63 | 0.794 mm | 3.8 × 4.8 | 3.7 × 5.2 |
| 100 mm | 64 | 1.563 mm | 1.9 × 2.4 | 1.8 × 2.6 |
| 1 in | 32 | 0.794 mm | 7.5 × 9.5 | 7.3 × 10.2 |
Printable area inside 12.7 mm margins, above the footer.
The 3D solid: watertight check
| Solid | Triangles | Vertices | Watertight | Open edges | Share of the box |
|---|---|---|---|---|---|
| Network f ≥ 0 | 28,356 | 14,176 | yes | 0 | 49.7 % |
| Network f ≥ 0.3 | 26,052 | 13,024 | yes | 0 | 39.9 % |
| Network f ≥ 0.6 | 22,644 | 11,320 | yes | 0 | 30 % |
| Sheet |f − 0| ≤ 0.25 | 33,552 | 16,548 | yes | 0 | 15.7 % |
| Sheet |f − 0| ≤ 0.4 | 34,968 | 17,482 | yes | 0 | 25.7 % |
| Sheet |f − 0.3| ≤ 0.3 | 33,288 | 16,532 | yes | 0 | 19.2 % |
One period per side, 24 grid steps per period. The network f ≥ 0 fills 49.7 % of the box: the equation changes sign when x, y and z all change sign, so the exact share is 50 %, and the mesh is within half a percent of it.
The colours
| Colours | Ground | Lines and fill |
|---|---|---|
| Black on white | #ffffff | #111111 |
| Teal on mint | #f0fdfa | #0f766e |
| Navy on pale blue | #eff6ff | #1e3a8a |
| Coral on cream | #fff7ed | #c2410c |
| Violet on lilac | #f5f3ff | #6d28d9 |
| Light on night blue | #0f172a | #e2e8f0 |
What you can download
| Download | What is in it |
|---|---|
| A page filled with the slice at the period you set (real size), vector paths, with a check bar | |
| PNG 300 DPI page | The same page as a picture |
| PNG tile | One period, a whole number of pixels per period (about 300 DPI), to repeat in any app |
| SVG tile | One period as vector paths, at its printed size |
| STL (closed solid) | The 3D solid in mm (one period = the length you set), only when the watertight check passes |
| PNG of the 3D view | The turned and tilted view, 2000 × 1500 px |
To look at the STL from every side, open it in the STL Viewer; for a cutter that needs DXF, convert the SVG tile with SVG to DXF.
Which tool to use
| You want | Use |
|---|---|
| Gyroid slices, a 3D gyroid solid or its STL | Gyroid (this page) |
| Cells around scattered points | Voronoi Generator |
| Shapes from the superformula | Superformula |
| Chaotic orbits drawn as density pictures | Strange Attractor |
| Tiles that join into long curves | Truchet Tiles |
Other tools: the Voronoi Generator makes cell patterns, the Truchet Tiles join arcs into mazes and the Noise Texture Generator makes random textures.
More free tools
Maths art, patterns and 3D?
Design tools that run privately in your browser, with no sign-up and no watermark.
Frequently asked questions
What is a gyroid?
A surface that repeats in all three directions and is a minimal surface: it was described by Alan Schoen in a May 1970 report. It contains no straight lines and no planes of mirror symmetry. It is often drawn with the short trigonometric equation sin x cos y + sin y cos z + sin z cos x = 0, which this tool uses (Wikipedia, Gyroid, read 13-Nov-2026).
What do t and w do?
t moves the level: f = t instead of f = 0. At t = 0 the two sides of the surface fill equal halves of space; a larger t shrinks the solid side f ≥ t. The band |f − t| ≤ w is a thickened sheet around the surface, w being half its width in the units of f (not mm).
Is the slice tile seamless?
Yes. The grid that traces the lines takes its values from the equation with every index wrapped to one period, so the tile edge at x = 2π reads exactly the same numbers as the edge at x = 0. Our tests compare copies of the tile with the same area drawn straight from the equation.
How accurate are the lines?
Every point where a line meets the grid is placed on the level by linear interpolation; we then evaluate the equation at those points, and in our checks the largest error is 0.0062 (the table below lists it for each preset). Between those points each line is a straight segment one grid step long (the step for each period is in the table below).
Is the STL watertight?
The STL button only turns on when the mesh passes our check: every edge is shared by exactly two triangles running in opposite directions, no triangle repeats a corner, vertices do not collide when merged by position, and the volume is positive. The table below gives the counts for six settings; all pass.
Can I use the STL as 3D-print infill?
This tool makes the shape and checks that the mesh is closed. It does not test strength, stiffness or how a part behaves in use, so it makes no claim about that; check any part you print for your own use.
Why marching tetrahedra?
Each grid cube is split into six tetrahedra along one diagonal. Every tetrahedron has only three cases, with no ambiguous ones, so neighbouring cubes always agree and the mesh closes. The box faces close the solid because the grid sits half a step outside them.
What sizes print?
A period from 5 to 200 mm (or the same in cm or inches). The PDF fills the printable area at real size with a check bar in the footer to confirm the scale.
Is it free?
Yes. There is no sign-up, no watermark and no limit.
Is anything uploaded?
No. Everything is worked out by JavaScript in your browser. Nothing you pick is sent anywhere or saved when you close the page.