Points node

Geometry to Points

Geometry to Points is the primary producer of the composable point-cloud pipeline. It samples a 2D or 3D shape — square, circle, triangle, cube, sphere, torus, tube, pyramid, cylinder, cone and more — into a live point cloud, distributed on the shape's volume, surface, edges, or vertices. The result is a [SIMD3<Float>] array in Grafit units, emitted on the structure-typed Points output with zero serialization, ready to feed Plexus, Points Visualize, Point Animation, Point Morph, or any other point-cloud consumer.

Inputs

PortTypeDefault
GeometryThe mesh to sample — cable any Geometry output AND set Shape to “Geometry”. The cable alone does nothing: choosing the mode keeps a patch from switching source behind your back. Distribution still rules: Vertices takes the mesh’s own points, Surface scatters over its triangles by area, Edges walks the wireframe.structure—
ShapeWhich shape the points are sampled from — square, rectangle, circle, triangle, line, grid, ring, cube, sphere, torus, pyramid, cylinder, cone, plane or tube. Unknown numbers fall back to Square.int2
DistributionWhere on the shape the points land — through its Volume, on its Surface, along its Edges, or exactly on its Vertices. Unknown numbers fall back to Volume.int0
CountHow many points to sample. Clamped to 0…5000; ignored for Vertices, where the shape decides the count.int200
Size XHalf-width of the shape in Grafit units. Not clamped; negative mirrors the cloud, and 0 flattens it onto the axis.float0.8
Size YHalf-height of the shape in Grafit units. Not clamped; negative mirrors the cloud, and 0 flattens it onto the axis.float0.8
Size ZHalf-depth of the shape in Grafit units. Not clamped; it has no effect on the flat 2D shapes, which live on z = 0.float0.8
Inner RadiusThe size of the hole in a ring, torus or tube, as a fraction of the outer radius. Clamped to 0…0.98.float0.5
TaperTop radius of a cone or pyramid, as a fraction of the base. Clamped to 0…1, where 0 is a sharp point and 1 is a straight column.float0
SeedChanges the random scatter without changing the shape. Any whole number gives a different but repeatable cloud.int0
Rotate XRotates the cloud around the X axis, in degrees. Any value works; it just keeps turning.float0
Rotate YRotates the cloud around the Y axis, in degrees. Any value works; it just keeps turning.float0
Rotate ZRotates the cloud around the Z axis, in degrees. Any value works; it just keeps turning.float0
Position XMoves the whole cloud horizontally, in Grafit units, after rotation. Any value works.float0
Position YMoves the whole cloud vertically, in Grafit units, after rotation. Any value works.float0
Position ZMoves the whole cloud in depth, in Grafit units, after rotation. Any value works.float0

Outputs

PortType
Pointsstructure
Normalsstructure
CountHow many points to sample. Clamped to 0…5000; ignored for Vertices, where the shape decides the count.int

Live Preview

Interactive — Shapes sampled into clouds — Volume, Surface, Edges

How It Works

Every shape is generated in a normalized space (half-extent or outer radius = 1), then scaled non-uniformly by Size X / Size Y / Size Z, rotated (X → Y → Z, in degrees), and finally translated by Position X / Y / Z. With the default Size of 0.8, a shape spans roughly ±0.8 Grafit units — comfortably inside the [-1, 1] shortest-edge viewport range.

Sampling is fully deterministic: a seeded xorshift RNG means the same Shape, Distribution, Count, Seed, and parameters always produce the identical cloud, frame after frame. Nothing jitters unless you change an input.

Shapes

IndexShapeSpaceNotes
0Square2DUnit square in the XY plane
1Rectangle2DBuilt-in aspect: half-height 0.62 (reshape further with Size Y)
2Circle2DArea-uniform disc fill (default shape)
3Triangle2DEquilateral, apex up
4Line2DHorizontal segment from -1 to +1
5Grid2DRandom picks from an 8 × 8 lattice (points snap to grid crossings)
6Ring2DAnnulus; hole size via Inner Radius
7Cube3DUnit cube
8Sphere3DUniform sphere (volume, surface, or lat/long wireframe)
9Torus3DIn the XY plane, tube bulging into Z; hole via Inner Radius
10Pyramid3DBase at z = 0, top at z = 2 (normalized); Taper turns it into a frustum
11Cylinder3DRadius 1, height z ∈ [-1, 1]
12Cone3DBase radius 1 at z = -1, top radius = Taper at z = +1
13Plane3DIdentical to Square (flat quad, useful as a 3D floor once rotated)
14Tube3DHollow pipe: outer radius 1, inner wall = Inner Radius, z ∈ [-1, 1]

Distributions

IndexDistributionMeaning
0VolumePoints fill the shape's interior (area-uniform for discs, annuli, and solids)
1SurfacePoints sit on the shape's skin (sphere shell, cube faces, cylinder side + caps…)
2EdgesPoints trace the wireframe — square outlines, cube edges, torus tube rings, sphere lat/long lines, cylinder top/bottom rings
3VerticesExact corner sets, ignoring Count: square/plane and rectangle (4), triangle (3), line (2), cube (8), pyramid (5 with an apex, or 8 as a frustum)

Shapes without a natural corner set (circle, ring, grid, sphere, torus, cylinder, cone, tube) fall back to random sampling when Vertices is selected.

