VEX? Python? HScript?... What's what?

   11154   9   3
User Avatar
Member
20 posts
Joined: Jan. 2013
Offline
Hello forum, it is with great delight that I write my first post here. I am in the puppy-love stage with Houdini right now, having recently taken the time to discover it. My background is SolidWorks, so I have never been quite satisfied working with traditional (Autodesk) programs, where any parametric capabilities are afterthoughts at best….ok, revit, and XSI ICE, but that's different.

Although I am not terribly familiar with all of the standard nodes and functions of Houdini yet, I would like to start wrapping my brain around the potential to create more advanced custom tools. I am hoping someone can give me a simple rundown of the difference between VEX, VOP, Python, HScript, etc., and perhaps suggest a wise learning path, as they all seem to be quite involved.

Over in TouchDesigner world, I was told that TScript was their old, messy scripting language, and that I shouldn't bother learning it because the implementation of Python is much more powerful and cleaner. So my mindset there is: learn python and you can do anything with TouchDesigner. Can this be said for Houdini? That is, learn Python and don't worry so much about HScript, VEX, etc.? Or are we talking about completely different tools here in Houdini that are used for completely different ends?

Sorry to ask what I'm sure is an open ended question– just trying to get more of a broad understanding of the different approaches to tame the Houdini beast.

Ian
User Avatar
Member
299 posts
Joined: Jan. 2010
Offline
VEX: Shader code, per point based operations.
VOPs: Gets turned into VEX by Houdini.

Python and HScript are different script languages to do the same thing. I recommend going with Python but once in a while you might run into some task that needs hscript.
Drive, monkey, drive!
User Avatar
Member
696 posts
Joined: March 2009
Online
Python will, at some point comprise all of hscript, but it's not quite there yet. You can invoke hscript commands from withing python so if you ever find yourself needing something that python won't do you can resort to that.

I learnt hscript before python, so that's where I go first and it's generally faster to code for simple things. Nevertheless, python can be more powerful at times. I'd say learn both!

Like Erik said, VOP is a visual form of VEX. Although there isn't always a direct correspondence between a VOP and a VEX command (sometimes one single VOP corresponds to a list of VEX commands). Both are very powerful also because they are fully threaded and processed in parallel so between a python operator and a VOP (or VEX) operator you'll probably get more speed out of a VEX/VOP. I'm talking in very general terms here though.

The way I did things, largely thanks to my tutor at the time, was first learning VEX/VOP and hscript expressions. Then I scratched the surface with hscript. Recently, about a year ago, I got to python. I feel like this way I got to understand the thresholds.

Cheers
Toronto - ON
My Houdini playground [renderfarm.tumblr.com]
“As technology advances, the rendering time remains constant.”
User Avatar
Member
696 posts
Joined: March 2009
Online
Also a big difference between VEX/VOP and python is the first only modifies data, while python can also be used to create data and/or geometry…
Toronto - ON
My Houdini playground [renderfarm.tumblr.com]
“As technology advances, the rendering time remains constant.”
User Avatar
Member
20 posts
Joined: Jan. 2013
Offline
Thanks guys! That is really helpful. Sounds like I can't really go wrong– just gotta jump in.

So HScript and Python are made for scripting, that is, making completely custom functionality from scratch.

VOPs are for shaders

VEX is a way to write custom nodes

got it.
User Avatar
Member
696 posts
Joined: March 2009
Online
enthewhite
Thanks guys! That is really helpful. Sounds like I can't really go wrong– just gotta jump in.

True!

enthewhite
So HScript and Python are made for scripting, that is, making completely custom functionality from scratch.

Hscript comes in two flavors: expressions and commands. Expressions are for quick manipulations of parameter values. Commands can be used to do everything the GUI does, but in the command line. Python can go almost as far as Hscript commands, and it can also be used as hScript expressions.

enthewhite
VOPs are for shaders

VEX is a way to write custom nodes

got it.

Both VOPs and VEX can be used to create custom operators or shaders. The big difference is that they are not suitable to create geometry, only to operate and modify attributes. Python can create geometry and/or modify attributes.

You got very very close though!

Cheers
Toronto - ON
My Houdini playground [renderfarm.tumblr.com]
“As technology advances, the rendering time remains constant.”
User Avatar
Member
20 posts
Joined: Jan. 2013
Offline
Awesome, thanks for your help!

It's nice how similar houdini is to touchdesigner. I think I'm going to like having these two programs as the bulk of my arsenal. 8)
User Avatar
Member
696 posts
Joined: March 2009
Online
enthewhite
It's nice how similar houdini is to touchdesigner

The founder of Derivative is also the co-founder of SideFx…
Toronto - ON
My Houdini playground [renderfarm.tumblr.com]
“As technology advances, the rendering time remains constant.”
User Avatar
Member
2624 posts
Joined: Aug. 2006
Offline
enthewhite
Hello forum, it is with great delight that I write my first post here. I am in the puppy-love stage with Houdini right now, having recently taken the time to discover it. My background is SolidWorks,

Ian

Hi Ian,
Welcome ! , funny you should post I am actually digging into Solid works right now. You will certainly find there are things that are similar in thinking between solid works and Houdini but are done very differently.

Rob
Gone fishing
User Avatar
Member
20 posts
Joined: Jan. 2013
Offline
Nice to meet you Even though it is done differently, I find myself much more in tune with a procedural program like touchdesigner or houdini after being raised on solidworks. In solidworks, you don't define things with nodes in a network, but dimensions, relations, and mates are still defining the output in a non-linear associative way.
  • Quick Links