Skip to content

Editable Shape ​

A freeform bezier shape with two modes — Draw (pen-tool authoring) and Edit (apply per-vertex deltas to an upstream parametric shape). The same node covers "draw from scratch," "trace a reference," and "tweak this preset" workflows.

Category: Shapes Menu path: Shapes > EditableShape

Ports ​

PortTypeDirectionDescription
shape_in (Source)shapeinputOptional source shape. In Draw mode, used as a tracing reference (rendered as a dimmed outline in the viewport, output unchanged). In Edit mode, becomes the live base — output = upstream + per-PointId deltas applied each frame.
out (Shape)shapeoutputShape data — either pen-authored (Draw) or upstream-edited (Edit)

Parameters ​

ParamTypeDefaultDescription
modeenumDrawDraw (pen-authored path is authoritative) or Edit (apply deltas to shape_in)
pathpath(empty)Multi-sub-path bezier data — edited via the pen tool, used as output in Draw mode. Keyframeable (each keyframe = a full snapshot of the points at that frame).
editsshapeEdits(empty)Per-PointId position deltas applied in Edit mode. Internal state — interact via the viewport gizmo or the Input Shape section in Properties. Keyframeable (each keyframe = a snapshot of the delta map).
closedenumAutoAuto defers to the per-sub-path closed state from the pen tool. Open and Closed force a single state across all sub-paths.
reversebooleanfalseReverses the winding direction of the path

Input Shape Section (Properties panel) ​

When the node has an shape_in connection (or has any state to show), Properties surfaces an Input Shape section with mode-dependent action rows:

  • Source — name and shape stats of the upstream node, or (none — connect a shape to source) if nothing is wired.
  • Path (Draw mode) — Import / Append button: copies the upstream geometry into this node's path as additional sub-paths (or as the first sub-path if path is empty). When path is keyframed, Append atomically writes a new path keyframe at the playhead so the merged result is visible at the current frame. The badge to the right shows N kfs and turns amber when the playhead is on a path keyframe.
  • Edits (Edit mode) — Capture / Replace and Clear buttons. Capture snapshots the current delta map as a keyframe at the playhead. Clear discards all deltas and keyframes, reverting to pristine upstream. Badge shows N deltas · N kfs.

The two keyframe systems (Path = literal coords per frame, Edits = delta map per frame) are independent. They surface their own counts next to the actions that operate on them so it's obvious which one a given button affects.

How It Works ​

Draw mode (default) ​

The path parameter holds the full bezier data (sub-paths, control points, tangent handles) and is populated by the pen tool. The shape_in upstream, if connected, is purely a visual reference — output always comes from path.

Edit mode ​

Output is always upstream + edits. The edits param stores per-PointId deltas that re-apply on top of the live upstream every frame — change the upstream's params (radius, sides, etc.) and your tweaks follow naturally. Topology is locked to upstream: drag vertices to tweak; can't add or delete them. Each delta is keyed by the upstream's stable PointId.

Animating edits ​

The edits param is keyframeable. To animate:

  1. Drag vertices at frame 0. Click Capture — saves the current edits as a keyframe at frame 0.
  2. Scrub to frame 30. Drag vertices again — autoKey adds a second keyframe at this frame.
  3. Animation plays back: the deltas interpolate over time, and the upstream still drives the underlying shape (animated upstream + animated deltas compose).

A delta only present at one keyframe fades to zero at the other — useful for "this point was tweaked at frame 10 only, returns to upstream elsewhere." Click Clear to discard all deltas and keyframes.

Animating the path itself ​

The path param can be keyframed too (via the keyframe diamond next to Path in Properties). Each keyframe is a full snapshot of the bezier points at that frame. Drawing or appending while keyframed automatically writes to the keyframe at the playhead, so changes are visible immediately.

Auto-mode on connect ​

Connecting a shape to shape_in while the node is still in default Draw mode (and has no edits yet) automatically switches the mode to Edit. Once you've manually picked a mode or added an edit, the auto-switch is suppressed.

Anchor space default ​

When the pen tool creates a new EditableShape layer, the auto-wired Transform2D defaults to anchorSpace = Comp (instead of the usual Content). Pen-drawn points are literal local-space coordinates, so Content-mode's "pivot = AABB center" would shift the shape under the cursor as new points get added. Comp mode pins the pivot to a fixed comp point so the drawing stays glued to where the user clicks.

Usage Examples ​

Basic: Draw a custom shape ​

Press G to activate the pen tool. Click to place corner points, click-and-drag to create curves. Press Enter or click the first point to close the path.

Continue editing ​

Select the layer, press G again to re-enter the pen tool on the existing EditableShape. Add points or start a new sub-path.

Tweak a preset shape (Edit mode) ​

QuickShape (Heart) → EditableShape (shape_in) → DrawShape. Connecting auto-switches to Edit mode. Press E to enter viewport Edit mode, then drag the bottom vertex down to make the heart pointier. The upstream Heart is unchanged — your delta is stored in edits and re-applied every frame.

Animate a hand-tweaked shape ​

Same setup as above. Make your edits at frame 0, click Capture. Scrub to frame 30, drag the vertices — autoKey writes a keyframe automatically. Press play; the deltas morph between poses while the upstream still drives the base shape. Animate the upstream too — both layers of animation compose.

Complex outlines ​

Draw multiple sub-paths for shapes with holes (e.g., the letter "O" — outer circle and inner circle as separate sub-paths). DrawShape uses the fill rule to determine inside/outside.

Hand-edit a boolean result ​

Circle → ShapeBoolean ← Circle → EditableShape → DrawShape. Auto-switches to Edit mode. Drag boolean intersection vertices to adjust them — they're now movable handles.

Trace a reference (Draw mode + reference outline) ​

Connect a shape to shape_in and explicitly switch to Draw mode. The upstream renders as a dimmed reference outline; pen-tool clicks build a new path on top.

Append a primitive into a hand-drawn path ​

In Draw mode with path already populated, connect a Rectangle to shape_in and click Append. The rectangle's geometry is added as a new sub-path alongside what you've drawn. If path is keyframed, the append also creates a path keyframe at the current frame.

Tips ​

  • G activates the pen tool. The pen is disabled on Edit-mode shapes (topology is locked) — switch to Draw mode first or create a new EditableShape.
  • E enters viewport Edit mode (gizmo with vertex handles). In Edit mode, only vertex drag is supported — bezier handle drag and vertex add/delete are locked.
  • Import to Path (Draw mode, with upstream connected): one-click "snapshot upstream + clear edits + stay in Draw." Use when you want a static, fully-editable copy disconnected from the upstream.
  • Edits are stable across frames as long as upstream topology doesn't change. Changing a parametric shape's topology (e.g. Polygon sides from 5 → 6, ShapeBoolean re-sub-pathing) silently drops affected deltas. Consider Capture before changing.
  • Use the closed param's Auto to defer to per-sub-path closed state from the pen tool; Open / Closed force one state across all sub-paths.
  • Shapes are centered at the local origin. The auto-wired Transform2D handles positioning in the composition.
  • For simple primitives, the dedicated geometry nodes (Rectangle, Circle, Polygon) are easier to adjust parametrically.
  • Rectangle, Circle, Polygon — parametric shape primitives
  • Line — simple two-point line segment
  • ShapeDeform — procedural per-vertex deformation (continuous, not user-driven)
  • ResampleShape — resamples curves into evenly spaced points
  • Transform2D — positions and scales the shape in the composition
  • DrawShape — rasterizes shapes to pixels with fill/stroke