Smart Stretch
Make one part stretch everything attached to it: turn on a driver, set its limits and width, and choose how each attached part responds.
Smart Stretch lets one part control the size of everything attached to it. Stretch a telescope’s handle and every section slides out; squash a spring and its coils get closer, while the hook at its end keeps its shape.
- Turn on Smart Stretch for a part in Build → Properties → Rig. That part is now a driver.
- In Animate, hold Ctrl while you drag the driver’s joint. The parts below it stretch along with it.
- Each attached part chooses its Stretch response: stretch, stay rigid and pass it on, or stop it.
The problem it solves
Without Smart Stretch, stretching a part only makes that one line longer: the parts hanging from it just move further away, keeping their old size. That is fine for a rubber arm, but wrong for a lot of things: a telescope, a pump, an accordion, a cartoon squash. You would have to stretch every piece by hand, on every frame.
With Smart Stretch on, you animate one control and the rule does the rest on every frame.
A 30-second example
- In the playground below, hold Ctrl and drag the red control joint to the left. (On a touch screen, turn on Hold Ctrl above the editor first.) The blue driver gets shorter and so do the two details hanging from it.
- Drag the control without Ctrl: the whole branch turns and nothing changes size.
- Click the purple part’s end joint to select the first detail. In Rig → Stretch response, pick Keep rigid · pass through. Stretch again: the purple part keeps its size, the green one still stretches.
- Hold Ctrl and drag the red control: it stretches.
- Drag it without Ctrl: the branch turns instead.
- Set Width to Thicken on compression.
- Click the purple part’s end joint to select the first detail.
- Set its Stretch response to Keep rigid · pass through.
- Try Stop at this joint.
- Select the Driver again and lower its Maximum.
The line at the top of the stage reads the result: the driver’s stretch in percent and the length of each detail.
Turn on a stretch driver
- Open Build on the figure. Give the driver its normal size first: that size becomes its Rest length.
- Click the driver’s end joint. In Properties, open Rig and turn on Smart Stretch. You should see Rest length, Minimum (0%), Maximum (1000%) and Width (Keep width).
- Check it with Test rig: Ctrl-drag the joint shorter and longer and look at the details at both ends.
- Click Done, then Update figure (or Import as new figure to keep the old design).
Every part already attached below the driver follows it, and parts you add later follow too. Smart Stretch belongs to the figure’s design, so all copies share it; the length you pose on a frame belongs to that copy and that frame.
Rest length and limits
Rest length is what counts as 100%, in pixels. With a rest length of 100 px, posing the driver at 50 px is a 50% stretch, at 150 px a 150% stretch. Changing Rest length does not move anything by itself: it changes how the same pose is read.
| Setting | What it does | Example |
|---|---|---|
| Minimum | The smallest stretch allowed, 0% to 10000%. At 100% the driver never gets shorter than its rest length. | 50% for a spring that keeps at least half its length. |
| Maximum | The largest stretch allowed, 1% to 10000%. It can’t be lower than Minimum. | 200% for a telescope that opens to twice its size. |
| Rest length | The 100% length, separate from the length you pose. | Keep the undeformed size here while you animate squash and stretch. |
On an ordinary bone, the limits stop its length. On a connector, the anchors always win: the limits only cap how much the attached parts stretch.
Width while stretching
- Keep width: lines keep their thickness. Good for rods and rails.
- Thicken on compression: half the length gives twice the width, twice the length half the width. That is cartoon squash and stretch.
- Scale with length: half the length, half the width.
Width is set on the driver and also applies to the parts that stretch with it. Rigid or stopped parts keep their width.
Choose each part’s response
Select an attached part. Its Rig section has a Stretch response:
| Stretch response | This part | Parts below it |
|---|---|---|
| Stretch | Stretches along the driver’s direction. Its side-to-side size stays the same. | Keep stretching. |
| Keep rigid · pass through | Keeps its size and angle. | Still stretch. Good for a rigid ring between two springy sections. |
| Stop at this joint | Is not stretched by this driver. | Not stretched either: the stretch stops here. |
Multiplier (with Stretch) says how strongly the part follows: 1 follows the driver, 0 not at all, 2 twice as much, −1 the opposite way (squash the driver and this part grows). It goes from −10 to 10.
Reset impulse here makes the stretch go along this part’s own direction from here on, instead of the driver’s. Use it after a bend, when the next section should stretch its own way.
Smart Stretch stretches along the driver’s direction only. A part at 45° gets longer along that direction but not across it, so its angle changes. Turn on Reset impulse here on that part if it should stretch along itself.
Which driver a part follows
The Attachment section of a part shows its Stretch driver. Use its pick button to choose another Smart Stretch joint of the same figure. Orientation chooses between Follow connector and Keep authored angle for parts attached to a connector. A part with its own driver starts a new stretch of its own.
Older figures can show an Include new parts switch on the driver. Turn it on so new parts follow automatically.
Drive a stretch with a connector
A connector’s Smart Stretch has one more setting, Driven by: Anchor distance, Slide position or Distance × slide. The slide modes also show Rest slide. Then moving the slider stretches the attached parts without moving the anchors. See connector stretch.
Troubleshooting and limits
The control turns but does not stretch.
Hold Ctrl while you drag (or turn on Hold Ctrl on a touch screen). Or type a Length in Properties.
The next part stretches even though this one is rigid.
That is what Keep rigid · pass through does. Choose Stop at this joint to protect the whole branch.
A new part does not follow.
Check Include new parts on an older driver, the part’s Stretch response, and its Attachment → Stretch driver.
I can’t grab a fully squashed part.
Stretch the driver open first. A part squashed to nothing has no direction to drag.
The app refuses a driver.
The rule would depend on itself, point to a joint that isn’t there, or clash with IK on a joint the rig controls. Turn that IK off, or choose a driver outside the branch.
How do I remove Smart Stretch?
Turn its switch off on the driver. Undo brings it back.
Does Pivot keep it?
No. Save as .styk (projects) or .stkz (figures) to keep the rule, or export the result as video, images or SVG.
Related
Still stuck?
Ask the community, or tell us what’s missing from the docs.