Particles node
Rope
One elastic cable — or an entire bundle of them. Placed inside a Rope System, the Rope node pins a cable between a start and an end anchor, or spawns one cable per point from a whole point array (straight from Vision tracking, a Points generator, or any structure). Cables hang, swing, stretch, tear and render as smooth, gradient-colored capsule strands.
Inputs
| Port | Type | Default |
|---|---|---|
| EnableOff removes these cables from the simulation entirely — they stop being drawn and stop being solved. | bool | true |
| Start PointsConnect a point cloud to spawn one cable per point; the Start X, Y and Z knobs are only used when nothing is connected. At most 256 points per node are taken. | structure | — |
| Start XPinned start of the cable, in Grafit units. Ignored when a Start Points cloud is connected. Not clamped. | float | -0.5 |
| Start YVertical position of the pinned start, in Grafit units. Ignored when Start Points is connected. | float | 0.4 |
| Start ZDepth of the pinned start; positive is toward the camera. Ignored when Start Points is connected. | float | 0 |
| Attach EndPins the far end as well. Off lets the cable hang from the start point or fly free. | bool | true |
| End PointsWhere the far ends attach, cycled by index — a single point makes every cable converge on it, equal counts pair them one to one. | structure | — |
| End XPinned end of the cable, in Grafit units. Used only when Attach End is on and no End Points cloud is connected. | float | 0.5 |
| End YVertical position of the pinned end. Used only when Attach End is on and End Points is empty. | float | 0.4 |
| End ZDepth of the pinned end. Used only when Attach End is on and End Points is empty. | float | 0 |
| SegmentsHow many links the cable is built from — more looks smoother and costs more. Clamped to 1…63. | int | 24 |
| Auto LengthRest length follows the distance between the two pins multiplied by Slack. Off uses the Length value instead. Only matters when the end is attached. | bool | true |
| LengthRest length of the cable in Grafit units, used when Auto Length is off or the end hangs free. Values under 0.01 are lifted to 0.01. | float | 1.0 |
| SlackHow much longer than the pin distance the cable hangs — 1 is dead taut, 1.15 a light droop, 2 a deep loop. Values under 0.1 are lifted. | float | 1.15 |
| Length VariabilitySpreads the cable lengths randomly around the base — 0.5 gives roughly half to one and a half. Clamped to 0…1, and the same Seed always reproduces the same spread. | float | 0 |
| StretchElasticity of the cable: 0 is a steel wire, 1 is a rubber band. Clamped to 0…1. | float | 0.0 |
| Bend StiffnessResistance to bending — 0 is a floppy chain, 1 an almost rigid rod. Clamped to 0…1. | float | 0.3 |
| DampingHow quickly motion bleeds away. Clamped to 0…1; near 0 the cable swings for ages, above about 0.2 it moves as if through honey. | float | 0.03 |
| Gravity ScalePer-cable multiplier for every force node in the system. Not clamped; 0 makes these cables weightless and negatives make them fall the other way. | float | 1.0 |
| SeedRandom seed behind the length, thickness and drape variation. Any whole number works, and each cable offsets from it, so the same seed always gives the same look. | int | 0 |
| Tear EnableLets the attached end snap loose when the two pins are pulled too far apart. | bool | false |
| Tear DistancePin separation at which the end lets go, in Grafit units. Values under 0.05 are lifted; only used with Tear Enable on. | float | 1.5 |
| Start ThicknessLine width at the start of the cable, in Grafit units, tapering toward End Thickness. Values under 0.0005 are lifted. | float | 0.008 |
| End ThicknessLine width at the far end, in Grafit units. Values under 0.0005 are lifted; set it apart from Start Thickness for a tapered cable. | float | 0.008 |
| Thickness VariabilityRandomly varies the width from cable to cable. Clamped to 0…1 and driven by Seed, so it stays the same between runs. | float | 0 |
| ColorBase colour and opacity of the cable, used whenever no Gradient is connected. | color | — |
| GradientConnect a Gradient node to colour each cable along its length; the first 16 stops are used. With nothing connected, Color applies. | structure | — |
Outputs
| Port | Type |
|---|---|
| Configs | structure |
How It Works
The Rope node does not simulate anything itself — it describes cables. Every frame it emits a Configs structure that the parent Rope System consumes and feeds to the shared GPU XPBD solver. That is why a Rope node only works inside a Rope System container.
Anchors. The start is always pinned: either at the single Start X/Y/Z position or, when a cable is connected to Start Points, at every point of the array — one cable per point, up to 256 cables per Rope node (the system caps at 1024 total). The end behaves the same way through Attach End, End X/Y/Z and End Points, with one twist: the End array cycles by index. Equal counts pair i→i; a single End point makes every cable converge on it — an instant maypole.
Cable identity is slot-stable. Each cable's identity is its point index, so when a point array grows or shrinks, surviving cables keep their physics state — nothing restarts or pops.
Length. With Auto Length on, the rest length is the pin distance × Slack — cables automatically fit whatever they span, with a controllable droop. With it off, Length is the explicit rest length in Grafit units. Length Variability adds a seeded per-cable variation (0.5 on a 1.0 cable spreads lengths across 0.5…1.5) — deterministic, so the same Seed produces the same bundle forever. Length changes are live and never reset the simulation.
Material. Stretch is XPBD compliance: 0 is a steel cable, 1 a rubber band. Bend Stiffness resists folding. Damping is honest internal material damping — it calms swing without freezing uniform motion. Gravity Scale multiplies this cable's response to all force nodes in the system (0 = weightless).
Tearing. With Tear Enable on, a cable whose two pins separate beyond Tear Distance snaps its end free. The torn state is sticky — a torn cable stays torn — and is re-armed only by toggling Attach End off and on again. Every tear fires the parent system's one-frame Torn pulse.
Appearance. Thickness blends linearly from Start Thickness to End Thickness along each cable; Thickness Variability adds an independent seeded per-cable variation. Color sets a flat color; connecting a Gradient (up to 16 stops, e.g. from the Gradient node) colors along the rope. Rendering is Catmull-Rom smoothed instanced capsules.
Parameters in Depth
| Port | Type | Default | Meaning |
|---|---|---|---|
Enable | Bool | true | Includes or excludes this Rope's cables from the simulation. |
Start Points | Structure | — | Point array: one cable per point (max 256 per node). Only used when a cable is actually connected. |
Start X / Start Y / Start Z | Float | −0.5 / 0.4 / 0 | Single start anchor in Grafit units, used when Start Points is unconnected. |
Attach End | Bool | true | On: the end is pinned. Off: cables hang or fly free. Toggling off also re-arms torn cables. |
End Points | Structure | — | Endpoint array, cycled by index (one point = all cables converge on it). |
End X / End Y / End Z | Float | 0.5 / 0.4 / 0 | Single end anchor, used when End Points is unconnected. |
Segments | Int | 24 | Simulation segments per cable, clamped 1–63. More segments = smoother drape, more solver work. |
Auto Length | Bool | true | Rest length = pin distance × Slack. Off: Length is used directly. |
Length | Float | 1.0 | Explicit rest length in Grafit units (min 0.01), when Auto Length is off. |
Slack | Float | 1.15 | Auto-length multiplier (min 0.1). 1.0 = taut, higher = deeper droop. |
Length Variability | Float | 0 | 0–1: seeded per-cable ± fraction of length. Same Seed = same bundle. |
Stretch | Float | 0.0 | 0–1 elasticity: 0 = steel cable, 1 = rubber band (XPBD compliance). |
Bend Stiffness | Float | 0.3 | 0–1 resistance to folding; higher = wire-like, lower = thread-like. |
Damping | Float | 0.03 | 0–1 internal material damping — calms swing without freezing motion. |
Gravity Scale | Float | 1.0 | Per-cable multiplier on the summed force-field acceleration. 0 = weightless. |
Seed | Int | 0 | Base seed for drape jitter and both variability streams. Each cable derives its own seed from it. |
Tear Enable | Bool | false | Allows cables to snap when overstretched. |
Tear Distance | Float | 1.5 | Pin separation (Grafit units, min 0.05) beyond which the end tears loose. |
Start Thickness | Float | 0.008 | Cable radius at the start, Grafit units (min 0.0005). |
End Thickness | Float | 0.008 | Cable radius at the end; thickness blends linearly between the two. |
Thickness Variability | Float | 0 | 0–1: seeded per-cable ± thickness fraction, independent of the length stream. |
Color | Color | white | Flat cable color (RGBA). |
Gradient | Structure | — | Along-rope gradient (up to 16 stops); overrides Color when connected. |
Output: Configs (structure) — consumed by the parent Rope System; you never wire it manually.
Use Cases
- A hanging banner edge — one Rope with default anchors: a single cable drooping between two pins; animate
Start Xwith an LFO for a gentle sway. - Cable-per-fingertip — Vision hand tips → Landmarks to Points → system boundary →
Start Points: ten cables ride the hands; leaveAttach Endoff so they trail freely. - Maypole ribbons — Geometry to Points (circle) →
Start Points, singleEnd X/Yat the center top,Slack1.3: all ribbons converge; rotate the circle for winding. - Organic bundle — one Rope, a short row of Start points,
Length Variability0.4 +Thickness Variability0.5 + a warmGradient: a bundle of unequal, individually-weighted strands from a single node. - Breakable web —
Tear Enableon,Tear Distancejust above the pin distance, ends matched by Find Nearest Endpoint: cables that grab points and audibly snap when pulled — wire the system'sTornpulse to a sound or flash.
Tips
Start Points/End Points/Gradientrespond only to a really connected cable — a value merely sitting in the port default is ignored, so disconnecting cleanly reverts to the single-anchor ports.- Determinism is per-cable: each cable's seed is derived from
Seedplus its index, and length/thickness variability use independent streams — changing one never reshuffles the other. - Torn is sticky by design: after a tear, pulling the pins back together does nothing. Toggle
Attach Endoff → on (by hand or with a Bool cable) to re-arm the cable. - Keep
Segmentsproportional to length: 24 is right for a screen-crossing cable; short ropes look identical with 12 and cost half. Stretchabove ~0.5 combined withTear Enablemakes tears feel rubbery and late — for crisp snaps keepStretchlow and letTear Distancedo the work.- Very small
Slack(near 1.0) makes taut cables — that is exactly the regime the solver's long-range attachment constraints are built for, so don't fear it: taut cables stay calm.
Open Rope in the interactive catalog →
Rope is one of 381 nodes in Grafit Pro.
Free download. Every feature for 7 days, no card. Then €99.99 once — or keep playing your projects as a Player.