Points node

Point Morph

Morphs between two point clouds — even when they have different point counts or dimensions (2D and 3D mix freely). A single Morph value from 0 to 1 carries every point from cloud A to cloud B, and a Transition style decides where the change sweeps through space first: a directional wipe, a radial bloom, an angular sweep, a random dissolve, or organic noise. The output is a normal point cloud, ready for Points Visualize, Plexus, or any other Points consumer.

Inputs

PortTypeDefault
Points AThe starting cloud. If it is empty the B cloud is used for both ends, so the morph degrades quietly instead of vanishing.structure—
Points BThe destination cloud. Point counts and 2D/3D mixes are fine — both sides resample to a common size.structure—
TransitionThe pattern the change sweeps in: Crossfade, Left → Right, Radial, Angular, Z-Depth, Random dissolve, Noise and more. Values outside the list act as Crossfade.int0
MorphThe position of the transition, 0 showing A and 1 showing B. Clamped to 0…1.float0
SpreadSoftness of the moving front — near 0 is a hard wipe, 1 is a uniform crossfade. Clamped to 0.001…1 and unused by the Crossfade style.float0.4
Noise ScaleSize of the blobs in the Noise transition — small values give large organic patches, large values a speckled dissolve. Never drops below 0.01.float1.0
SeedFixes the shuffle of the Random transition, so the same number always dissolves the same way. Any whole number works.int0
CountHow many points the result has. 0 takes the larger of the two clouds automatically; otherwise it is used as given, at least 1 and never above 50000.int0

Outputs

PortType
Pointsstructure
CountHow many points the result has. 0 takes the larger of the two clouds automatically; otherwise it is used as given, at least 1 and never above 50000.int

Live Preview

Interactive — Point-to-point morphing between clouds

How It Works

Resampling. Both clouds are resampled (nearest-index up/down sampling) to a common size M — by default max(count A, count B), or an explicit Count. A 2D cloud is treated as 3D with z = 0, so morphing a flat shape into a 3D one smoothly lifts points out of the plane. If one input is empty it mirrors the other, so the morph degrades gracefully instead of collapsing.

Pairing. For every style except Crossfade, each point receives a spatial key, and both clouds are sorted by that key. Points at the same sorted rank pair up — left-most pairs with left-most, inner-most with inner-most — and the rank becomes the point's phase in the transition.

TransitionValueSpatial keyFeel
Crossfade0none (index-paired)Everything blends uniformly at once
Left → Right1xWipe from the left edge
Right → Left2−xWipe from the right edge
Bottom → Up3yRising wipe
Top → Down4−yFalling wipe
Radial Out5distance from centroidBlooms from the center outward
Radial In6−distance from centroidCollapses from the rim inward
Angular7angle around centroidClock-hand sweep
Z-Depth8zFront-to-back in depth
Random9deterministic hash of Seed + indexPixel-dissolve scatter
Noise10Perlin noise at the point's position × Noise ScaleOrganic, patchy front

The moving front. The global Morph value drives a front across the phases: each point's local blend is clamp((Morph · (1 + Spread) − phase) / Spread, 0, 1), shaped by a smoothstep before interpolating A + (B − A) · s. Spread is the softness of that front — near 0 is a razor-sharp wipe, 1 approaches a uniform crossfade.

Temporal stability. The pairing (resample size and both sort permutations) is frozen while the morph is mid-transition and refreshed only at the endpoints (Morph ≈ 0 or ≈ 1, where re-pairing is invisible) or when the configuration changes (Transition, Seed, Noise Scale, or Count). Animated sources therefore travel along coherent A→B paths instead of re-pairing every frame — without this, rank swaps would teleport points mid-morph. Sorting is fully deterministic with spatial tie-breakers, so equal keys (e.g. resample duplicates) can never reorder between frames. The frozen pairing is volatile per-node state, rebuilt on demand.

The output ports are Points (the blended cloud, capped at 50,000 points) and Count.

Parameters in Depth

  • Points A (structure) — the source cloud, shown fully at Morph = 0. Accepts anything the point-cloud extractor understands (point arrays, landmark structures, nested x/y(/z) data). If empty, it mirrors Points B.
  • Points B (structure) — the target cloud, shown fully at Morph = 1. If empty, it mirrors Points A.
  • Transition (int, default 0) — the style dropdown (table above). Changing it mid-morph rebuilds the pairing immediately.
  • Morph (float, default 0, clamped 0–1) — the master blend. 0 = pure A, 1 = pure B. Drive it with an LFO, Smooth, a fader via MIDI Receiver — anything.
  • Spread (float, default 0.4, effective range 0.001–1) — softness of the transition front. Small values give a hard traveling edge where points visibly "flip"; large values overlap so much the wipe reads almost like a crossfade. Hidden in the inspector when Transition is Crossfade (a uniform blend has no front).
  • Noise Scale (float, default 1.0, minimum 0.01) — spatial frequency of the Noise style's Perlin field; higher values make smaller, busier patches. Only visible (and only used) with the Noise transition.
  • Seed (int, default 0) — reshuffles the Random style's dissolve order deterministically. Only visible with the Random transition. Changing it rebuilds the pairing.
  • Count (int, default 0) — explicit output point count; 0 means auto (max of the two input counts). The value is clamped to at most 50,000. While a morph is mid-transition, count changes are deliberately deferred until the next endpoint so the mapping cannot rebuild mid-flight.

Use Cases

  • Shape-to-shape ident: two Geometry to Points clouds (logo ring → star) → Point Morph (Radial Out) → Points Visualize, with an LFO easing Morph back and forth.
  • Person dissolves into geometry: Vision Tracking → Body Landmark → Landmarks to Points as Points A, Geometry to Points as Points B, Random transition — the performer scatters into an abstract form on cue.
  • Beat-driven snap: Audio Analysis level → Smooth → Morph, with a hard Spread (0.05) Left → Right wipe — the cloud flips shape on musical energy sweeps.
  • Morph inside a plexus: Point Morph → Plexus, so the connective mesh continuously re-knits while its underlying points travel between two constellations.
  • Depth reveal: a flat 2D grid as A and a 3D cloud as B with the Z-Depth transition — points lift out of the plane front-to-back as Morph rises.
  • Ghost trails on the journey: Point Morph → Point Trail → Points Visualize (Additive) — every traveling point drags an echo, making the A→B paths themselves visible.

Tips

  • The most cinematic zone is mid-Spread (0.2–0.5) with a directional or radial style: enough softness to feel fluid, enough front to read the sweep. Spread near 0.001 is intentionally a hard edge.
  • Because pairing freezes mid-transition, config changes (Transition, Seed, Count) are best made while Morph sits at 0 or 1 — that is exactly when the node rebuilds invisibly.
  • Very different point counts are fine: the smaller cloud's points are duplicated by resampling. Expect several output points to depart from one source location — Radial and Angular styles hide this best.
  • To chain more than two shapes, cascade nodes: Morph(A, B) → Points A of a second Point Morph with target C, and stagger the two Morph values.
  • Both clouds are re-read every frame, so A and B can themselves be animated (Point Animation, Landmarks to Points) — the frozen pairing keeps the crossing coherent while they move.
  • The 50,000-point output cap is a safety ceiling; if you are anywhere near it, thin the inputs with Point Density first — the renderer downstream will thank you.

Open Point Morph in the interactive catalog →

Point Morph 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 Points nodes