Generator node

Lines Visualize

Draws one continuous GPU line through any point structure -- routed by index, direction, depth, spiral, zig-zag, nearest-neighbor chain, Hilbert curve or random. Straight or smooth (Catmull-Rom), dash patterns, taper, additive glow; parallel fiber copies with turbulence offsets; kaleidoscope mirroring; animatable draw window whose live endpoints are exposed as Start/End Point outputs. Cable a Color Analysis' Colors structure straight in and the node draws ONE LINE PER COLOR -- each group's blob outline in its own base+subtone gradient, every parameter applying to all lines with per-line variance.

Inputs

PortTypeDefault
PointsThe point cloud the line is threaded through — any points structure. Cable a Color Analysis Colors structure instead and you get one line per colour group.structure—
EnableOff clears the output to transparent.booltrue
Order ModeThe route the line takes through the points: index order, left to right, spiral, zig-zag, nearest neighbour, Hilbert curve, random and more. Unlisted values fall back to index order.int0
Closed LoopJoins the last point back to the first, so the stroke becomes an outline instead of an open path.boolfalse
Break DistanceAny gap longer than this ends the line and starts a new one, so distant clusters are no longer hauled together. At least 0, where 0 never breaks; in Grafit units.float0
Line TypeStraight connects the points with segments, Smooth Curve rounds through them. Anything outside the two draws straight.int0
Curve DetailHow many sub-steps each curved segment is drawn with. Clamped to 2…16, and only used with Smooth Curve; higher is smoother and slower.int8
SmoothingRounds the corners by averaging neighbouring points. Clamped to 0…1, which is up to eight rounding passes — at 1 the shape visibly shrinks inward.float0
WidthStroke thickness in Grafit units. At least 0.0002; about 0.002…0.03 covers hairline to bold.float0.008
Taper ModeWhere the stroke thins out: nowhere, at both ends, at the start or at the end. Unlisted values draw no taper.int0
TaperHow strong the thinning is. Clamped to 0…1, where 1 tapers to a point.float0.5
SoftnessBlurs the stroke edges into a glow-like haze. Clamped to 0…1; 0 is a crisp line.float0
OpacityFades the whole drawing. Clamped to 0…1.float1
AdditiveBlends the line by adding light instead of covering, so crossings burn brighter. Good for neon and trails, and it never darkens what is behind.boolfalse
ColorThe stroke colour used in Single Color mode.color(1, 1, 1, 1)
GradientCable a Gradient node here to colour the line. It is used by every Color Mode except Single Color; with nothing connected the plain Color is used.structure—
Color ModeHow the gradient is read: one solid colour, or along the path, per segment, per fibre, by depth, radially, or randomly. Unlisted values draw a single colour.int0
Color VarianceHow far each line or fibre drifts from its gradient colour, for a hand-drawn feel. Clamped to 0…1.float0
Dash LengthLength of each dash along the path. At least 0, and 0 draws a solid line.float0
Dash GapLength of the empty space between dashes. At least 0.001; small gaps read as a dotted line.float0.05
Dash PhaseSlides the dash pattern along the path. Not clamped; animate it to make the dashes crawl, negative values crawl backwards.float0
StartWhere the drawn part of the line begins, as a fraction of its length. Values wrap around, so animating it endlessly chases the stroke along the path.float0
LengthHow much of the line is drawn from Start onward. Clamped to 0…1, where 1 draws the whole path.float1
Length VarianceHow much each extra fibre's drawn length differs from the others. Clamped to 0…1.float0
Offset VarianceHow much each extra fibre's start point is shifted along the path. Clamped to 0…1.float0
FibersHow many parallel copies of the line are drawn, turning one stroke into a bundle. Clamped to 1…64.int1
SpacingSideways distance between fibres, in Grafit units. Not clamped; negative values simply stack them the other way.float0.01
Spacing VarianceHow unevenly the fibres are spaced, so the bundle stops looking machine-made. Clamped to 0…1.float0
Width VarianceHow much the fibres differ in thickness. Clamped to 0…1.float0
TurbulenceSideways noise wobble pushed into the fibres. At least 0; around 0.01…0.1 reads as hand-drawn, more turns the bundle into smoke.float0
Turbulence ZThe same wobble in depth, so the bundle also weaves toward and away from the viewer. At least 0.float0
Noise ScaleSize of the sideways wobble — small numbers make long lazy waves, big numbers a fine tremble. At least 0.01.float4
Noise Scale ZSize of the depth wobble. At least 0.01.float4
Noise SpeedHow fast the wobble evolves. Not clamped; 0 freezes the shape and negative values run it backwards.float0.2
Depth ShadingDarkens the parts of the line that sit further back, using the points' depth. Clamped to 0…2, where 0 is flat lighting.float0
KaleidoscopeRepeats the drawing around a circle. Clamped to 1…12, where 1 is a single copy.int1
MirrorAdds a mirrored twin to each kaleidoscope wedge for true reflection symmetry. Needs at least two copies to show.boolfalse
SeedFixes the random ordering, colour variance and fibre variation. Any whole number; the same seed always draws the same picture.int0

