Points node
Path
Draws a real curve THROUGH a point cloud — the node that turns points into a line you can hand on. It walks the cloud by any of fourteen orderings (index, sweeps, depth, spiral, zig-zag, nearest neighbour, Hilbert, random — the same routes Lines Visualize draws with), then interpolates a smooth curve rather than a polyline. Its Start and End outputs carry the anchor AND the heading, and its Start and End inputs accept the same, so ONE cable joins Path to Path: the next curve leaves exactly where this one arrived, travelling the way it was travelling. Each link still rebuilds on its own, so changing anything mid-chain just reflows the rest. Start Direction and End Direction take a heading on its own cable when you would rather aim the curve than join it.
Inputs
| Port | Type | Default |
|---|---|---|
| PointsThe cloud to walk. Anything: a Curve, a scatter, a tracker’s features, a particle snapshot. This node decides the ROUTE through them and hands the result on as a curve. | structure | — |
| Order ModeWhich route to take through the cloud — index, directional sweeps, depth, centre-out, angle, spiral, zig-zag scanlines, a greedy nearest-neighbour walk, Hilbert order or a seeded shuffle. The same list Lines Visualize draws with, from the same place, so the line you SEE and the path you sweep take the same route. | int | 0 |
| CurveStraight keeps the walk as it is, corner for corner. Smooth Curve interpolates a real curve that passes THROUGH every point — not near them. | int | 1 |
| Curve DetailSubdivisions per segment in Smooth mode. More is a finer curve and more points downstream; the shape stops changing long before the count does. | int | 8 |
| SmoothingRounds the corners of the walk BEFORE it is curved, by averaging each point with its neighbours. Different from Curve: this moves the points, that interpolates between them. Open ends stay pinned. | float | 0 |
| ClosedJoins the last point back to the first, so the curve is a loop with no corner at the seam. It is reported on the Closed output too, ready to cable into Sweep. | bool | false |
| StartWhere this path begins, and optionally which way it is heading there. Cable another Path’s End straight in and the two become one continuous run: this one leaves where that one arrived, travelling the way it was travelling. One point sets the position; two set the heading too, which is what an End output already is. | structure | — |
| EndWhere this path finishes, same bundle as Start. Use it to aim a chain at a target: the curve will arrive there going the way you asked. | structure | — |
| Start DirectionThe heading to leave in, on its own cable — for when you want to AIM the curve rather than join it. It overrides whatever a Start bundle carried, and works with no bundle at all: the curve still begins on its own first point and only its departure is aimed. Any vector will do: a Distance direction, a normal, a hand. | structure | — |
| End DirectionThe heading to arrive in. Aims the far end the same way Start Direction aims the near one, which is what lets a chain be pointed at something rather than merely stopped. | structure | — |
| TensionHow strongly a supplied heading steers the curve away from its ends. 0 ignores the heading and lets the neighbouring points decide; 1 follows it naturally; higher pulls the curve out along the heading before it turns — longer, lazier joins. | float | 1 |
| ResampleRewalks the finished curve at a constant spacing and returns exactly this many points. 0 leaves it alone. Worth turning on before a Sweep: a curve sampled per segment is densest where the original points were, which shows as rings bunching. | int | 0 |
| SeedReplays the Random ordering exactly. Only used by that one mode. | int | 0 |
Outputs
| Port | Type |
|---|---|
| Path | structure |
| StartWhere this path begins, and optionally which way it is heading there. Cable another Path’s End straight in and the two become one continuous run: this one leaves where that one arrived, travelling the way it was travelling. One point sets the position; two set the heading too, which is what an End output already is. | structure |
| EndWhere this path finishes, same bundle as Start. Use it to aim a chain at a target: the curve will arrive there going the way you asked. | structure |
| Start DirectionThe heading to leave in, on its own cable — for when you want to AIM the curve rather than join it. It overrides whatever a Start bundle carried, and works with no bundle at all: the curve still begins on its own first point and only its departure is aimed. Any vector will do: a Distance direction, a normal, a hand. | structure |
| End DirectionThe heading to arrive in. Aims the far end the same way Start Direction aims the near one, which is what lets a chain be pointed at something rather than merely stopped. | structure |
| Count | int |
| ClosedJoins the last point back to the first, so the curve is a loop with no corner at the seam. It is reported on the Closed output too, ready to cable into Sweep. | bool |
| Length | float |
How It Works
Path draws a real curve through a point cloud — it is the node that turns a bag of points into a line you can hand on. First it orders the cloud by one of fourteen routes (index, sweeps, depth, spiral, zig-zag, nearest neighbour, Hilbert, random — the same routes Lines Visualize draws with), then it interpolates a smooth curve through the ordered points rather than connecting them with straight segments.
The chaining is what makes it a family. Start and End outputs carry the anchor and the heading, and the Start and End inputs accept the same, so one cable joins Path to Path: the next curve leaves exactly where this one arrived, travelling the way it was travelling. Each link still rebuilds on its own, so changing something mid-chain simply reflows the rest. Start Direction and End Direction take a heading on its own cable when you would rather aim the curve than join it.
Smoothing and Tension shape the interpolation, Closed joins the ends, Resample re-spaces the result to a fixed count, and Seed makes the random ordering repeatable.
Use Cases
- Route a scatter into a line — Nearest-neighbour ordering turns a random cloud into a single continuous stroke.
- A spine from real data — Order a tracked point cloud, smooth it, and sweep a profile along the result.
- Multi-segment shapes — Chain three Paths and you have a route with three distinct characters that still reads as one continuous curve.
- Ordered input for Scope Voice — Oscilloscope music needs an ordered path; Path is how an unordered cloud becomes one.
- Drawing hand-made outlines — Points placed by hand, ordered by index, smoothed into a curve.
Tips
- Ordering matters more than smoothing: a bad route makes a tangle that no amount of tension will fix. Try Nearest Neighbour first on scattered data.
- Hilbert ordering fills an area without long jumps — good for dense clouds you want to draw as one stroke.
- Resample after ordering when downstream needs evenly spaced samples (Sweep and Scope Voice both like that).
- Closed turns a route into a loop; combine with Extrude Path or Triangulate for a solid.
- Feed Curve into Path when you want a generated shape re-ordered or re-sampled before use.
Open Path in the interactive catalog →
Path 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.