Quick Shape
Preset "sticker" geometry — pick a named silhouette and get a ready-to-use shape with zero custom params beyond size. Useful for prototyping, testing flow fields with recognizable motion, mockups, and anywhere you want a directional or iconic shape without drawing one.
Category: Shapes Menu path: Shapes > QuickShape
Ports
| Port | Type | Direction | Description |
|---|---|---|---|
out | shape | output | The preset shape as a closed path (or paths) |
Parameters
| Param | Type | Default | Description |
|---|---|---|---|
preset | enum | Arrow | Which preset silhouette to emit (see list below) |
size | scalar | 100 | Largest extent of the shape in comp pixels. All coords scale together — shapes stay roughly proportional |
Expose Channels
When enabled (E button on node header), adds input ports that override params via edge connections:
| Port | Type | Overrides |
|---|---|---|
size_in | scalar | size |
Available Presets
| Preset | Description |
|---|---|
Arrow | Right-pointing arrow (stem + triangular head). Pair with Transform2D rotation to point any direction |
Heart | Classic heart silhouette with two humps meeting in a V, tapering to a point at bottom |
Cursor | Mouse-pointer silhouette — tip at top-left, tail at lower-right |
SpeechBubble | Rounded-rect body with tail pointing down-left |
Star | 5-point classic star |
Lightning | Jagged bolt shape |
Plus | Equal-arm cross/plus symbol |
Check | Checkmark / tick |
Usage Examples
Test flow fields with a directional shape
QuickShape (Arrow) → CloneToPoints ← Grid → DrawShape → Output. Grid of arrows shows a PointAdvect-style flow at a glance (drop a field source into CloneToPoints' scatter attribute for rotation).
Speech bubble over a layer
QuickShape (SpeechBubble, size: 300) → Transform2D → DrawShape → Output. Instant comic-style callout.
Instanced hearts along a path
QuickShape (Heart) → CloneToPoints ← PointsAlongPath ← EditableShape. Hearts follow a curve with auto rotation from path tangent.
Animate a cursor across the screen
QuickShape (Cursor) → Transform2D (keyframe position) → DrawShape → Output. The cursor preset's tip is roughly at top-left so rotation/position feels natural.
Chain with other shape ops
Use OffsetPath on a QuickShape preset to thicken it; RoundCorners to soften a sharp preset (Plus, Check, Lightning); ShapeBoolean to combine two presets into a compound icon.
Tips
- Every preset is a closed path centered at the origin — works out of the box with
CloneToPoints,ShapeAttributes,ShapeBoolean, etc. sizeis the largest axis — non-square presets retain their natural aspect ratio. To stretch, useTransform2Dscale.- Presets are intentionally tiny parameter-free — use EditableShape if you need to modify a preset's geometry, or compose with
ShapeDeformfor procedural tweaks. - The Arrow preset's tip is on the +X axis —
Transform2Drotation of 90° points it down, -90° points up, 180° points left. Useful for directional indicators. - Missing a shape you want? Add it to
engine/src/graph/quick_shape.rs'sbuild_preset()match + the TSENUM_OPTIONS.QuickShape.presetlist.
Related Nodes
- EditableShape — full bezier shape editing when a preset doesn't match
- DrawShape — rasterizes the preset into a texture
- Transform2D — rotate/scale/position a preset in comp space
- OffsetPath, RoundCorners — shape ops that pair well with presets
- CloneToPoints — instance a preset at every point