Skip to content

Symmetry

Mirror your strokes across an axis automatically. Useful for symmetric character designs, mandalas, and any sprite where left/right or top/bottom should match exactly.

Symmetry is a workspace toggle — once on, pencil, eraser, fill, line, rectangle, ellipse all paint mirrored branches transparently. Pixel-perfect mode also applies independently on each branch.


Where to find it

Tools panel → Symmetry section. Collapsible.

Symmetry panel


Configuration

ControlWhat
ON / OFFMaster toggle
Axisvertical / horizontal / both (4-way) / diagonal NW-SE / diagonal NE-SW
Center X / YNumeric inputs for the axis position. Accepts .5 steps for between-pixel placement (gap-free on even-canvas sizes).
Center on canvasReset button — sets center to (canvas-1)/2.

When symmetry is on, the canvas displays the axis as a dashed amber overlay. Drag the axis with the mouse to reposition (the centre coordinates update live).


Axes explained

AxisMirror behaviour
verticalLeft ↔ right (mirror across a vertical line at center.x)
horizontalTop ↔ bottom (mirror across a horizontal line at center.y)
both4-way symmetry (reflect across both vertical and horizontal axes)
diagonal NW-SEMirror across the line going from top-left to bottom-right of the centre
diagonal NE-SWMirror across the line going from top-right to bottom-left

For "both" you get a quadrant pattern — useful for symmetric icons, gems, and emblems.


Center position: integer vs .5

For odd-size canvases (e.g. 31×31), the natural centre is the middle pixel — an integer like 15. The axis runs through that pixel.

For even-size canvases (e.g. 32×32), the natural centre is between pixels — use 15.5 so the axis runs between pixels 15 and 16. Without this, you'd get a 1-pixel gap on one side.

The Center on canvas button picks the right value automatically: (canvas - 1) / 2 (integer for odd, .5 for even).


Tools that respect symmetry

  • ✅ Pencil
  • ✅ Eraser
  • ✅ Fill
  • ✅ Line, Rectangle, Ellipse
  • ❌ Gradient — deliberately bypasses symmetry (mirroring a gradient is rarely desired)
  • ❌ Shade tool — works per-click; symmetry would mean weird stepping on the mirror
  • ❌ Magic Wand / Lasso — selections are not mirrored

When symmetry is on but the active tool doesn't support it, the axis overlay still shows, just for visual reference.


Pixel-perfect with symmetry

Pixel-perfect mode is per-branch. Each mirror has its own L-filter trail, so the corner-removal logic works correctly on each side.


Workflow

  1. Make sure your canvas is centred how you want — symmetric character on an odd canvas is the simplest.
  2. Turn on symmetry, axis = vertical.
  3. Paint only on one side of the axis. The other side mirrors live.
  4. For details that should NOT be symmetric (e.g. a scar, an asymmetric pose), turn symmetry off temporarily.

Tips

  • The axis is draggable — hold and drag on the canvas to reposition. Useful for symmetric details that don't share the canvas centre.
  • Save common axis configurations by leaving them in your project — they're persisted in .mstack.
  • Combined with Reference image, symmetry is great for fast character sketching: drop a reference, position the axis at its centre, paint half.

Motestack is a personal hobby project. The editor and these docs ship under no warranty — back up your `.mstack` files.