Outputs

PortType
Imageimage
WidthStroke thickness in Grafit units. At least 0.0002; about 0.002…0.03 covers hairline to bold.float
Heightfloat
Start Pointstructure
End Pointstructure
Countint

Live Preview

Interactive — One line, cycling routing algorithms

How It Works

Each frame the CPU flattens the Points input into 3D positions (arrays, [x, y, z] tuples, nested {x,y,z} structures or JSON all work), capped at 50,000 points (20,000 in Nearest Neighbor mode). It then orders them into a single path using the selected Order Mode, optionally relaxes corners (Smoothing runs up to 8 Laplacian neighbor-averaging passes; open-path endpoints stay pinned), and computes normalized cumulative arc length for every vertex. Ordering is deterministic for a given cloud, mode and Seed.

Everything after that is GPU: the path renders as instanced capsules — one quad per subsegment, with capsule distance fields giving round caps and joints for free. Total instances = segments × curve subdivisions × fibers × kaleidoscope copies, budget-capped at 4 million (fibers, then kaleidoscope copies are reduced first; the path itself is never cut). Coordinates are Grafit units (origin at viewport center, shorter edge maps to [-1, 1]); the output texture is premultiplied alpha. Enable = false (or fewer than 2 points) clears the texture. Width/Height report the viewport-fit size, Count the number of points used, and Start Point / End Point output the live 3D positions of the visible window's ends.

ValueOrder ModeRoute through the cloud
0IndexPoints in their incoming order
1Reverse IndexIncoming order, backwards
2Left → RightSorted by X
3Top → BottomSorted by Y descending
4DiagonalSorted by X + Y
5DepthSorted by Z
6Center → OutBy distance from the centroid, inside first
7Out → CenterSame, rim first
8Angle SweepBy polar angle around the centroid — one radar rotation
9SpiralAngle + radius combined — 3 turns from center to rim
10Zig-ZagSerpentine scanlines: rows by Y, alternating direction
11Nearest NeighborGreedy chain from the leftmost point — organic connect-the-dots
12Hilbert CurveSpace-filling order (1024×1024 quantization) — locality-preserving, beautiful on dense clouds
13RandomSeeded shuffle

Line Type 0 = Straight segments; 1 = Smooth Curve, a Catmull-Rom spline evaluated at Curve Detail (2–16) subdivisions per segment. A single shared path evaluator produces continuous positions and tangents across joints, so offset fibers never tear at segment boundaries.

Draw window: Start (wrapping 0–1) and Length (0–1) select the visible slice of the path by arc length; animate Start and the line travels its own route. Fibers (1–64) renders parallel copies offset along the path's normals by Spacing, with optional fbm turbulence displacement in XY (Turbulence, Noise Scale, Noise Speed) and in Z (Turbulence Z, Noise Scale Z) — Depth Shading (0–2) then brightens +Z / darkens −Z parts for a lit-bundle look. Kaleidoscope (1–12) rotates whole copies of the result around the cloud centroid; Mirror flips every odd copy for true mirror symmetry.

ValueTaper ModeWidth profile over the visible window
0NoneConstant width
1Both EndsSine bulge — thin at both ends
2Thin StartGrows from zero to full
3Thin EndFull to zero

Taper (0–1) blends between constant width and the selected profile.

ValueColor ModeGradient parameter
0Single Color— (uses Color)
1Gradient: Along PathPosition across the visible window
2Gradient: SegmentSegment index along the path
3Gradient: FiberFiber index across the bundle
4Gradient: DepthZ position (including Z turbulence)
5Gradient: RadialDistance from the cloud center
6Gradient: RandomPer-segment/fiber hash

Dashes are measured in real arc length: the pattern repeats every Dash Length + Dash Gap Grafit units, shifted by Dash Phase — animate the phase for marching-ants motion.

Parameters in Depth

Path & shape

