Skip to content

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 count weight 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.