Map

Mapping utility for driving sockets. Applies one operation (constant, attribute, or randomize) and blends the result linearly.

The Map node is the fundamental building block for parameter control in Natsura.

  • Linear Chaining: Maps are connected in a linear chain. Each node modifies the value passed from the previous one.
  • Operations: Each Map performs one operation: Constant, Attribute Lookup, or Randomization.
  • Blending: The result of the operation is blended (Add, Multiply, Replace, etc.) with the incoming value.

Concept

Space and Time By mapping parameters to attributes like u (growth progress), height (Y position), or age (time), you make your growth rules dynamic. A static "Width" becomes a "Taper". A static "Pitch" becomes a "Curl".

The Chain A single Map node is rarely enough. You typically chain them:

  1. Base Value: Set a constant start value.
  2. Variation: Add noise or randomization.
  3. Control: Multiply by a ramp over u to shape the effect.

Inputs

  • Input 0 — Previous Map The value stream from the upstream map.
  • Output — Resulting Map The modified value stream.

Parameters

Mode

  • Constant: Outputs a fixed number.
  • Attribute: Samples a graph attribute (e.g., u, height).
  • Randomize: Generates a stable random value per internode.

Settings

  • Attribute: The attribute name to read (in Attribute mode).
  • Ramp: Remaps the attribute value (0-1 range).
  • Random Range: Min/Max values for randomization.

Blending

  • Operation: How to combine with the input value (Replace, Add, Subtract, Multiply, Divide).

Attributes

Map reads attributes from the graph but does not create them.

  • Common Inputs: u, id, parent_id, generation, age, height.

Workflow

  1. Connect a Map node to a socket on a Grow node (e.g., "Width Scale").
  2. Set Mode to Constant and value to 0.1 (Base width).
  3. Chain a second Map node.
  4. Set Mode to Attribute, Attribute to u, and Operation to Multiply.
  5. Adjust the Ramp to taper the width from 1.0 down to 0.0.

NodeRelationship
GrowPrimary consumer of Maps
WrangleCreates custom attributes for Maps
Map IfConditional mapping logic
Map BlendBlends two map chains