Skip to content

node normalize

Blossom Merz edited this page Oct 27, 2026 · 1 revision

Home > Data > Normalize

< Previous: List Length | Next: Reverse >

Node Library

Normalize (node)

Scale a list of values into 0 to 1 - the smallest becomes 0, the largest becomes 1. A list with no spread comes out all zeros.

Normalize node diagram

Category: Data | Add menu: Data > Normalize

The smallest value in the list becomes 0, the largest becomes 1, and everything else lands where it sits between them. The range comes from the list itself, which is the whole point: it is how a list of measured lengths, areas or distances becomes something a Field, a scale or a color ramp can take without knowing what the numbers meant.

Order and length are preserved, so the result still pairs index for index with whatever the values came from.

Inputs

  • Values (number): the list to scale.

Outputs

  • Values (number): the same list, on a 0 to 1 footing.

Two horizontal purple number lines drawn on the same ruler, one unit the same width on each. The upper line, labeled Values in, runs four units from -1.000 to 3.000 with integer tick marks beneath it and five dots labeled -1.000, 0.200, 1.100, 2.300 and 3.000. The lower line, labeled Values out, is left justified under the upper one and only one unit long, exactly one tick interval, carrying the same five dots labeled 0.000, 0.300, 0.525, 0.825 and 1.000. Dashed connectors run from each value to its answer, sweeping inward; caption, one unit is the same width on both lines, four units of spread squeezed into one.

It is a list operation, not a per-item one

This is why it sits under Lists rather than beside Math. The answer for one item depends on every other item: add one long value and all the rest restretch. Every other numeric node in the category answers index for index, and this one cannot.

It is the complement of Series. Series makes an index sequence; this takes whatever a graph has measured and puts it on the same footing.

The edge cases

  • A list with no spread comes out all zeros. Every value being the same is the divide-by-nothing case: there is no position within a range of width zero to report. Zero rather than an error is the same guard Math's divide, modulo and power already use.
  • The test is near zero, not exactly zero, so a span of a thousandth of a millionth does not get scaled up into a full 0 to 1 and report differences that are not there.
  • A single value, not a list, is the same case for the same reason, and comes out 0.
  • A value that is not a finite number reads as 0 and counts toward the range, rather than poisoning the whole answer.
  • One level of list. Normalize reads a flat list of numbers; it does not reach inside a nested one.

Not the same as Vector Math's Normalize

Vector Math has an operation called Normalize too, and it is a different thing: it scales one vector to unit length, direction kept. This node scales a list of numbers into 0 to 1. Nothing is shared between them but the word.

Related

  • Series: the index sequence this is the complement of.
  • List Length: how many items a list holds.
  • Graph Mapper: reshaping values once they are on a 0 to 1 footing.
  • Vector Math: the other Normalize, on a single vector.
  • Data nodes: the rest of the category.

< Previous: List Length | Next: Reverse >

Locus Studio Docs

Home

Getting Started

Modeling - Drawing

Modeling - Editing

Annotation

Layers

Modeling Menus

The Nodes Window

Node Library

Clusters

Bridging Modeling & Nodes

Patterns & Symmetry

Image-Driven Fields

Saving, Exporting & Files

Preferences & Language

CLI

Reference

Clone this wiki locally