Houdini 19.0 Nodes Channel nodes Math

Math channel node

Perform a variety of arithmetic operations on and between channels.

On this page

This CHOP allows you to perform a variety of arithmetic operations on and between channels. Channels of a CHOP can be combined, and several CHOPs can be combined.

Unary Operations

Unary operations are performed on individual channels. Unary operations are:


Don’t do anything to the channel.


Take the negative value of each sample of the channel.


Make negative values of the channel positive (absolute).


Take the square root of all values in the channel.


Square all the values in the channel.


Take the inverse (1/x) of all values in the channel.

Combine Channels

Operations between channels can be done within an input or between inputs. The operations are done on a sample by sample basis:


Don’t combine the channels.


Sum all the channels.


Subtract all the channels from the first.


Take the product of all the channels.


Divide the first channel by all the rest.


Take the average of all the channels.


Take the maximum value of all the channels.


Take the minimum value of all the channels.


Assume the channels are a vector and compute its length.



Channel Pre OP

A menu of unary operations that are performed on single channels as they come in to the Math CHOP.

Combine Channels

A menu of operations that is performed between the channels of a single input CHOP, for each input.

Combine CHOPs

A menu of operations that is performed between the input CHOPs, combining several CHOPs into one.

Channel Post OP

A menu of more unary operations that is performed on the channels resulting from the above operations.

Match By

Match channels between inputs by name or number.

When matching by name, the number of output channels is the number of channels from the first input. For each channel of the first input, the channel of the same name is taken from the other inputs. If a channel name cannot be found, then it is omitted. Only the channels whose names occur in the first input will be used to generate the output channels. Channels whose names do not occur in the first input will not affect the output channels.

When matching by number, the number of output channels is the maximum number of channels out of all the inputs. Then for each input, the original sequence of channels is repeated to match the number of output channels.

Match Failure

It is sometimes desirable to produce a warning or an error when channels in the first input fail to be correctly matched to channels in the other inputs. A failure may occur when matching by Channel Number if an input has fewer channels than input 1, or when matching by Channel Name if a channel name cannot be found in input 1.


The alignment to use when aligning channels from different inputs. See the help for the Merge CHOP.



First, add value to each new channel.


Then multiply by this value.


Then add this value.


From/To Range

Another way to multiply/add. Converts from one low-high range to another range.


Some of these parameters may not be available on all CHOP nodes.


To determine which channels get affected, some CHOPs have a scope string. Patterns can be used in the scope, for example * (match all), and ? (match single character).

The following are examples of possible channel name matching options:


Matches a single channel name.

chan3 tx ty tz

Matches four channel names, separated by spaces.


Matches each channel that starts with chan.


The ? matches a single character. t? matches two-character channels starting with t.


Matches channels rx, ry and rz.


Matches number ranges giving blend3, blend5, and blend7.


Matches channels blend2, blend3, blend5, blend13.


[xyz]matches three characters, giving channels tx, ty and tz.

Sample Rate Match

The Sample Rate Match Options handle cases where multiple input CHOPs’ sample rates are different.

Resample At First Input’s Rate

Use rate of first input to resample others.

Resample At Maximum Rate

Resample to highest sample rate.

Resample At Minimum Rate

Resample to the lowest sample rate.

Error if Rates Differ

Does not accept conflicting sample rates.


The units for which time parameters are specified.

For example, you can specify the amount of time a lag should last for in seconds (default), frames (at the Houdini FPS), or samples (in the CHOP’s sample rate).


When you change the Units parameter, it does not convert the existing parameters to the new units.

Time Slice

Time Slicing is a feature which boosts cooking performance and reduces memory usage. Traditionally, CHOPs calculate the channel over its entire frame range. If the channel does need to be evaluated every frame, then cooking the entire range of the channel is unnecessary. It is more efficient to calculate only the fraction of the channel that is needed. This fraction is known as a Time Slice.


Causes the memory consumed by a CHOP to be released after it is cooked and the data passed to the next CHOP.

Export Prefix

The Export prefix is prepended to CHOP channel names to determine where to export to.

For example, if the CHOP channel was named geo1:tx, and the prefix was /obj, the channel would be exported to /obj/geo1/tx.


You can leave the Export Prefix blank, but then your CHOP track names need to be absolute paths, such as obj:geo1:tx.

Graph Color

Every CHOP has this option. Each CHOP gets a default color assigned for display in the Graph port, but you can override the color in the Common page under Graph Color. There are 36 RGB color combinations in the Palette.

Graph Color Step

When the graph displays the animation curves and a CHOP has two or more channels, this defines the difference in color from one channel to the next, giving a rainbow spectrum of colors.



The current index.


The current value.


Current channel index (0 to NC-1).


Total number of channels.


MathBasic Example for Math channel node

These examples demonstrate the ability of the Math CHOP to combine multiple channels together.

The first example shows two different methods of controlling the amplitude of a sine wave. The second example shows three different channels combined into one.

See also