Skip to content

Parameter Nodes

AABBox

2D axis-aligned bounding box parameter: center (X, Y) and size (Width, Height). Right-click → Wire AABBox parameter to auto-connect all four ports to a Polygon/AABBox node.

Outputs

  • CenterX (Float)
  • CenterY (Float)
  • Width (Float)
  • Height (Float)

Bool

Exposes a boolean toggle. Wire the output to a Branch node Condition port.

Outputs

  • Value (Bool)

Choice

Exposes a named-choice dropdown. The designer picks from your defined options; the graph receives the selected index as an integer.

Outputs

  • Index (Float)

Options

  • choices: The list of option strings shown in the designer’s dropdown. Add at least two entries; the index order is permanent once any graph is saved against this parameter.
  • selectedIndex: Zero-based index of the default selection when the parameter is first placed or reset. Must be within [0, choices.Count-1].

Color

Exposes an RGBA color parameter. Outputs R, G, B, A as separate float ports (linear space). Per-instance color variation is not supported in v1; for random tints, use a Gradient Lookup node fed by a noise node.

Outputs

  • R (Float)
  • G (Float)
  • B (Float)
  • A (Float)
  • Color (Color)

Color Palette

A weighted palette of colors. Each instance picks one swatch by weight at generate time and applies it to a material slot via MaterialPropertyBlock: for per-instance colour variation across many placements.

Options

  • paletteCount: Number of colour swatches (2–8).
  • entries: Colour swatches for this palette: the first paletteCount swatches are active. Click each swatch in the node body to open the colour picker.
  • palettePropertyName: Shader colour property the picked swatch sets, e.g. _BaseColor.
  • mpbMaterialIndex: Material slot the picked colour paints (resolved to a submesh automatically).

Tips

  • Weights are relative: 3,1,1 → 60% / 20% / 20%. A zero-weight swatch never appears.
  • Set the Property to the shader colour property, e.g. _BaseColor / _Color.

Curve Ramp

Exposes a per-instance tunable AnimationCurve. The graph-authored default is baked into the binary as a 128-sample float LUT; designers override it via InfinioInstance.curveInputs in the Inspector.

Outputs

  • Curve (Float)

Options

  • defaultCurve: Default AnimationCurve baked into the binary as a 128-sample LUT and seeded onto each new InfinioInstance. Designers override it per-instance in the Inspector.

Tips

  • Set the curve’s wrap mode (loop/ping-pong/clamp-forever) to control out-of-range sampling.
  • Feed the output into a Sample Ramp node to get the remapped value at a given t.

Float

Exposes a float parameter that the tool user can adjust in the inspector or scene.

Outputs

  • Value (Float)

Options

  • modeChoice: Designer can switch — when enabled (non-zero), the designer sees a Fixed / Random toggle in the tool inspector. 0 = author’s mode is final; 1 = designer starts Fixed and can switch; 2 = designer starts Random and can switch.

Float Range

Exposes a min/max range parameter. The inspector shows a MinMaxSlider; the graph receives Min and Max as separate float outputs.

Outputs

  • Min (Float)
  • Max (Float)

Tips

  • Set clamp bounds on the node to define the outer slider track; without bounds the drawer defaults to [0, 1].
  • Wire Min and Max separately into downstream nodes. For a random value within the range, feed both into a Lerp with a Random Float as the t input.

Geometry Palette

An inspector-swappable set of meshes. Pairs with ForEachSpawn.Variant: the variant index picked by MeshSelector or WeightedMeshSelector maps to a named mesh set the designer swaps without opening the graph.

Options

  • paletteCount: Number of mesh entries (2–8).
  • entries: Mesh assets for this palette: the first paletteCount entries are active. Drag meshes from the Project window onto each row in the node body.

Limitations

  • ChunkSystem passes no mesh inputs: geometry from this node is empty in streamed chunks.