A few sampling details worth knowing:

  • Circle / Ring volume uses square-root radial sampling, so density is uniform by area — no clustering at the center.
  • Torus derives its geometry from Inner Radius: tube radius t = (1 - inner) / 2, major radius R = (1 + inner) / 2, so the outer extent is always exactly 1 before scaling. Edges mode quantizes the tube angle into 6 discrete rings running around the torus.
  • Sphere Edges draws a wireframe of 6 longitude lines and 5 latitude rings.
  • Pyramid and Cone interpolate their cross-section from base to top; Taper is the top radius (0 = sharp point, 1 = straight prism/cylinder).
  • Cylinder Surface distributes ~70% of points on the side wall and ~30% on the caps; Cone Surface puts ~80% on the slant.

After sampling, the transform runs in a fixed order: rotate around X, then Y, then Z (positive degrees = clockwise, per the Grafit convention), then translate. The rotation pivot is the shape's own origin.

Parameters in Depth

  • Shape (Int, default 2 = Circle) — selects the geometry from the table above. Saved projects store the raw index, so the list is append-only and stable.
  • Distribution (Int, default 0 = Volume) — Volume, Surface, Edges, or Vertices. For flat 2D shapes, Volume and Surface are equivalent (both fill the face); Edges gives the outline.
  • Count (Int, default 200) — number of sampled points, clamped to 0…5000. Hidden in the inspector when Distribution is Vertices, because the corner count is fixed by the shape.
  • Size X / Size Y / Size Z (Float, default 0.8 each) — non-uniform scale per axis, applied to the normalized shape. Size 1.0 means the shape reaches ±1 (full shortest-edge height). Size Z is hidden for flat 2D shapes (Square, Rectangle, Circle, Triangle, Line, Grid, Ring, Plane) since they live at z = 0. Stretch a Sphere with unequal sizes to get an ellipsoid, a Cube into a slab, a Circle into an ellipse.
  • Inner Radius (Float, default 0.5) — the hole, as a fraction of the outer radius (clamped 0…0.98). Only shown for Ring, Torus, and Tube. Small values make a fat donut / thick pipe; values near 1 make a thin band.
  • Taper (Float, default 0) — top radius as a fraction of the base (clamped 0…1). Only shown for Pyramid and Cone. 0 is a sharp apex; anything above 0 produces a truncated frustum (and, in Vertices mode, switches the pyramid from 5 corners to 8).
  • Seed (Int, default 0) — reseeds the deterministic RNG. Same seed, same cloud; change it to get a different (but equally stable) arrangement.
  • Rotate X / Rotate Y / Rotate Z (Float, default 0) — rotation in degrees, applied in X → Y → Z order around the origin. Rotate Z spins in the screen plane; Rotate X/Y tilt 3D shapes into perspective.
  • Position X / Position Y / Position Z (Float, default 0) — final translation in Grafit units. Position Z pushes the whole cloud toward (+) or away from (-) the camera for downstream 3D renderers.

The Points output carries the cloud; the Count output reports the actual emitted point count (useful for driving other parameters, or checking the fixed Vertices count).

Use Cases

  • Classic plexus constellation — Geometry to Points (Sphere, Surface) → Point Animation (Curl) → Plexus → Canvas. The staple network-of-lines look, breathing with divergence-free noise.
  • Wireframe 3D object — Geometry to Points (Cube or Torus, Edges) → Point Transform (animate Rotation Y with an LFO) → Points Visualize → Canvas. A spinning point-wireframe with zero geometry assets.
  • Shape morphing — two Geometry to Points nodes (e.g. Circle and Triangle, Edges) → Point Morph (drive Morph with an LFO or Audio FFT band) → Plexus → Canvas. Seamless dissolve between silhouettes.
  • Star field with structure — Geometry to Points (Grid) → Point Animation (Drift, small Amount) → Points Visualize (small Size, Additive) → Canvas. The 8 × 8 lattice keeps an underlying order while drift keeps it alive.
  • Composite scenes — Geometry to Points (Ring) + Geometry to Points (Line, rotated 90°) → Points Merge → Plexus → Canvas. Build compound figures from primitives, each placed with its own Rotate/Position before merging.
  • Audio-reactive geometry — Audio FFT → Math (remap a band to 0.4…1.2) → Geometry to Points Size X/Y → Points Visualize → Canvas. The shape pulses with the music while the point arrangement itself stays rock-stable thanks to the fixed Seed.

Tips

  • Count is capped at 5000. If you need a denser cloud, chain a Point Density node after it (Subdivide or Nearest) — its ceiling is 50 000.
  • Vertices mode is the cheapest possible cloud (2–8 points) and pairs beautifully with Plexus at large Max Distance: instant geometric line figures.
  • The pyramid's normalized height runs z = 0 to z = 2 (not centered) — use Position Z ≈ -0.8 (with default Size) or Point Transform with Center enabled to pivot it around its middle.
  • Sampling is deterministic per Seed, so animating Count grows/shrinks the cloud without reshuffling existing points — handy for reveal effects.
  • All parameters re-sample the cloud when changed, which is cheap at these counts, but the node is not time-based: for continuous motion use Point Animation downstream instead of animating Seed (which teleports every point).
  • Prefer transforming here (Rotate/Position inputs) when the node is the only source; reach for a separate Point Transform node when you need to re-orient a merged or animated result further down the chain.

Open Geometry to Points in the interactive catalog →

Geometry to Points 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