# Help understanding Ben Watts growth prop. tutorial

## Recommended Posts

Hello,

I'm trying to understand the process in Ben Watts tutorial

So initially he made 2 scatters, one will be the points on the surface and the other points will be the start propagation ones.

Then he does 2 attribute wrangle with this:

f@accum =0; and in the other f@init = 1;

I'm new to houdini and trying to get the basics in vex, already toke hellolux intro to vops and I was thinking on Vex in Houdini by Shawn Liposwki but that one seems for advanced users, so if anybody got a nice VEX for ultra noobs web or tut will be great!

So, f@ means frame at? and accum / init are attributes he made?, 0 means no and 1 means yes?

What I understand from solvers is they repeat actions right? he made an Attribute vop there and plug the first node in prev_frame and second node into input 2 (one for each scatter)

In the att. vop he made a point open (saw this in a lot of tutorials but can't figure out yet the function), same for the pc filter, where he put the attributes he created earlier.

Finally he does @Cd = set (1.0.0) where I understand he takes the color and set to red (1 for R)

then @Cd.x = @accum; (why the .x?)

I really enjoy houdini propagation effects and want to dig more into this, I also saw the thread of reaction diffuse and analized the files, its kinda advanced for me but everyday I learn new stuff and then when I go back I have a better overall idea

Thanks

##### Share on other sites

Haven't watched the video but I can explain a few things. That f@ means he is stating that variable is a float. i@ would be an integer, v@ would be a vector etc. Writing it this way with the @ syntax also exposes it as an attribute that can be used/modified/manipulated in another part of the node graph.

@Cd.x means he is just setting the x component of Cd. You can see it has 3 values and they can be accessed by the dot notation so .x is the first number, .y second and .z the third.

This is a good place to find out more about VEX: http://www.tokeru.com/cgwiki/index.php?title=HoudiniVex

Edited by carlo_c
spelling
• 2

##### Share on other sites

I also didnt watch it but can add on.

The point cloud finds the nearest point with a distance threshold you set.The particle masterclass or Peter Quint's channel has point cloud knowledge.

Solvers accumulate the frame range. So yes they repeat, building on the frame before the current. The very principle of simulations my friend.

For vectors just remember RGB = XYZ

and tokeru as carlo posted are the best vex text ive come across.

• 1

##### Share on other sites
21 hours ago, carlo_c said:

Haven't watched the video but I can explain a few things. That f@ means he is stating that variable is a float. i@ would be an integer, v@ would be a vector etc. Writing it this way with the @ syntax also exposes it as an attribute that can be used/modified/manipulated in another part of the node graph.

@Cd.x means he is just setting the x component of Cd. You can see it has 3 values and they can be accessed by the dot notation so .x is the first number, .y second and .z the third.

This is a good place to find out more about VEX: http://www.tokeru.com/cgwiki/index.php?title=HoudiniVex

Hey carlo_c, thanks for the detailed explanation, got it now! Started reading the cgwiki, its just what I was searching for, super clear, thanks!

16 hours ago, Yon Anadeyo said:

I also didnt watch it but can add on.

The point cloud finds the nearest point with a distance threshold you set.The particle masterclass or Peter Quint's channel has point cloud knowledge.

Solvers accumulate the frame range. So yes they repeat, building on the frame before the current. The very principle of simulations my friend.

For vectors just remember RGB = XYZ

and tokeru as carlo posted are the best vex text ive come across.

Hey Yon Anadeyo, now I understand why point clouds are used that much, seems like something I'll be using in the future, I was going to check PQ class but I thought it wouldnt be helpful since is from some years ago, but more than one told me that his stuff is great so will check them out as an starting point.

Will dig more into solvers too, and about colours that was exactly my confusion, I thought Cd. should be "R" instead of "X", now I get it.

Thanks for the link too, time to start reading vex, pc and solver stuff.

Cheers!

##### Share on other sites

Yes.

In a nutshell what he´s doing is creating an empty accum floating parameter and another init parameter where you want the effect to start propagating from.

Now, as you mentioned, the pointcloud operation is inside a solver SOP so it will be repeated for every frame.

Every frame the VOP network checks for any points with accum parameter:

- In the first frame there are none, but he adds the init paramater to those and makes the sum of those the new accum parameter

- For the following frames we already have an accum parameter and thanks to the point cloud we add those points close to them.

- Don´t forget for every frame he is also adding the "old" accum parameter so that we have the new added to what we already had as the final value. As we don´t want any accum value above 1, we use a clamp to limit it to 1. Otherwise those points that already had a value of 1 would take higher values.

And then outside the Solver, we just color the accum parameter and depending on the intended effect we might delete everything not red.

This is not the only way to implement a propagation (you could add to a group instead of using a parameter), but it is one of the most common, and this tutorial and example are very nice. Props to Ben Watts for it.

• 1

##### Share on other sites
On 7/26/2016 at 6:29 AM, Netvudu said:

Yes.

In a nutshell what he´s doing is creating an empty accum floating parameter and another init parameter where you want the effect to start propagating from.

Now, as you mentioned, the pointcloud operation is inside a solver SOP so it will be repeated for every frame.

Every frame the VOP network checks for any points with accum parameter:

- In the first frame there are none, but he adds the init paramater to those and makes the sum of those the new accum parameter

- For the following frames we already have an accum parameter and thanks to the point cloud we add those points close to them.

- Don´t forget for every frame he is also adding the "old" accum parameter so that we have the new added to what we already had as the final value. As we don´t want any accum value above 1, we use a clamp to limit it to 1. Otherwise those points that already had a value of 1 would take higher values.

And then outside the Solver, we just color the accum parameter and depending on the intended effect we might delete everything not red.

This is not the only way to implement a propagation (you could add to a group instead of using a parameter), but it is one of the most common, and this tutorial and example are very nice. Props to Ben Watts for it.

thank you for the detailed explanation @Netvudu ! super clear, cheers!

##### Share on other sites

Hey there,

I also tried the tutorial and found that actually Watts was using H14 and in H15 to call the red channel, the variable is @Cd.r, not @Cd.x. Still, the propagation effect doesn't work. Are there any other alternatives to accum and init? I couldn't find anything on these. Cheers.

Sean

##### Share on other sites

Ari's VEX Wrangle workshop is worth a look. Definitely get the workshop PowerPoint PDF which is a good reference.

## Create an account

Register a new account