Tips

  • Choose the entry with Variant Index: WeightedPick for one pick per instance, a MeshSelector’s ForEachSpawn Variant for one per spawn.
  • Use ForEachSpawn.Variant to read which variant was assigned to each spawn.

Geometry Parameter

Typed geometry input port for a sub-graph. When this graph is referenced by a Sub-Graph node, the parent can wire Geometry into this port.

Outputs

  • Geometry (Geometry)

Geometry Source

Exposes a swappable mesh reference. The tool user drags a mesh in the inspector; the graph receives it as Geometry.

Outputs

  • Geometry (Geometry)

Options

  • defaultMesh: Mesh shown in graph-window preview and seeded onto each new InfinioInstance. Designers drag a replacement in the InfinioInstance inspector to override per-instance.

Limitations

  • ChunkSystem passes no mesh inputs: geometry from this node is empty in streamed chunks.

Integer

Exposes an integer parameter. Stored as float internally; round to int in the graph when needed.

Outputs

  • Value (Float)

Options

  • modeChoice: Designer can switch — when enabled (non-zero), the designer sees a Fixed / Random toggle in the tool inspector. 0 = author’s mode is final; 1 = designer starts Fixed and can switch; 2 = designer starts Random and can switch.

Material Palette

A weighted palette of materials. Each instance picks one entry by weight at generate time and assigns it to a material slot: for per-instance material variation across many placements.

Options

  • paletteCount: Number of material entries (2–8).
  • entries: Material assets for this palette: the first paletteCount entries are active. Drag materials from the Project window onto each row in the node body.
  • mpbMaterialIndex: Material slot the picked material replaces (resolved to a submesh automatically).

Tips

  • Weights are relative: 3,1,1 → 60% / 20% / 20%. A zero-weight entry never appears.
  • Material picks swap the submesh’s shared material, so they are not SRP-batched (same as multi-material slots).

Material Slot

Exposes a swappable material reference. Wire the output to a Material Tag node to assign materials per submesh.

Outputs

  • Slot (Float)

Options

  • defaultMaterial: Default Material baked into the binary and seeded onto each new InfinioInstance. Designers drag a replacement in the InfinioInstance inspector to override per-instance.

OBBox

Exposes a 3D oriented bounding box: center XYZ, size XYZ, Y-axis rotation. CenterY/SizeY are for 3D volume filtering; polygon footprints use only CenterX/Z and SizeX/Z. Right-click → Wire OBBox parameter to auto-connect to Polygon/OBBox. Handle type Box is set automatically.

Outputs

  • CenterX (Float)
  • CenterY (Float)
  • CenterZ (Float)
  • SizeX (Float)
  • SizeY (Float)
  • SizeZ (Float)
  • Rotation (Float)

Physics Material

Exposes a swappable PhysicsMaterial reference. Wire the output to a collider node’s Physics Material input port.

Outputs

  • Physics Material (Float)

Options

  • defaultPhysicsMaterial: Default PhysicsMaterial baked into the binary and seeded onto each new InfinioInstance. Designers drag a replacement in the InfinioInstance inspector to override per-instance.

Scene Point

A draggable position handle in the scene view. Outputs X/Y/Z scalars and a Vector3 Position port.

Outputs

  • X (Float)
  • Y (Float)
  • Z (Float)
  • Position (Vector3)

Scene Rotation

A rotation handle in the scene view. Outputs Euler X/Y/Z scalars.

Outputs

  • X (Float)
  • Y (Float)
  • Z (Float)

Scene Scale

A scale handle in the scene view. Outputs scale X/Y/Z scalars.

Outputs

  • X (Float)
  • Y (Float)
  • Z (Float)

Seed

Exposes a seed input port for this graph. Inside a subgraph, wire a loop/shelf/book index through Derive Child Seed into this port to give every invocation deterministic per-instance variation.

Outputs

  • Seed (Float)

