HDK volume advect compare with Vex/Ocl

I’ve made one of my first HDK plugin. This was more a test in order to work with volumes in c++. You can find the code here.


This node read one volume on input1 and advect the data with 3 volumes on input2. I’ve made a comparaison with Vex and Opencl with a volume of 100*100*100 and 3 substeps in advection :

  • HDK advect : 1.813s
  • Volumewrangle : 0.398s
  • Opencl : 0.025s

I was surprised to get so much differences. My code in HDK is not threaded and I guess not optimized, I’ve made a test to thread my code with THREADED_METHOD2  but I didn’t get any improvement yet. My next step will be to try threads, opencl or cuda in HDK.


The Opencl Code seems in this case much better, for those who want to have a look the otl is here and I have a hip file here. (made with indie licences)

Ubisoft : Annecy

I’ve been working one year in video games. I was using Houdini in order to generate content in a procedural environement. I’m waiting to see pictures online in order to share one.

I’ve been working on, (everything wasn’t finished when I left ) :

  • road network : opencl pathfinding , pypanels, interactive tools
  • small cities : generate roads and placing buildings
  • road terraforming : create all the interesections and terraform with many controls
  • river creation : generate path of rivers, terraform the terrain and setup data for rendering
  • tools to edit and make preset in their software from Houdini
  • objects terraforming : automatic terraforming from objects with many setups and controls

sop solver : multiple outputs

I always though you can only edit one data at a time with Sop Solvers but in fact you can output multiple datas from a Sop Solver. : sop_solver.hip

I’ve seen this with the vellum constraint and you need to use a compile block. In this example I just move some geometry from a data to an other but it can be very useful when you have many data to edit like a smoke object.

opencl : advect volume

As the vdb_advect node was very slow, I decided to make my own advect node in Opencl : advect_opencl.hip

I’ve made a forward and backward advection. I’m uploading this node as it shows how to use atomic add with floats inside Houdini for the forward advection. It also use a bilinear interpolation to read or write into the voxels.

vex : mix colors

Here is a test to mix colors in different spaces like RGB RYB CMYK CIELab :

Hip File : color_mixing.hip

you will need this vex lib  : color.h

Below, from right to left : RGB mixing, RGB or CMYK in substractive mode, RYB with luminance based on RGB, and CIELAB.

Video : A test made with a color mixing in RYB space, I hope to upload soon the hip file for this effect.

Les gobelins : Houdini Courses

I was teaching Houdini for many years, here is a preview of the course I made at Les Gobelins. It was a course on 26 days. I’ve updated few sections so I’ll try to update the hip files in order to share them. I will post them one by one and I guess I will only post the pratical examples and the pdf for theory.


Course 01 Procedural Modeling : book / library → Procedural workflow

Course 02 Procedural terrain : VOP / Noise / Vex

Course 03 Rendering in Houdini : Shaders / Mantra / TriPlanar / Displace / Redshift / USD workflow

Course 04 procedural tree/forest : Copy/L-system/Instances/for Loop/LOD

Course 05 Procedural advance modeling : house

Course 06 : Procedural advance modeling : road / city

Course 07 Volume : pyroclastic noise/vdb/erode/render

Course 08 Clouds and sky : cloudFx/cvex/instance

Course 09 Procedural animation : CHOP/vehicule rigging /character rigging

Course 10 Intro DOP : Sop Solver / wetmaps / snow footprints

Course 11 Intro Particles : Fireworks / curve flow / render particles

Course 12 Vex Forces : goals / sdf / curve surface or volume guides

Course 13 Particles : vines generation : growing on surfaces

Course 14 FLIP : liquid simulation/ lava

Course 15 FLIP : ocean simulation

Course 16 Vellum solver : grain / cloth / hair

Course 17 Fur/Hair : grooming/simulation

Course 18 RBD : Rigid bodies / Bullet

Course 19 RBD : constraints/ displace /secondary debris

Course 20 PyroSolver : smoke simulation

Course 21 Pyrosolver and particles : tornado shot

Course 22 Pyrosolver : fire/explosions

Course 23 Other solvers : Fluid/FEM/Ripple/Wire

Course 24 Crowds : making crowds in Houdini / ragdolls

Course 25 Script : Python/Digital Asset

Course 26 dev : HDK / Opencl


an old preview I’ll also try to update (2014) :

SO Productions : Jelly Maker

I’ve made multiple commercials for this company when I was in Melbourne. I was using Houdini as a generalist : modeling, rendering, Fx, animations.