Houdini 20.0 Nodes Geometry nodes

Point Wrangle geometry node

Runs a VEX snippet to modify point attributes, including position.

This node type is deprecated. It is scheduled to be deleted in an upcoming revision of Houdini.

Use the Attribute Wrangle node instead.

(Since version 14.0.)

On this page
Since 12.5


This is a very powerful, low-level node that lets experts who are familiar with VEX tweak point attributes using code.

This node corresponds to the VOP SOP, but uses a textual VEX snippet instead of a VOP network.

This node runs the snippet on every point in the input geometry. The snippet can edit the input geometry by changing attributes. It can access information from other geometry using attributes and VEX functions.

  • Press MMB on the node to see any error output from the snippet.

  • You can use the VEX function ch to evaluate parameters. The path is relative to this node (ch("parm") will evaluate the parameter parm on this node). This evaluation will be done at the current time.

  • Unlike the Point SOP, this does not use local variables. Further, all backtick expressions and $F variables will be evaluated at frame 1, not the current time. Use Frame, Time, or TimeInc instead.


This node runs the VEX snippet in the SOP context.


The VEX snippet parameter lets you enter a snippet of VEX code to run on the input geometry. See VEX snippets for basic information on the syntax available in the snippet parameter. See the VEX chapter for general information on the VEX language.

VEX variables

You can create temporary VEX variables. Normal VEX variables do not have a @ prefix. For example, the following code swaps P and Cd.

vector temp = @P;
@P = @Cd;
@Cd = temp;

Global Variables

The VEX sop context provides several global variables you can access, such as P, that correspond to attributes. While you can access these directly, we recommend you use the @ prefix for clarity.

The following global variables do not correspond to attributes and may be useful in snippets.


Total number of points.


Current time in seconds.


Current time in frames.


Time increment between frames, in seconds.

OpInput1, OpInput2, OpInput3, OpInput4

A string that can be used to refer to the corresponding input of this SOP in vex operations that take file parameters.


Point group

A subset of points in the input geometry to run the program on. Leave this blank to affect all points in the input.


A snippet of VEX code that will manipulate the point attributes. You can use @variable_name syntax to access geometry attributes.

Attributes to Create

Only create attributes if their names match this pattern. The default pattern allows any attribute to be created.

You can restrict the created attributes by replacing the * with a list of allowed names. Global attributes, such as Cd, v, and id, will be created even if they are not in this list.

See also

Geometry nodes