Tips

  • Unwired, it inherits the graph’s global seed: every invocation is identical (today’s behaviour). It varies only when you give it variation.
  • The seed rides as a bitcast float (all 32 bits preserved). Drive it from Derive Child Seed or a Seed Bitcast input, never a numeric Float wire.
  • On a Sub-Graph node in the parent, this appears as a wirable Seed input port.

Spline Parameter

Typed spline input port for a sub-graph. When this graph is referenced by a Sub-Graph node, the parent can wire a Spline into this port.

Outputs

  • Spline (Spline)

Texture Palette

A weighted palette of textures. Each instance picks one entry by weight at generate time and applies it to a material slot via MaterialPropertyBlock: e.g. different book covers per bookcase, no per-instance materials.

Options

  • paletteCount: Number of texture entries (2–8).
  • entries: Texture2D assets for this palette: the first paletteCount entries are active. Drag textures from the Project window onto each row in the node body.
  • palettePropertyName: Shader texture property the picked entry sets, e.g. _BaseMap / _MainTex.
  • mpbMaterialIndex: Material slot the picked texture paints (resolved to a submesh automatically).

Tips

  • Weights are relative: 3,1,1 → 60% / 20% / 20%. A zero-weight entry never appears.
  • Set the Material Slot to the slot a Material Tag assigned to the geometry you want varied.
  • Each instance varies by its Seed: drop several and they get different covers automatically.

Texture2D

Exposes a swappable Texture2D reference. Wire the output to a Sample Texture 2D node, or into a Set Material Property node to paint it onto a material slot.

Outputs

  • Texture (Texture)

Options

  • defaultTexture: Default Texture2D baked into the binary and seeded onto each new InfinioInstance. Designers drag a replacement in the InfinioInstance inspector to override per-instance.

Vector2

Exposes a 2-component vector parameter. Outputs X and Y as separate float ports.

Outputs

  • X (Float)
  • Y (Float)

Vector3

Exposes a 3-component vector parameter. Outputs a single Vector3 port. Use Split Vector3 to access individual components.

Outputs

  • Vector (Vector3)

Options

  • value: Default Vector3 value used for graph preview and seeded onto new InfinioInstances. Edited inline on the node body.
  • boxGrowthX: How the Box Volume scene handle grows along X when resized. Centered = symmetric about origin; Positive = grows right; Negative = grows left. Only applies when HandleType is Box Volume.
  • boxGrowthY: How the Box Volume scene handle grows along Y when resized. Centered = symmetric; Positive = grows up; Negative = grows down.
  • boxGrowthZ: How the Box Volume scene handle grows along Z when resized. Centered = symmetric; Positive = grows forward; Negative = grows backward.

Tips

  • Set Handle to ‘Box Volume’ to drag a 3D volume (width, height, depth) in the scene view. Add a custom anchor (right-click the node) to give the box a free centre away from the tool pivot.
  • Set Handle to ‘Scene point’, ‘Scene rotation’, or ‘Scene scale’ to drag this value directly in the scene view; the same handles the dedicated Scene nodes use. Scene point reads the value as an offset from the tool pivot (or a custom anchor), so a value authored as a size will be reinterpreted as a position.

Vector4

Exposes a 4-component vector parameter. Outputs X, Y, Z, W as separate float ports.

Outputs

  • X (Float)
  • Y (Float)
  • Z (Float)
  • W (Float)

World Surface

Declares that this tool reads the surrounding scene. Every instance scans a box around itself on the main thread before evaluating, so World Height sampling works with no setup; a designer can freeze that scan to a World Capture asset per instance.

Tips

  • Leave everything alone and it works: an unassigned instance scans a 50 m box centred on itself, every evaluation.
  • Drag the violet Scan Area box in the scene to scan a bigger or smaller region; do that when the tool reads ground far from its pivot.
  • Freeze the scan to a World Capture asset (Inspector) when you want the result to stop changing with the scene, or to skip the scan cost in a build.