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)