PortDefaultMeaning
Points—Point structure to route through
EnabletrueOff clears the output texture
Order Mode0Routing algorithm 0–13 (table above)
Closed LoopfalseConnects last point back to first; smoothing and splines wrap
Line Type00 = Straight, 1 = Smooth Curve (Catmull-Rom)
Curve Detail8Spline subdivisions per segment, 2–16 (Smooth Curve only)
Smoothing00–1; corner-rounding passes (Laplacian), up to 8
Width0.008Line thickness in Grafit units
Taper Mode00–3 (table above)
Taper0.50–1 blend toward the taper profile
Softness00–1; feathered edges instead of the global AA edge
Opacity1Global opacity 0–1
AdditivefalseAdditive blending — crossings glow

Color

PortDefaultMeaning
Color(1, 1, 1, 1)Flat line color (Single Color mode)
Gradient—Gradient stops for Color Modes 1–6 (up to 16 stops)
Color Mode00–6 (table above)
Color Variance00–1; per-fiber random hue rotation up to ±360°

Dashes & draw window

PortDefaultMeaning
Dash Length0Dash length in Grafit units of arc; 0 = solid line
Dash Gap0.05Gap between dashes
Dash Phase0Pattern offset — animate for motion
Start0Window start along the path (0–1, wraps)
Length1Visible fraction of the path (0–1)
Length Variance00–1; per-fiber shortened ends — brush-like tips instead of a razor cut
Offset Variance00–1; per-fiber start-phase shift — fibers travel out of step

Fibers & turbulence

PortDefaultMeaning
Fibers1Parallel copies of the path, 1–64
Spacing0.01Perpendicular distance between fibers (Grafit units)
Spacing Variance00–1; per-fiber offset jitter — organic bundle instead of a comb
Width Variance00–1; per-fiber thickness jitter (×0.1–×2)
Turbulence0fbm displacement amplitude along the normals
Turbulence Z0Independent fbm displacement in depth
Noise Scale4Spatial frequency of XY turbulence along the arc
Noise Scale Z4Spatial frequency of Z turbulence
Noise Speed0.2Turbulence animation speed (time-driven)
Depth Shading00–2; +Z brightens, −Z darkens (uses the cloud's own Z range)

Symmetry & determinism

PortDefaultMeaning
Kaleidoscope1Rotational copies around the cloud center, 1–12
MirrorfalseMirrors every odd kaleidoscope copy
Seed0Seeds Random order, shuffle and every per-fiber hash

Use Cases

  • One-line drawing: Geometry to Points → Lines Visualize (Order Mode = Nearest Neighbor) → Canvas — the cloud becomes a single meandering stroke; add Smoothing for a hand-drawn feel.
  • Self-drawing animation: LFO or Time → Length (with Taper Mode = Thin End) — the line draws itself along a Hilbert or Spiral route; read End Point into a Circle generator's position so a "pen" rides the tip.
  • Muscle-fiber / rope bundles: Point Animation → Lines Visualize with Fibers = 20, small Spacing, Turbulence, Spacing Variance and Width Variance up, Color Mode = Gradient: Fiber → Canvas.
  • Instant mandalas: any small cloud → Order Mode = Angle Sweep, Closed Loop on, Kaleidoscope = 8, Mirror on, Additive on — rotating the source cloud spins the whole mandala.
  • Neon signage / marching ants: Dash Length + animated Dash Phase on a smooth closed loop, Additive with a strong color.
  • 3D undulating streams: Turbulence Z with Depth Shading = 1.5 — fibers weave in depth and shade themselves light/dark as they pass front/behind.

Tips

  • Generators are invisible on their own — route Image into a Canvas node to see the result.
  • The Start Point / End Point outputs are the current visible window endpoints, updated live — perfect for attaching generative objects (a glow sprite at the pen tip) that follow the animated line.
  • Nearest Neighbor is the most expensive ordering (greedy search, capped at 20,000 points); Hilbert Curve gives a similar organic locality at much lower cost on dense clouds.
  • The instance budget is 4,000,000 capsules; if segments × Curve Detail × Fibers × Kaleidoscope exceeds it, fibers and then kaleidoscope copies are silently reduced — lower Curve Detail on huge clouds to keep your multipliers.
  • All variance and turbulence is deterministic in (Seed, time): the same patch replays identically, and changing Seed re-rolls the whole bundle at once.
  • Softness replaces the global AA edge with a wide feather scaled by line width — combine with Additive for laser-glow cores.
  • Companion nodes: Points Visualize draws the same clouds as dots; Point Animation, Point Morph and Point Trail upstream make the path move.

Open Lines Visualize in the interactive catalog →

Lines Visualize 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.

More Generator nodes