Skip to content

Field Remap

Reshapes field values through an input range, curve, and output range. Magnitude-preserving for vector fields.

Category: Fields Menu path: Fields > Field Remap

Ports

PortTypeDirectionDescription
inscalarFieldinputInput field (also accepts vectorField and scalar via compatibility)
scalarFieldscalarFieldoutputRemapped scalar field
vectorFieldvectorFieldoutputRemapped vector field (magnitude reshaped, direction preserved)

Parameters

ParamTypeDefaultDescription
inMinscalar0Input range minimum
inMaxscalar1Input range maximum
outMinscalar0Output range minimum
outMaxscalar1Output range maximum
clampbooleantrueClamp input to [inMin, inMax] before remapping
curvecurveRampidentity (linear 0-1)Response curve applied between input and output ranges

How It Works

Field Remap processes field values through a three-stage pipeline:

  1. Normalize: Map the input value from [inMin, inMax] to [0, 1].
  2. Curve: Evaluate through the CurveRamp response curve.
  3. Scale: Map from [0, 1] to [outMin, outMax].

Scalar field path: Each sampled value goes through all three stages directly.

Vector field path: Magnitude-preserving. The vector is decomposed into length + direction. The length is remapped through the curve. The direction is preserved. This reshapes the speed/strength distribution of a vector field without changing its directional character.

The curve param uses the CurveRamp editor -- an interactive SVG curve with draggable control points, presets (Identity, Ease In, Ease Out, S-Curve), and interpolation modes (Linear, Smooth, Step).

Field Remap is a lightweight CPU node -- it composes lazily with the upstream field. The curve is only evaluated at eval() time when a consumer samples the field.

Usage Examples

Basic: Ease a noise field

Noise.scalarField -> Remap (curve: S-Curve preset). The noise field's linear 0-1 distribution is reshaped into a smoother S-curve, creating more contrast between high and low regions.

Range mapping

Noise.scalarField -> Remap (inMin: 0.3, inMax: 0.7, clamp: true). Only the middle range of noise values are used, creating a more binary (on/off) field.

Speed shaping for advection

Noise.vectorField -> Remap (curve: custom ease-in, outMin: 0, outMax: 2). Vector field magnitudes are reshaped -- slow regions stay slow, fast regions accelerate further. Feed into PointAdvect.

Inverting a field

Remap (outMin: 1, outMax: 0). Flips the field values -- what was 1 becomes 0.

Tips

  • The CurveRamp editor supports presets accessible from the curve widget header
  • Double-click on the curve to add control points; select and delete to remove them
  • Clamp enabled (default) prevents values outside inMin/inMax from producing unexpected output
  • The vectorField output preserves flow direction while reshaping magnitude -- ideal for tuning PointAdvect speed
  • FieldMath -- combine two fields with math operations
  • Noise -- common upstream field source
  • DistanceField -- another field source (shape-based falloff)
  • PointAdvect -- consumer of reshaped vector fields
  • Math -- scalar Remap operation (simpler, no curve)