Wallpaper Group Pattern Maker (17 Symmetries)
Tile one motif with any of the 17 wallpaper symmetry groups into a seamless SVG and CSS.
Try an example: Pinwheel leaves (p4g) · Hexagonal rosettes (p6m) · Glide-reflected waves (pg) on a transparent background · Custom triangle path in p3
How it works
Choose a plane symmetry group from p1 to p6m, a motif or your own SVG path, colors and cell size. Get a seamless repeat tile as SVG, a CSS background snippet and a larger preview built from the International Tables symmetry operations.
- Each of the 17 wallpaper groups is listed by its coordinate triplets from the International Tables for Crystallography (Vol. A, plane groups 1–17) in fractional coordinates of the conventional cell. Centred groups (cm, cmm) include the (½, ½) centring translation.
- Fractional operations become pixel transforms through the lattice basis: oblique (a, 0) and (a/3, b), rectangular and centred a × b, square a × a, and hexagonal (a, 0) and (−a/2, a√3/2). Cell stretch sets b = a × stretch for oblique, rectangular and centred lattices.
- The motif (a 0–100 box) is scaled to a share of the cell width, rotated and centred at a fractional position in the cell. Every symmetry copy is translated by all lattice vectors whose copy touches the rectangular repeat tile, so shapes crossing an edge appear on the opposite edge and the tile repeats seamlessly. The repeat tile is a × b, a × 3b for oblique lattices and a × a√3 for hexagonal ones.
- Coloring by symmetry operation cycles the motif colors over the operations of one cell; this is a coloring choice and can make the color pattern less symmetric than the shape pattern. Custom paths accept M, L, H, V, C, S, Q, T and Z commands only.
Sources
- International Tables for Crystallography, Vol. A: plane groups 1–17 (symmetry operations) (International Union of Crystallography)
- Schattschneider (1978): The plane symmetry groups — their recognition and notation, American Mathematical Monthly 85(6) (Mathematical Association of America)
- SVG 2: Patterns (W3C)
Part of Lumina
-
Lumina Photo editor & image toolkit
Bring out what you saw. A free photo studio, right in your browser.
Related tools
- SVG Repeat Pattern Generator – Create a seamless, editable SVG pattern from simple shapes.
- OKLCH Palette & Tint Scale Generator – Build perceptually even tint scales and hue harmonies in OKLCH, gamut-mapped for CSS.
- Color Harmony & Shift Generator – Build HSL harmonies with eased shifts, locked colors and reusable palette exports.
How to make a seamless pattern with the 17 wallpaper groups
Repeat one motif with any plane symmetry group from p1 to p6m and download a seamless SVG tile and CSS background.
What it is for
Every repeating flat pattern — tiles, fabrics, gift wrap, Escher prints — belongs to one of exactly 17 symmetry types, the wallpaper groups. They differ in which rotations, mirrors and glide reflections repeat the motif: p1 only shifts it, p4g spins it in a pinwheel, p6m reflects it into six-fold rosettes.
This tool lets you pick a group, a motif and a cell size and builds the pattern from the symmetry operations listed in the International Tables for Crystallography. You get one seamless repeat tile as SVG, a ready CSS background snippet and a larger preview. Copies that cross the tile edge are repeated from the neighbouring cells, so the tile joins without visible seams. You can use the preset motifs or paste your own SVG path drawn in a 0–100 box.
It is a pattern generator, not a drawing program: motifs are single filled paths.
Worked example
Choose p4g, the Leaf motif, cell width 120 px, motif size 30 %, position 30 % / 12 %, colors #164E63 #E0A33A, background #F5EEDD. The answer: "Created a p4g wallpaper pattern: 8 symmetry operations per cell, repeat tile 120 × 120 px." Twelve leaf copies touch the tile — eight from the cell itself plus copies from neighbours that overhang the edges. Colored by operation, the leaves alternate teal and ochre around the four-fold centres.
For a hexagonal example pick p31m, motif Scalene triangle, cell 150 px, size 35 %, position 40 % / 15 %, rotation 20° and three colors. The tool reports 6 operations per cell, 22 copies and a repeat tile of 150 × 259.8076 px, with a note: the height is 150·√3, an irrational number, so a scaled CSS background can show hairline seams in some browsers while the SVG pattern stays exact.
How to read the result
- Symmetry operations per cell is the size of the group's point part in its conventional cell: 1 for p1, 4 for p4, 12 for p6m.
- Motif copies in one tile includes overhanging copies; it is always at least the number of operations.
- Repeat tile is the rectangle that tiles the plane: the cell itself for square and rectangular groups, three cells high for the oblique p1/p2, and width × width·√3 for hexagonal groups.
- Downloads: the tile SVG for image editors, the preview SVG with an SVG
<pattern>, and the CSS file.
Tips and common mistakes
- Keep the motif away from mirror lines and rotation centres for clean, non-overlapping copies; move it with the position sliders.
- An asymmetric motif shows the symmetry best. A circle in p4m looks the same as in p1.
- "One color per symmetry operation" makes a colored pattern whose color symmetry is lower than its shape symmetry. Use First color only to see the pure group.
- Cell height stretch only affects oblique, rectangular and centred groups.
- For CSS use, prefer square and rectangular groups if seams appear when zooming.
FAQ
Why exactly 17?
A repeating pattern can only have 2-, 3-, 4- or 6-fold rotations, and only a few ways to combine them with mirrors and glides fit a lattice. The International Tables list exactly 17 plane groups, numbered 1 (p1) to 17 (p6m).
Why does my hexagonal CSS background show thin lines?
The tile height is width × √3, which is not a whole number of pixels. Use the SVG pattern, or choose a square group.
Can I draw my own motif?
Yes. Choose Custom SVG path and paste a path using M, L, H, V, C, S, Q, T and Z in a 0–100 box. Arcs are not accepted.
Is this available in Lumina?
Yes. Palette Studio → Color Atlas → Wallpaper pattern tiles your palette with the same engine.
Guide last updated:
For scripts and AI agents
- JSON API:
POST https://luminawallpaperpattern.usefulweb.app/api/v1/calculate(same calculation as this page) - Interface description: OpenAPI 3.1 · AI guide: llms.txt
- MCP server (Streamable HTTP):
https://luminawallpaperpattern.usefulweb.app/mcp· tool namelumina_wallpaper_pattern
Example request
curl -s -X POST https://luminawallpaperpattern.usefulweb.app/api/v1/calculate \
-H 'content-type: application/json' \
-d '{"group":"p4g","motif":"leaf","colors":"#164E63 #E0A33A"}'