Houdini Expression Editor

Houdini Expression Editor allows you to set up an external text editor for all type of expressions. Such as Vex snippet, python code, HScript. It uses a system of file watchers to keep track of code updates in real time. It doesn't freeze Houdini and you don't have to close your editor to see the updated code applied on your parameter.

Also compatible with custom Python SOP nodes source code.

Compatibility Houdini 15, 15.5, 16.0, 16.5

Older versions:


Go to you $HOME/Houdini16.0 folder ( for instance, on windows: C:\Users\%USERNAME%\Documents\houdini16.0, on MAC OSX it would be: ~/Library/Preferences/houdini/16.0 ) and extract HoudiniNodeBookmarks.zip in here ( with "extract here" command ). The zip file contains:

scripts\python\HoudiniExprEditor folder, the main python module.

MainMenuCommon.xml The file used to customize the "Edit => preferences" menu.

PARMmenu.xml The file used to customize the right click on parm menu.

Warning: If you have already a custom MainMenuCommon.xml or PARMmenu.xml, do not replace them, but merge the contents.


To edit your expression or code in an external editor, simply click on a parameter then go to Expression => External Expression Editor:

If you haven't any editor set, it will ask you to choose one:

You can set an editor by setting the environment variable EDITOR on your system to a valid executable path. Or with "Edit => Preferences => Set External Expressions Editor" menu. The editor set path is saved to your $HOME/houdiniXX.X/ExternalEditor.cfg file.

You editor will show up, in that example I picked Visual Studio Code with the VEX syntax plugin and Python plugin installed. If you save you file, the code is updated automatically, no need to close your editor and it doesn't freeze Houdini:

You can see that it creates a file which follows that name format: %node_id%_%node_name%_%parm_name%.%expr_type_file%

It create a .vfl file for vex code, .py file for python and .txt for other fields (hscript).
You can set where the files are saved by setting the environment variable "EXTERNAL_EDITOR_TEMP_PATH" to a valid folder path. The default temp path of the system will be used otherwise.
You can remove a the link between a parameter and its file by using the menu: Expression => Remove File Watcher. Note that it will not remove the file.

You need more support, have feedback or issues ? send email to: support@cgtoolbox.com



  • Bugfix: Files are not unnecessary removed anymore.
  • Feature: Support of Python SOP node source code


  • First release