Skip to content

Shape Morph

Interpolates ("morphs") between two or more input shapes, driven by a single keyframeable mix value.

Category: Shape Ops Menu path: Shape Ops > Shape Morph

Ports

PortTypeDirectionDescription
shapes_inshapeinput (multi)Two or more shapes to morph between. Connect them in order — the morph sequence follows the vertical edge fan on the port (top edge = first).
outshapeoutputThe morphed shape at the current mix.

Parameters

ParamTypeDefaultDescription
mixscalar0Position along the input chain. 0 = first shape, 1 = second, 2 = third, … Fractional values blend the two bracketing shapes (e.g. 1.5 = halfway between the 2nd and 3rd input). Clamped to [0, n-1]. Keyframe this to animate the morph.
pointsscalar64Resample resolution per path. Each input is resampled to this many evenly-spaced points before interpolating. Higher = smoother morph (and slightly more cost); lower = chunkier.
autoAlignbooleantrueMatches winding direction and picks the lowest-travel start offset for each pair, so the shape deforms in place instead of swirling/folding through itself. Leave on for clean morphs; turn off if you want the spin/rotation it removes.
offsetscalar0Extra manual rotation of the vertex correspondence on the next shape of each pair (0–1, wraps), added on top of Auto Align. Nudge it to fine-tune, or (with Auto Align off) to dial in a deliberate spin.

How It Works

There's no vertex correspondence to set up by hand: each input shape is resampled to a common point count (points) at uniform arc-length, then the matching points are linearly interpolated by mix. For three or more inputs, mix picks the bracketing pair (floor(mix) and the next) and blends within it, so a single value sweeps the whole chain.

The naive mapping — point i of A to point i of B — only looks good when the two outlines happen to start at the same place and wind the same way; otherwise vertices take long crossing paths and the shape appears to swirl through itself. Auto Align fixes this: for each pair it flips the second shape's winding to match the first, then searches all cyclic start offsets for the one that minimizes total vertex travel (centroid-relative), so corresponding points are as close as possible and the morph deforms in place.

Shapes morph path-for-path by index, so single-path shapes (polygon, circle, star, blob) "just work." Multi-path shapes morph their paths up to the shared count.

Usage Examples

Basic: Morph between three shapes

Wire Polygon, Circle, and Star into one ShapeMorph (in that order), then ShapeMorph → DrawShape → Output. Keyframe mix: 0 at frame 0, 1 at frame 30, 2 at frame 60. The polygon flows into the circle, then into the star.

Creative: Driven morph

Expose-free driving: connect a Time (or any scalar) through to mix via a keyframe curve with hold/ease so the shape "pops" between forms, or pingpong mix 0 → 2 → 0 for a looping cycle.

Tips

  • If the morph swirls or folds through itself, make sure Auto Align is on — it's the fix for exactly that (winding + start-point mismatch). If a particular pair still isn't ideal, nudge offset to slide the correspondence.
  • Connection order = morph order. Re-drag the edges if 0/1/2 aren't the shapes you expect (the fan order on the port is the sequence).
  • points is the smoothness knob. 64 is a good default; bump it for large/curvy shapes, drop it for a deliberately faceted look.
  • Inputs don't need matching vertex counts — that's the whole point. Resampling handles it, so you can morph a 3-point triangle into a 200-point blob.
  • ResampleShape — the arc-length resampler Shape Morph uses internally; reach for it directly if you only need to normalize one shape's point count.
  • MergeShapes — combines shapes as separate paths (no interpolation), using the same multi-input port pattern.
  • EditableShape — for hand-authored path keyframing (drag the same points between poses) when you want full manual control of a morph.

Caddis — professional motion design.