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.