Particles node
Rope System
A GPU physics container that simulates real hanging, swinging, colliding and tearing cables. Double-click to dive inside and add Rope nodes for the cables themselves, force nodes (Rope Gravity, Rope Wind, Rope Turbulence, Rope Attract) to move them, Rope Collider surfaces for them to rest on, and a Find Nearest Endpoint matcher that lets cable ends grab and release moving points on their own. The container renders everything to a full-viewport texture and exports every simulated rope point for the rest of the patch to ride.
Inputs
| Port | Type | Default |
|---|---|---|
| EnableOff hides the whole cable system. Nothing is drawn while it is off. | bool | true |
| Position XShifts every cable horizontally, in Grafit units, after the physics is solved. Not clamped. | float | 0 |
| Position YShifts every cable vertically, in Grafit units, after the physics is solved. Not clamped. | float | 0 |
| Rotation XTilts the whole system around the horizontal axis, in degrees, positive clockwise. Any value works; it keeps turning. | float | 0 |
| Rotation YTurns the whole system around the vertical axis, in degrees. Any value works. | float | 0 |
| Rotation ZSpins the whole system in the screen plane, in degrees, positive clockwise. Any value works. | float | 0 |
| ScaleZooms the whole cable system. Values under 0.01 are lifted to 0.01, so it can never collapse to a point. | float | 1 |
| Camera DistancePerspective strength for the 3D depth of the cables. Negatives are lifted to 0, which is flat orthographic; 3 is the natural default, 10 and up is nearly flat. | float | 3 |
| CameraSee this system through a Camera node — the same lens a 3D Scene or Particle System fed the same camera uses, which is what keeps their pictures aligned. Unplugged, Camera Distance and the classic view work exactly as before. | structure | — |
| Time ScaleSpeed of the physics clock. Negatives are treated as 0, which freezes the cables; 1 is real time, and above about 3 the ropes start to whip. | float | 1 |
| External TimeDrives the simulation from your own clock in seconds instead of the wall clock — the step is the difference between frames. Anything below 0, including the default -1, keeps the internal clock. | float | -1 |
| QualitySolver effort: more iterations and more physics substeps per frame. Clamped to 0…2, where 0 is cheapest and springiest and 2 is the stiffest, steadiest cables. | int | 1 |
Outputs
| Port | Type |
|---|---|
| Image | image |
| Width | float |
| Height | float |
| Rope Count | int |
| Points | structure |
| Torn | bool |
How It Works
The Rope System is a container in the Particle System mold: the nodes you place inside it are never part of the global execution plan — the container schedules them itself every frame, collects their configuration outputs, and feeds a single GPU simulation. One Rope System equals one physics world; multiple Rope Systems each own an independent simulation with their own viewport gizmos.
The solver is XPBD (Extended Position-Based Dynamics) running entirely on the GPU: Verlet integration with distance and bend constraints, one compute threadgroup per rope. It follows the small-steps principle (Macklin et al. 2019) — many small substeps with few iterations converge far better than few substeps with many — using a fixed 1/480 s substep. Because the timestep never varies, the simulation is deterministic to the bit: equal inputs replay the identical simulation, every run. Seeded drape jitter breaks perfect symmetry, and the same seed drapes the same way forever.
Taut cables get special engineering: long-range attachment constraints deliver pin tension to the whole cable instantly, so a tight cable never develops mid-rope vibration; pin motion is interpolated across substeps; rendering uses a temporal blend between the last two solver states so uneven substep counts never read as shimmer; and an axial velocity filter kills longitudinal ringing while transverse swing stays free.
Forces stack. Every enabled force node inside the container contributes an acceleration that is summed per particle, per substep, on the GPU — up to 16 force nodes. Colliders are collected the same way, up to 64 collision primitives per system (a multi-point polyline collider contributes one primitive per segment). Cables are capped at 1024 per system. If several Find Nearest Endpoint nodes exist, the first one wins — one matcher per system.
Anything can drive the inside. The container boundary has a wildcard + input: connect any cable from outside (an LFO, audio energy, a Vision landmark cloud) and a correctly named Port node appears inside, ready to wire to any rope parameter.
The Points output closes the loop. All simulated cable particles are exported through exactly the same transform the render applies (Scale, then Rotation X/Y/Z, then Position offset, then perspective), so downstream nodes — Plexus, Points Visualize, particle emitters, a Replicator — track the rendered strands with pixel accuracy. The export is decimated to at most 8192 points on very heavy systems.
Parameters in Depth
| Port | Type | Default | Meaning |
|---|---|---|---|
Enable | Bool | true | Master switch. Off clears the texture and pauses the simulation. |
Position X | Float | 0 | Horizontal offset of the whole rope world, in Grafit units. |
Position Y | Float | 0 | Vertical offset of the whole rope world, in Grafit units. |
Rotation X | Float | 0 | Rotation of the system around the X axis, degrees. |
Rotation Y | Float | 0 | Rotation around the Y axis, degrees. |
Rotation Z | Float | 0 | Rotation around the Z axis, degrees (positive = clockwise). |
Scale | Float | 1 | Uniform scale of the rope world (minimum 0.01). |
Camera Distance | Float | 3 | Perspective strength for 3D content: 0 = orthographic, 3 = default, 10+ = weak perspective. |
Time Scale | Float | 1 | Simulation speed multiplier. 0 freezes physics, 2 doubles it. Clamped to ≥ 0. |
External Time | Float | −1 | −1 uses the internal wall clock. Any value ≥ 0 makes that float the simulation clock — drive it with a Timer or a fader and the physics scrubs deterministically. |
Quality | Int | 1 | Solver tier 0–2. Constraint iterations 8 / 12 / 16 and per-frame substep cap 8 / 12 / 16. Higher = stiffer, more accurate cables at more GPU cost. |
Outputs: Image (the composited cable texture, full viewport), Width / Height (viewport-fit dimensions for the Canvas), Rope Count (number of enabled cables this frame), Points (structure — every simulated cable particle in screen-accurate coordinates), and Torn (a one-frame Bool pulse whenever any cable tears).
Use Cases
- Fingertip cables — Camera Input → Vision (Hands, Hand Tips Only) → Landmarks to Points → into the Rope System boundary → Rope
Start Points: one cable hangs from every fingertip and follows the hand in real time. - Audio-reactive curtain — a Rope with a
Start Pointsarray along the top edge, Audio FFT band energy → boundary+→ Rope WindStrength: the curtain gusts with the music. - Plexus riding the strands — Rope System
Points→ Plexus: a web of connection lines grows between the physical cables; add Point Animation in between for extra drift. - Maypole —
Start Pointsfrom a circle of points (Geometry to Points), a single staticEnd X/Yon the Rope: every cable converges on one point; rotate the start circle and the ribbons wind. - Tear-triggered events —
Torn→ Counter / Do Once → flash a Rectangle through a Canvas, or fire a MIDI Sender note the instant any cable snaps. - Slow-motion replay — drive
External Timefrom a Timer node through a Math multiply: scrub the same deterministic simulation backward and forward like a video.
Tips
- The simulation is deterministic per seed and per input stream: identical Seeds, forces and pin motion always replay the same drape and swing. Change a Rope's
Seedto get a different but equally repeatable variation. - With no force nodes inside, cables keep momentum only — "space cables". Add a Rope Gravity node for normal weight; it is not built in.
Qualityis the first knob when taut cables look soft or heavily loaded systems sag through colliders — tier 2 nearly doubles solver work over tier 0.- The
Pointsoutput is already in final screen space (perspective applied, Z flattened to 0) — feed it straight to 2D consumers without re-projecting. - Live topology changes are slot-stable: changing the number of points in a
Start Pointsarray rebuilds only the affected cables, and surviving cables keep their physics state — nothing pops or restarts. - Gizmos (collider outlines, attractor rings, endpoint markers) are drawn per system, so several Rope Systems can coexist with their own overlays.
Open Rope System in the interactive catalog →
Rope System 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.