> For the complete documentation index, see [llms.txt](https://codalin.gitbook.io/nodalin-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://codalin.gitbook.io/nodalin-docs/nodes-reference/streams/number.md).

# Number

<table data-header-hidden><thead><tr><th width="141.6597900390625"></th><th></th></tr></thead><tbody><tr><td><div><figure><img src="https://937151318-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F44MuVIHBk5o5yfcGn64w%2Fuploads%2FCPp3xhQNprUDzcEa33ZZ%2Fimage.png?alt=media&amp;token=44949807-71e3-48c2-9921-7109a78970df" alt="" width="76"><figcaption></figcaption></figure></div></td><td>The Number node outputs a value of the datatype <code>number</code>, and is used to control or modify properties across your graph. Since almost all nodes accept numeric input, it’s one of the most commonly used Stream nodes.</td></tr></tbody></table>

Right-click to edit and type or scroll to adjust the value. Press `Shift` while scrolling for larger increments

### Use cases

* Set a property: Connect a Number node to a Source node (e.g., Square) to control its size
* Scale another stream: Connect a Wave node to a Number set to 0.5, set the connection operator to *times*, and reduce the Wave output by half
* Extract coordinates: Connect a Mouse node to two Number nodes to isolate X and Y, then feed them into a Source node (e.g., Signal) to drive frequency and angle dynamically

### **Understanding Number node connections**

The Number node has two types of inputs that work together:

**Primary input** — Choose one way to use the incoming value:

* **Math operations** (`+`, `-`, `×`, `%`) apply the operation to your base value
* **`value`** (tunnel) bypasses everything and outputs the input directly

*<mark style="color:$primary;">**Seccondary input - Only available when using a math operation:**</mark>*

* **operand** replaces your base value before the math is applied

**Connection behavior**: When you drag a connection to a Number node, you'll only see the inputs that make sense for your current setup. For example:

* With nothing connected, you can choose a math operation or use `value` as a tunnel
  * Once you connect a math operation (like `+`), the `operand` input becomes available to connect, letting you override the base value
* You can right-click any connection to switch between compatible options (e.g., switch from `+` to `×`)

<table><thead><tr><th width="154.953125">Property name</th><th width="402.66015625">Description</th><th>Compatible datatype</th></tr></thead><tbody><tr><td>plus</td><td>Adds the node’s current value to the input</td><td>number</td></tr><tr><td>minus</td><td>Subtracts the node’s current value from the input</td><td>number</td></tr><tr><td>times</td><td>Multiplies the node’s current value by the input</td><td>number</td></tr><tr><td>mod</td><td>Returns the remainder of a division, using the second value as the modulus.</td><td>number</td></tr><tr><td>value</td><td>Overrides the node’s value with the input. Helpful for inspecting values and reducing overlapping connections.</td><td>number</td></tr><tr><td>operand</td><td>Replaces the base value before a math operation is applied. Only available when a math operation is connected.</td><td>number</td></tr><tr><td>x</td><td>Extract X coordinate from Point/Mouse node</td><td>point</td></tr><tr><td>y</td><td>Extract Y coordinate from Point/Mouse node</td><td>point</td></tr><tr><td>figureX</td><td>Extract X coordinate from Source node</td><td>figure</td></tr><tr><td>figureY</td><td>Extract Y coordinate from Source node</td><td>figure</td></tr><tr><td>figOriginX</td><td>Extract origin X coordinate from Source node</td><td>figure</td></tr><tr><td>figOriginY</td><td>Extract origin Y coordinate from Source node</td><td>figure</td></tr><tr><td>hue</td><td>Extract Hue value from a Color node</td><td>color</td></tr></tbody></table>

## Tips

The Number node’s math operations are extremely practical in real projects — and you don’t need to be a math expert to use them.

* **Plus** offsets a value. For example, you can push a shape forward slightly or shift a wave pattern. **Minus** does the same in the opposite direction, letting you pull values back.
* **Times** lets you scale an input. For example, you can reduce a Wave’s effect, by multiplying with a floating point number less than 1 , e.g. `0.35`, before sending it into property. You can also invert any value by multiplying it by `-1`.
* **Mod** is excellent for creating staggered or rhythmic motion. When combined with another Steam node, it can generate looping steps, jittery patterns, or wrap-around movement.
* **Using operand for dynamic math**: The `operand` input lets you make both sides of a math operation dynamic. For example, connect a Wave to `operand` and a Mouse Y coordinate to `+` to create `Wave + MouseY` — the result changes based on both inputs, perfect for responsive animations.
