Vector Math Node

This is a versatile node. You can perform 1 operation on 1000’s of list-elements, or perform operations pairwise on two lists of 1000’s of elements, even if they are nested. It is therefore what we call a Vectorized node, for an elaborate explanation of what this means see this [introduction]().

The node expects correct input for the chosen operation (called mode), but it will fail gracefully with a message in the console if the input is not right for the selected mode.

Input and Output

socket description
inputs Expect a Vector and Scalar (v,s), or two Vectors (u, v)
outputs Will output a Scalar (s), or a Vector (w).

Depending on the mode you choose the sockets are automatically changed to accommodate the expected inputs and outputs types


Most operations are self explanatory, but in case they aren’t then here is a quick overview:

Tables inputs outputs description
Cross product u, v s u cross v
Dot product u, v s u dot v
Add u, v w u + v
Sub u, v w u - v
Length u s distance(u, origin)
Distance u, v s distance(u, v)
Normalize u w scale vector to length 1
Negate u w reverse sign of components
Noise Vector u w [see mathutils]()
Noise Scalar u s [see mathutils]()
Scalar Cell noise u s [see mathutils]()
Vector Cell noise u w [see mathutils]()
Project u, v w u project v
Reflect u, v w u reflect v
Multiply Scalar u, s w multiply(vector, scalar)
Multiply 1/Scalar u, s w multiply(vector, 1/scalar)
Angle Degrees u, v s angle(u, origin, v)
Angle Radians u, v s angle(u, origin, v)
Round s digits u, s v reduce precision of components
Component-wise U*V u, v w w = (u.x*v.x, u.y*v.y, u.z*v.z)