Houdini Resources

Updated on Dec 13  2017

copyright  Deborah R. Fowler


Deborah R. Fowler

VEX/VOPS and a little Python

For more information on Python in Houdini click here.

Updated on Jan 30  2014
Updated on Jan 15  2018

Also take a look at this description on odforce between hscript, vex/vops and python.


VOPS is Houdini's visual interface to VEX. Vex stands for Vector expression language. Both are native to Houdini. Introduced for writing shaders, expanded to SOPS, wranglers added ability to use VEX everywhere.

VEX is becoming more popular with the introduction of wrangle nodes and VEX snippets. (use for writing shaders and custom nodes). For examples of wrangle nodes, see page on wrangle nodes.

VEX looks similar to old rsl and C in terms of syntax. VEX is also very efficient (close to compiled C++ code). VOP is a pictoral representation of VEX code. Both can be used to create sops and are used in other contexts (dops, pops, shops). As of version 14 and up, vops are contextual (ie. point vop - (about 10x faster than the point SOP), attribute, primitive, vertex, volume VOPS).

To create the containers to place the code/nodes into:

TIP: on wrangle nodes, use the examples on the side (down pointing triangle) for quick syntax help

python can be created as described above, or through the tab menu.
missing image
(Alternatively you could also create a vfl file with VEX code and compile it using vcc to create an otl/hda). In H16 this is the only way to get a new geometry operator. See forum post 

Once you have the otl created you can select the operator from your Digital Asset menu in the appropriate context and continue to refine your otl using the Edit VEX Function button on your node or use Type Properties and going to the Code tab.



An example of moving a point along a normal is given in the following sample files (zip files that contains the hda for the VEX python version - be sure to refresh your digital asset library). Updated for version 16 (older version 14  version 13.)

missing imageIn H13, note that in the VEX and VOP version, the normal is automatically post recomputed, however in the python version it is not. A facet node is used to achieve the same result. (See forum post about normals). New to H14, VOPS no longer recomputes the normals, only VEX does.

Lecture PDF for moving a point along a normal (updated for version 16) here.

For examples of vex snippets click here.