Overview
sTransform sits between shape nodes and adds an extra transform on top of the built-in transforms of each shape (Offset, Angle in sRectangle, for example).
Its main benefit: hierarchical animations. An sStar with its internal Angle spins the star on itself. An sTransform downstream can make it orbit around the frame. The two animations combine naturally, with no conflict.
Where to find this node
- Effects Library:
Tools > Shape > sTransform - Quick add: right-click in the Node Editor →
Add Tool > Shape > sTransform
sTransform vs Transform 2D
- Transform (2D)
- Works on bitmap images. Sits after the sRender. Resampling is needed - it can add blur if you zoom in after rasterization.
- sTransform
- Works on vector data. Sits before the sRender. Resolution is preserved - the shape stays sharp at any scale. Faster too (no resampling).
Rule: a transformation on a shape that is still vector → sTransform. A transformation after rasterization (or on non-shape elements) → a classic Transform 2D.
Inputs
- Input (orange, required) - the output of a shape node (sRectangle, sEllipse, sBoolean, etc.).
Setup
Hierarchical animation (a star spinning + orbiting):
sStar (animated Angle - spins on itself)
→ sTransform (animated Rotation - orbits around the center, Offset away from 0)
→ sRender
Scaling a compound shape:
sRectangle → sBoolean Subtract ← sEllipse
↓
sTransform (Scale 1.5) → sRender
Animated parent transform (group):
Multi-shapes → sMerge → sTransform (group animation) → sRenderControls tab
- Offset (X / Y)
- Additional offset relative to the shape's own position.
- Size / Scale
- Resizing. Can be uniform or separate in X/Y for stretching.
- Angle
- Additional rotation around the anchor point. Adds up with the shape's internal Angle (if any).
- Anchor Point
- Reference point for rotation / scale. Move it to spin the shape around an external point = an orbit effect.
Hierarchical animations: the key use case
Hierarchical animations take advantage of the fact that each node (shape or sTransform) has its own transformation parameters. By combining:
- The shape's internal rotation (e.g. the Angle of an sStar) = rotation on its own axis.
- An sTransform with an offset Anchor Point + an animated Angle = rotation around the Anchor (outside the shape).
Result: the star spins on itself while it orbits around the center. Impossible to do cleanly with a single Transform 2D - you need the hierarchical layer.
The same logic as "null objects" in After Effects or "parent/child" in 3D. Several sTransform nodes can be stacked for N-level hierarchies.
Use cases
- A star spinning + orbiting (the canonical example) - sStar with an animated Angle + sTransform with an animated Angle and an external Anchor.
- Planet + satellites - several sEllipse nodes + several sTransform nodes with different Anchor Points = a complete orbital system.
- Cleanly scaling a compound shape - after an sBoolean or sMerge, an sTransform lets you scale the whole thing without touching the individual shapes.
- Positioning a composite shape - move a set of grouped shapes from a single control point = cleaner than changing each Offset.
- Animating the letters of a logo - each letter has its own animation (one sTransform per letter), then a global sTransform for the whole thing.
- Animated scale during a rotation - an sTransform with Size and Angle animated at the same time = a clean rotating zoom (no resampling blur).
- Pre-positioning for sDuplicate - position a shape before duplicating it with sDuplicate for precise patterns.
Tips
- Stack sTransform nodes for multi-level hierarchies. Each sTransform = one more transformation level. Think in terms of nesting.
- Offset Anchor Point = orbit - to make a shape orbit, move the Anchor far from the center of the shape, then animate Angle.
- sTransform is not always needed - if a simple translation is enough, use the shape's own Offset directly. Keep sTransform for hierarchical animations or compound shapes.
- No loss of quality - unlike a Transform 2D after the sRender, an sTransform never blurs the shape, even at a very high zoom.
- Rename for clarity - "sTransform_Orbit", "sTransform_Global" make a graph with several hierarchical levels readable.
- Animate a uniform Size for a clean scale. A Size X different from Size Y = a visible stretch, only use it if that is the effect you want.
- For grouped timed animations (e.g. all the shapes appearing in a cascade), combine sMerge + sDuplicate with a Time Offset for staggering.
