Skip to content

Generator Nodes

Generator nodes create point sets from scratch. They have no required input ports and output a Point data stream that downstream nodes can filter, transform, and scatter objects from.

All generator nodes are found in the Generators category of the node picker.


Create Points

Display name: Create Points
Category: Generators
Description: Creates points at manually specified positions.

Ports

DirectionNameTypeRequired
OutputOutPoint

Settings

FieldTypeDefaultDescription
positionsVector3[][Vector3.zero]World-space positions for each point to create.
densityfloat1.0Density value assigned to every created point. Range 0–1.

Notes

  • Each entry in positions generates exactly one point.
  • Points are created in the order of the array; the internal seed increments per point so downstream randomised nodes produce stable, deterministic results.
  • Use this node for handcrafted or sparse, precisely-located placements.

Create Points Grid

Display name: Create Points Grid
Category: Generators
Description: Generates a regular grid of evenly-spaced points centred on the origin.

Ports

DirectionNameTypeRequired
OutputOutPoint

Settings

FieldTypeDefaultDescription
gridExtentsVector3(5, 0, 5)Half-extents of the grid in each axis. When y is 0, only an XZ plane grid is generated.
cellSizeVector3(1, 1, 1)Spacing between adjacent points along each axis. Minimum enforced per axis: 0.01.
pointDensityfloat1.0Density value assigned to every generated point. Range 0–1.

Notes

  • When gridExtents.y < 0.001, the node generates a flat 2D XZ grid (Y is fixed at 0). Set gridExtents.y > 0 to fill a 3D volume.
  • Point count = (2 * extents / cellSize + 1)³ per axis, so be cautious with small cell sizes over large extents.
  • The node does not use a random seed; the output is fully deterministic.

Random Points

Display name: Random Points
Category: Generators
Description: Generates a given number of randomly-placed points inside an axis-aligned bounding box.

Ports

DirectionNameTypeRequired
OutputOutPoint

Settings

FieldTypeDefaultDescription
boundsMinVector3(-5, 0, -5)Minimum corner of the generation volume.
boundsMaxVector3(5, 0, 5)Maximum corner of the generation volume.
pointCountint100Number of points to generate.
densityfloat1.0Density value assigned to every generated point. Range 0–1.

Notes

  • This node uses the graph Seed value for reproducibility. Changing the seed produces a completely different distribution.
  • Points are distributed with uniform probability across the entire AABB volume.
  • Set boundsMin.y == boundsMax.y to generate a flat 2D distribution on a single Y plane.

Poisson Disk Sampling

Display name: Poisson Disk Sampling
Category: Generators
Description: Generates evenly-spaced random points using Poisson disk sampling (Bridson's algorithm). No two output points are closer than minDistance.

Ports

DirectionNameTypeRequired
OutputOutPoint

Settings

FieldTypeDefaultDescription
boundsMinVector3(-10, 0, -10)Minimum corner of the generation volume.
boundsMaxVector3(10, 0, 10)Maximum corner of the generation volume.
minDistancefloat1.0Minimum distance enforced between any two output points. Minimum value: 0.01.
maxAttemptsint30Candidate attempts per active point before that point is retired. Higher values are denser but slower.
densityfloat1.0Density value assigned to every generated point. Range 0–1.

Notes

  • Sampling operates on the XZ plane. The Y coordinate of all points is set to boundsMin.y.
  • The algorithm is implemented as a Burst-compiled job (PPGPoissonDiskJob) for performance.
  • This node uses the graph Seed for reproducibility.
  • Compared to Random Points, Poisson disk output looks more natural and avoids clustering — ideal for foliage and rocks.
  • Point count is not fixed; it depends on minDistance and maxAttempts. Decrease minDistance for denser output.

Procedural Placement Graph for Unity