Skip to content

Shape Smooth

Softens a shape by averaging each point's position toward the midpoint of its two path-neighbors. Useful for organic softening of rough shapes from ShapeBoolean, ContourExtract, or hand-drawn EditableShape paths.

Category: Shape Ops Menu path: Shape Ops > ShapeSmooth

Ports

PortTypeDirectionDescription
shape_inshapeinputShape to smooth
outshapeoutputSmoothed shape

Parameters

ParamTypeDefaultDescription
amountscalar0.3Per-iteration interpolation toward neighbor midpoint. 0 = no change, 1 = snap to midpoint. Values above ~0.5 can collapse shapes rapidly — useful range is 0.1–0.5
iterationsscalar3Number of smoothing passes. Each pass applies amount once. Clamped to 50. More iterations = more organic softening at the cost of shape shrink

Expose Channels

When enabled (E button on node header), adds input ports that override params via edge connections:

PortTypeOverrides
amount_inscalaramount

Useful for driving the smoothing strength from a Time ramp (animated softening), a Math expression, or any other scalar source.

How It Works

Laplacian smoothing: each iteration replaces every anchor point's position with a linear interpolation between its current position and the average of its two path-neighbors.

  • Closed paths: the first and last points wrap — each point has exactly two neighbors.
  • Open paths: endpoints are pinned (they only have one neighbor, which would bias smoothing toward it). Interior points smooth normally.

Bezier control points shift by the same displacement as their owning anchor, so curve shape is locally preserved — smoothing softens the path envelope without distorting individual bezier segments.

Point IDs and attributes are preserved — smoothing is position-only.

Usage Examples

Clean up jagged boolean output

Heart → ShapeBoolean ← Circle → ShapeSmooth → DrawShape. The sharp intersection corners soften into gentle bumps.

Organic softening of a polygon

Polygon (sides: 6) → ShapeSmooth (amount: 0.3, iterations: 5) → DrawShape. Hexagon → blobby hexagon.

Smoothing a hand-drawn path

EditableShape → ShapeSmooth (amount: 0.2, iterations: 2) → DrawShape. Removes small jitters while preserving overall form.

Stack with RoundCorners

QuickShape (Star) → ShapeSmooth (light) → RoundCorners → DrawShape. Smooth subtly first, then apply explicit corner rounding — the slight smoothing pre-pass softens the interior while RoundCorners gives clean arcs.

Keyframe for reveal

Keyframe iterations from 0 to 10 over a few seconds — the shape progressively melts into a smoother form.

Tips

  • Shrink is expected. Repeated smoothing pulls convex corners inward. For a square, amount=1.0 iter=1 collapses the whole shape to its center. Keep amount modest (0.2–0.4) and use iterations for the smoothing "dose."
  • Amount vs iterations. Two half-steps ≠ one full step — smoothing compounds non-linearly. Getting the same softness via iterations=2 vs iterations=10 gives different envelope behavior, especially on shapes with sharp corners.
  • For EDIT workflows, chain ShapeSmooth → ResampleShape → ShapeSmooth to redistribute points between smoothing passes — helps when source paths have uneven spacing.
  • Downstream RoundCorners won't fire on a heavily-smoothed shape because explicit corners have been blended away. Apply RoundCorners BEFORE ShapeSmooth if you want both.
  • Smoothing does NOT change point count — if you need fewer points, follow with ResampleShape or simplify upstream.

Limitations

  • No "preserve volume" mode yet — convex shapes shrink slightly each pass. Add a Transform2D with scale > 1 downstream to compensate if needed.
  • Open path endpoints stay pinned. Deliberate — keeps line/stroke endpoints anchored. If you want endpoints to smooth too, close the path upstream.
  • Shared vertices (one point referenced by multiple paths) smooth across ALL incident neighbors. Unusual configuration but defined.
  • RoundCorners — explicit circular-arc rounding at sharp corners. Good for exact control.
  • OffsetPath — pair with negative distance to counteract smoothing shrink.
  • ResampleShape — redistribute points along arc length after smoothing.
  • ShapeBoolean — common upstream source; the boolean output often benefits from a pass of ShapeSmooth.

Caddis — professional motion design.