Math Nodes
AND
Outputs true if both A and B are true.
Inputs
- A (Bool)
- B (Bool)
Outputs
- Result (Bool)
Tips
- Chain AND nodes to combine three or more conditions: (A AND B) AND C.
- To combine a Compare result with another bool, wire the Compare Result directly into A or B.
Abs
Absolute value: flips negative inputs to positive.
Inputs
- Value (Float)
Outputs
- Result (Float)
Add
Outputs A + B.
Inputs
- A (Float)
- B (Float)
Outputs
- Sum (Float)
Angle to Vector2
Converts a degree angle to a 2D unit direction: X = cos(angle), Y = sin(angle). Use for circular motion or 2D direction without exposing trig.
Inputs
- Angle (Float)
Outputs
- X (Float)
- Y (Float)
Asin
Returns asin(value) in radians; result in [-π/2, π/2]. Input is clamped to [-1, 1].
Inputs
- Value (Float)
Outputs
- Angle (Float)
Atan
Returns atan(value) in radians; result in [-π/2, π/2].
Inputs
- Value (Float)
Outputs
- Angle (Float)
Atan2
Returns atan2(Y, X): the angle in radians from the X axis to point (X, Y), in the range [-π, π].
Inputs
- Y (Float)
- X (Float)
Outputs
- Angle (Float)
Tips
- Y comes first, X second; matches atan2(y, x), not the X-then-Y order you read a coordinate in.
Ceil
Rounds Value up to the nearest integer.
Inputs
- Value (Float)
Outputs
- Result (Float)
Clamp
Constrains Value to the [Min, Max] range: useful for capping noise or parameter outputs.
Inputs
- Value (Float)
- Min (Float)
- Max (Float)
Outputs
- Result (Float)
Compare
Compares two values and outputs 1 (true) or 0 (false). Wire the result to a Branch node Condition.
Inputs
- Value (Float)
- Compare To (Float)
Outputs
- Result (Bool)
Options
- op: The comparison operator. Equal: Value == Compare To. NotEqual: Value != Compare To. LessThan: Value < Compare To. GreaterThan: Value > Compare To. LessOrEqual: Value <= Compare To. GreaterOrEqual: Value >= Compare To.
Constant
Outputs a math constant: pi, tau, phi, e, or sqrt2.
Outputs
- Value (Float)
Options
- preset: Which constant to output. Pi, Tau, Phi, E, or Sqrt2.
Tips
- Pi (~3.14159): ratio of a circle’s circumference to its diameter.
- Tau (~6.28318): one full turn in radians (= 2 * Pi).
- Phi (~1.61803): the golden ratio.
- E (~2.71828): Euler’s number, base of the natural logarithm.
- Sqrt2 (~1.41421): the length of the diagonal of a unit square.
Cos
Returns cos(value) in radians.
Inputs
- Value (Float)
Outputs
- Result (Float)
CylindricalUVProject
Retired: use UV Project (mode Cylindrical) instead.
Inputs
- Geometry (Geometry)
- Height Scale (Float)
Outputs
- Geometry (Geometry)
Deg to Rad
Converts degrees to radians. Output = value × π / 180.
Inputs
- Degrees (Float)
Outputs
- Radians (Float)
Derive Child Seed
Derives a deterministic child seed from a base seed and a discriminator. Wire a loop or shelf/book index into Discriminator to give every invocation of a subgraph a different seed.
Inputs
- Base Seed (Float)
- Discriminator (Float)
Outputs
- Child Seed (Float)
Limitations
- Do NOT wire the output into a Random node’s Seed port: those ports read plain integers (loop indices), and a bitcast child seed collapses to 0 or garbage there. Random nodes vary automatically with the graph/segment seed; to vary them per call-site, enable Randomise on the Sub-Graph node instead.
Tips
- Feed Base Seed from a Seed input (Seed Bitcast): never a numeric Float/Int wire, which truncates seeds above 16 million.
- Chain two Derive Child Seed nodes (shelf index, then book index) so shelf 2 / book 3 differs from shelf 3 / book 2.
- Wire the output into a subgraph’s Seed parameter port; the same inputs always produce the same child seed.
DescribedNodeHolder
Combines scatter points into a final placement layer
Divide
Outputs Value ÷ Divisor. Returns 0 when Divisor is zero.
Inputs
- Value (Float)
- Divisor (Float)
Outputs
- Quotient (Float)
FacadeCornerStamp
Places a quoin stamp at each polygon corner per matching row-band floor; rotation aligns +Z with the exterior bisector.
Inputs
- Polygon (Polygon)
- Floor Height (Float)
- Floor Count (Int)
- Quoin Prefab Index (Int)
- Row Band Mask (Int)
Outputs
- Stamps (Scatter)
FacadeGridResolve
Picks a tile variant per facade cell using row-band masks and left-side adjacency tags from a Facade Rule Set.
Inputs
- Cells (Scatter)
- Rules (FacadeRuleSetHandle)
- Seed (Float)
Outputs
- Resolved (Scatter)
Flair
Scales cross-sections uniformly from Base Scale at the base to Tip Scale at the tip along the spine axis. Falloff curves the gradient: 0 = linear, positive = tip-concentrated, negative = base-concentrated.
Inputs
- Geometry (Geometry)
- Base Scale (Float)
- Tip Scale (Float)
Outputs
- Geometry (Geometry)
Options
- spineAxis: Axis that runs from base to tip. Y for upright geometry; Z or X for meshes built lying flat.
- falloffExp: Curves the scale gradient. 0 = linear; positive = tip-concentrated (fast then slow); negative = base-concentrated (slow then fast). Range: −4 to 4.
Limitations
- Operates in local mesh space: applied before any GeometryTransform. Apply UV projection before stacking deformers.
Tips
- Use after Taper for fine control: Taper pinches uniformly; Flair lets you set independent scale at both ends.
- Flair + Bend + Fold is the canonical palm-frond deformer stack: Flair narrows the tip, Fold creases it, Bend arches it.
Floor
Rounds Value down to the nearest integer.
Inputs
- Value (Float)
Outputs
- Result (Float)
Hash to Vector3
Deterministic hash of (Seed, Key) → Vector3 in unit cube [0,1]³. Each component is an independent hash channel; use as a 3D random source.
Inputs
- Seed (Float)
- Key (Float)
Outputs
- Result (Vector3)
HashToFloat
Deterministic hash of (Seed, Key) → float in [0, 1]. Use as the primitive behind random patterns.
Inputs
- Seed (Float)
- Key (Float)
Outputs
- Result (Float)
Lerp
Linear interpolation: returns From when T=0, To when T=1, blended in between.
Inputs
- From (Float)
- To (Float)
- T (Float)
Outputs
- Result (Float)
Max
Outputs the larger of A and B.
Inputs
- A (Float)
- B (Float)
Outputs
- Result (Float)
Min
Outputs the smaller of A and B.
Inputs
- A (Float)
- B (Float)
Outputs
- Result (Float)
Mod
Outputs the remainder of Value ÷ Divisor: useful for tiling patterns.
Inputs
- Value (Float)
- Divisor (Float)
Outputs
- Remainder (Float)
Multiply
Outputs A × B. Use to scale noise or blend weights.
Inputs
- A (Float)
- B (Float)
Outputs
- Product (Float)
NOT
Inverts a bool: true becomes false, false becomes true.
Inputs
- Condition (Bool)
Outputs
- Result (Bool)
Tips
- Wire into AND/OR to express negative conditions: NOT slope-too-steep AND altitude-ok.
Negate
Flips the sign of Value: equivalent to Multiply by -1.
Inputs
- Value (Float)
Outputs
- Result (Float)
OR
Outputs true if either A or B is true.
Inputs
- A (Bool)
- B (Bool)
Outputs
- Result (Bool)
Tips
- Chain OR nodes to combine three or more conditions: (A OR B) OR C.
- Use with Compare nodes to accept multiple ranges: (value < min) OR (value > max).
One Minus
Outputs 1 − Value, the complement. Flips a normalized 0–1 value (mask, weight, falloff): 0 becomes 1 and gradients reverse direction.
Inputs
- Value (Float)
Outputs
- Result (Float)
Options
- clamp: When on, saturates the input to [0, 1] before computing 1 − x, guaranteeing the result stays in [0, 1]. Off (default): pure 1 − x with no clamping: useful when the input is already in range or when a negative result is intentional.
Tips
- This is 1 − x: not Negate (−x) or Reciprocal (1/x).
- Clamp off (default): pure 1 − x; an out-of-range input returns 1 − x (1.5 → −0.5). Clamp on: the input is treated as 0–1 so the result is guaranteed to land in [0, 1].
PlanarUVProject
Retired: use UV Project (mode Planar) instead.
Inputs
- Geometry (Geometry)
- Scale (Float)
Outputs
- Geometry (Geometry)
Pow
Raises Base to the power of Exponent. Use to shape falloff curves.
Inputs
- Base (Float)
- Exponent (Float)
Outputs
- Result (Float)
Rad to Deg
Converts radians to degrees. Output = value × 180 / π.
Inputs
- Radians (Float)
Outputs
- Degrees (Float)
Random Bell Curve
Outputs a random float near Center, with most values clustered close and fewer landing far away: like a bell curve. Use instead of Random Float when results should feel naturally grouped rather than evenly spread.
Inputs
- Center (Float)
- Spread (Float)
- Seed (Float)
Outputs
- Result (Float)
Limitations
- No built-in min/max clamp: extreme values (beyond 3x Spread) are rare but possible. Add a Clamp node downstream if your system cannot tolerate outliers.
Tips
- Wire a loop index or scatter spawn seed into Seed for different values per instance; the same Seed always produces the same result for the same graph seed.
- Roughly 68% of outputs land within one Spread of Center, and 95% within two Spreads: set Spread to about half the range you want to cover most of the time.
- Chain with a Clamp node if you need a hard floor or ceiling: Bell Curve has no built-in bounds and can occasionally produce values well outside your expected range.
Random Bool
Outputs 1 with the given probability (Threshold), 0 otherwise. Driven by Seed and the graph context seed.
Inputs
- Seed (Float)
- Threshold (Float)
Outputs
- Result (Float)
Random Color
Outputs a random RGB colour drawn from Hue/Saturation/Value ranges. HSV ranges avoid the muddy grey-brown sludge that independent RGB randomness produces. Wire a loop/spawn index into Seed for per-instance variety.
Inputs
- Seed (Float)
Outputs
- Color (Color)
Options
- hueMin: Lower bound of the hue band, 0..1 around the colour wheel (0=red, 0.33=green, 0.66=blue).
- hueMax: Upper bound of the hue band, 0..1.
- satMin: Lower bound of saturation, 0..1. 0 = grey, 1 = fully vivid.
- satMax: Upper bound of saturation, 0..1.
- valMin: Lower bound of value/brightness, 0..1. 0 = black, 1 = full brightness.
- valMax: Upper bound of value/brightness, 0..1.
Tips
- Narrow the Hue range for an analogous palette; widen it for the full spectrum.
- Keep Saturation above ~0.5 to avoid washed-out greys, and Value between ~0.4 and ~0.9 to avoid blacks and blown-out whites.
- The swatch strip on the node body previews eight sample colours live as you drag the ranges.
Random Float
Outputs a deterministic random float in [Min, Max] driven by Seed and the graph context seed. Each graph evaluation produces a consistent value for the same seeds.
Inputs
- Min (Float)
- Max (Float)
- Seed (Float)
Outputs
- Result (Float)
Random Int
Outputs a deterministic random integer in [Min, Max] inclusive, driven by Seed and the graph context seed.
Inputs
- Min (Float)
- Max (Float)
- Seed (Float)
Outputs
- Result (Float)
Random Seed
Produces a deterministic integer seed from an authored value mixed with the evaluation seed.
Outputs
- Seed (Float)
Options
- seed: Integer base seed authored at graph-build time. The evaluator mixes this with the chunk coordinate to produce a value that is deterministic per-chunk but unique across the world.
Random Vector2
Outputs a Vector2 with each component independently random in [Min, Max]. Components are decorrelated, so X and Y vary independently.
Inputs
- Min (Float)
- Max (Float)
- Seed (Float)
Outputs
- Vector (Vector2)
Random Vector3
Outputs a Vector3 with each component independently random in [Min, Max]. Components are decorrelated: useful for random offsets or points in a cube.
Inputs
- Min (Float)
- Max (Float)
- Seed (Float)
Outputs
- Vector (Vector3)
Random Vector4
Outputs a Vector4 with each component independently random in [Min, Max]. Components are decorrelated.
Inputs
- Min (Float)
- Max (Float)
- Seed (Float)
Outputs
- Vector (Vector4)
Remap
Rescales Value from [In Min, In Max] to [Out Min, Out Max]. Use to remap noise into useful ranges.
Inputs
- Value (Float)
- In Min (Float)
- In Max (Float)
- Out Min (Float)
- Out Max (Float)
Outputs
- Result (Float)
Tips
- Values outside [In Min, In Max] are extrapolated: the linear formula continues past the bounds. Add a Clamp node before Remap if you need to constrain the input.
- Swap Out Min and Out Max to invert the mapping (high input → low output, e.g. to flip a slope mask).
RetiredNodePlaceholder
Placeholder for a retired node: keeps connections intact while the graph is migrated to the successor.
Round
Rounds Value to the nearest integer (half rounds to even).
Inputs
- Value (Float)
Outputs
- Result (Float)
Saturate
Clamps Value to [0, 1]. Shorthand for Clamp with fixed bounds.
Inputs
- Value (Float)
Outputs
- Result (Float)
ScalarSpawnExtEditorNode_T425P3a
Track 425 Ph3a test stub. One scalar input, no output. Not a real node.
Inputs
- Value (Float)
SeedMix
Mixes a base seed with a salt to produce a derived seed.
Inputs
- Base Seed (Float)
- Salt (Float)
Outputs
- Mixed Seed (Float)
Sign
Returns +1 for positive inputs, -1 for negative, 0 for zero.
Inputs
- Value (Float)
Outputs
- Result (Float)
Sin
Returns sin(value) in radians.
Inputs
- Value (Float)
Outputs
- Result (Float)
Smoothstep
Hermite interpolation: 0 below Fade From, 1 above Fade To, smooth S-curve between them.
Inputs
- Fade From (Float)
- Fade To (Float)
- Value (Float)
Outputs
- Result (Float)
SpawnExtTestEditor
Test fixture: emits 3 fixed spawn descriptors to verify spawn extension dispatch.
Outputs
- Spawns (Scatter)
SphericalUVProject
Retired: use UV Project (mode Spherical) instead.
Inputs
- Geometry (Geometry)
- Scale (Float)
Outputs
- Geometry (Geometry)
Sqrt
Square root of Value. Returns 0 for negative inputs.
Inputs
- Value (Float)
Outputs
- Result (Float)
Step
Returns 0 if Value < Threshold, 1 otherwise. Hard threshold switch.
Inputs
- Threshold (Float)
- Value (Float)
Outputs
- Result (Float)
Subtract
Outputs Value − Subtract By.
Inputs
- Value (Float)
- Subtract By (Float)
Outputs
- Difference (Float)
Tan
Returns tan(value) in radians.
Inputs
- Value (Float)
Outputs
- Result (Float)
TestManagedExtEditorNode_T425P2
Track 425 Ph2 test stub. Not a real node.
TestSplineHandleVis
Test-only vis node with a SplineHandle input: Track 349 Ph4 Sp1.
Inputs
- SplineIn (Spline)
To Bool
Converts a float to a bool: any non-zero value becomes true, zero becomes false.
Inputs
- Value (Float)
Outputs
- Result (Bool)
Tips
- Usually optional: a float output can be wired straight into a bool input, and Infinio applies this same non-zero rule automatically. Use this node when you want that conversion to be visible on the canvas.
- Threshold: exactly 0 is false; any other value (including negative) is true. For any OTHER threshold: ‘is this noise value above 0.5’: use Compare instead, which lets you state the number.
Weighted Pick
Picks one of N entries by weight, deterministic from Seed. Wire Seed from a loop index or scatter spawn and the Index output into a Material Tag’s slot override for weighted per-instance variation (e.g. which book cover appears).
Inputs
- Seed (Float)
Outputs
- Index (Float)
Options
- count: Number of active entries (2–8). Only the first
countweight slots are active. - w0: Relative weight for entry 0. Higher = appears more often; 0 = never selected. Weights are normalised internally: 3,1,1 gives 60/20/20%.
- w1: Relative weight for entry 1.
- w2: Relative weight for entry 2.
- w3: Relative weight for entry 3.
- w4: Relative weight for entry 4.
- w5: Relative weight for entry 5.
- w6: Relative weight for entry 6.
- w7: Relative weight for entry 7.
Tips
- For equal-weight picks, Random Int is simpler: reach for Weighted Pick only when entries should appear at different frequencies.
- Weights are relative: 3,1,1 → 60% / 20% / 20%. A zero-weight entry never appears.
- All-zero weights deterministically return index 0, so the node is never a dead end.