Repository navigation
wallpaper groups
Home > The 17 wallpaper groups
< Previous: Two-window mode | Next: Oblique lattice >
How Locus ships the 17 repeating-pattern symmetry types as drop-in cluster presets you feed a motif.
Any pattern that repeats across a flat surface - a tile, a textile, a pendant face - belongs to exactly one of 17 symmetry types. Mathematicians call them the wallpaper groups. They are the complete set: every repeating 2D pattern in the world, no matter how ornate, is built on one of these 17 skeletons of mirrors, rotations, and slides. Learn to work with the groups and you can reproduce, vary, or invent any repeating design on purpose instead of by trial and error.
The short codes used throughout these pages - p4m, cmm, p6m - are international (Hermann-Mauguin) notation, the standard crystallographers' names for these groups. For how to read them (what each letter and number means), how the short and full forms relate, and a downloadable copy of the classic reference chart, see Reading the symmetry notation.
Locus gives you each group as a ready-made cluster preset - a self-contained bundle of construction steps you drop into your node graph. The presets are named with the standard shorthand: p1, p2, pm, pg, cm, pmm, pmg, pgg, cmm, p4, p4g, p4m, p3, p3m1, p31m, p6, and p6m. You don't wire up the mirrors and rotations by hand; the cluster carries the whole recipe for that group's symmetry.
To use one:
- Search the node palette for the group you want (for example,
p4m) and drop its cluster in. - Feed it your motif - the small drawing you want repeated.
- Give it its cell vectors,
V1andV2, as segments drawn from one shared corner. - Set how many times it repeats across and down.
V1 carries two things at once: the cluster reads its start as the lattice origin and
its direction as the first axis. So a segment is what it wants - two ends, from which both
of those can be read. A single bare point cannot say which way the axis runs, and the first
direction collapses, which stacks the pattern on top of itself instead of spreading it.
Draw V1 and V2 from the same corner, so the two axes share an origin and the cell
closes. Taking them off the Domain output's corners, as below, gets this right by
construction.
Each cluster gives you two outputs:
- Pattern: the finished tiling.
-
Domain: the fundamental domain, the smallest region the group repeats from. Its corners are also where the cell vectors start and end, so if you want
V1andV2drawn on the canvas, take them from the Domain.
Every group anchors each cell's copies so that a cell's content stays inside that cell. The consequence shows up only at the boundary of a finite block: it starts and stops cleanly instead of throwing part of each edge cell into its neighbor and leaving a sawtooth.
Thirteen of the seventeen used to do exactly that. The pattern they make is unchanged - this is about where a finite block begins and ends, not about the symmetry.
The exception is the lattice, not a defect. The three- and six-fold groups - p3, p3m1,
p31m, p6, p6m - tile with a hexagonal cell, so the edge of a block is a zigzag of
half hexagons. No anchoring can square that off, because a hexagon does not pack into a
rectangle.
These two are centered rectangular: their conventional cell is a rectangle holding
two primitive cells, not one. Repeat steps that rectangle, so each step of RepeatX or
RepeatY lays 4 copies in cm and 8 in cmm.
It is the same pattern either way, at twice the area per step. If you are converting a count from somewhere else, halve it.
Every wallpaper group is built on an underlying lattice - the shape of its repeating cell - and the seventeen sort into four lattice families. Each family has its own page, with every group in it shown as three figures apiece: the tiling view (the motif repeated, with the fundamental-domain tile tinted and the V1/V2 cell vectors marked and a legend of what the cluster makes), the group's cluster node, and the symmetry-elements view in standard international notation (mirror lines as double lines, glide lines dashed, and rotation centers as hexagon = 6-fold, square = 4-fold, triangle = 3-fold, diamond = 2-fold). The tiling and its tinted domain are the Pattern/Domain outputs; the notation view is a reference figure, so you can see which mirrors and rotation centers the group carries and place your motif against them.
-
Oblique lattice:
p1,p2. A general parallelogram cell; only translations and half-turns, no mirrors or glides. -
Rectangular lattice:
pm,pg,pmm,pmg,pgg, plus the centered-rectangular (rhombic)cmandcmm. Mirror and glide lines along the cell edges. -
Square lattice:
p4,p4m,p4g. 4-fold rotations, with or without mirrors. -
Hexagonal lattice:
p3,p3m1,p31m,p6,p6m. 3- and 6-fold rotations, with mirrors in three of the five groups.
Nine of the groups sit on a slanted or hexagonal grid, which means the finished block of pattern can come out as a leaning parallelogram rather than a neat rectangle. For those groups - p1, p2, cm, cmm, p3, p6, p3m1, p31m, p6m - the cluster exposes a Deskew input that straightens the result into an axis-aligned block, easier to lay out, crop, and export. It takes the same three values as the Deskew pulldown on Array: Directed: 0 leaves the block as the lattice makes it, 1 straightens V1 so the columns run square, 2 straightens V2 so the rows do. The eight always-rectangular groups don't need it, so they don't show the option.
Note
Deskew squares up the Pattern only. The Domain keeps its original orientation, so don't be surprised if the tinted tile sits at an angle to a squared-up pattern.
When you drop a cluster into your node graph, it brings its own embedded copy of the recipe. That makes your file self-contained - but it also means a dropped cluster is a snapshot. If the preset is later improved, an already-placed cluster won't change on its own. To pick up an updated version, re-drop a fresh copy from the palette.
Caution
Confirm against the build The wallpaper groups here work through the shipped cluster presets - that path is real and all 17 groups are covered. A separate, dedicated built-in symmetry engine (a more polished, one-click way to switch groups) is still in development. Treat the clusters as the current way to work, and check your build before assuming a standalone engine is present.
< Previous: Two-window mode | Next: Oblique lattice >
- Reading the symmetry notation: how to read the group codes, and the classic reference chart.
- Clusters: how cluster presets behave in the node graph.
Found a bug or have feedback? Open an issue | Docs home | Videos | Credits
Getting Started
- Welcome
- How Locus came to be
- Videos
- Community & support
- Installing & launching
- Licensing & activation
- Beta License Agreement
- Core concepts
- Interface tour
- Your first pattern
Modeling - Drawing
- Canvas basics
- Points
- Typing coordinates
- Lines, rays & segments
- Circles & arcs
- Ellipses
- Compass & straightedge
- Rectangles & squares
- Constraining with Shift
Modeling - Editing
- Selecting objects
- Transform tools
- Align & distribute
- Duplicate, detach & ownership
- Regions & booleans
- Cleanup
- Weld & seams
- Style palettes & Re-ink
Annotation
Layers
Modeling Menus
- File
- Edit
- View
-
Draw
- Select
- Point
- Segment
- Line
- Ray
- Circle: Center Point
- Circle: Center Radius
- Circle: Through 3 Points
- Arc: Center, Start, End
- Straightedge
- Compass
- Compass: Radius
- Ellipse: Center + Axes
- Elliptical Arc
- Rectangle: XY-Aligned
- Rectangle: Directed
- Square
- Regular Polygon: Edge
- Regular Polygon: Center, Vertex
- Regular Polygon: Center, Edge Midpoint
- Dimension: Linear
- Dimension: Angle
- Dimension: Radial
- Label
- Construct
- Combine
- Transform
- Select
- Nodes
The Nodes Window
- Basics of visual programming
- How the node graph works
- Sockets & wires
- Adding & connecting nodes
- Sliders & number inputs
- Keeping the node graph tidy
- View menu (Nodes)
- Lists & collections
- Constants & unit conversions
Node Library
- Overview
- Input
-
Primitives
- Point
- Point: Polar
- Segment
- Line
- Ray
- Circle: Center Point
- Circle: Center Radius
- Circle: Apollonius
- Circle Tangent to...
- Circle: 3 Points
- Arc
- Ellipse
- Elliptical Arc
- Rectangle: XY-Aligned
- Rectangle: Directed
- Square
- Regular Polygon: Edge
- Regular Polygon: Center
- Rectangular Grid
- Oblique Grid
- Triangular Grid
- Construct
- Transform
- Image & Fields
- Combine
-
Data
- Measure
- Numbers
- Lists
- Select
- Clean up
- Display
Clusters
Bridging Modeling & Nodes
Patterns & Symmetry
Image-Driven Fields
Saving, Exporting & Files
Preferences & Language
CLI
Reference