Following this tutorial that creates trails from volumes.
Playing with some splines. In Houdini you create them with the Curves sop.
Resample to subdivide splines.
Polyframe to generate tangents from points.
Press X to create a Visualize node.

A nice way to invert tangents from points is with an Attribute Wrangle and this code
v@tangent = @tangent * -1;
Just be careful when declaring the type of variable. A tangent is a vector, not a float.

The Volume sop has some interesting parameters:

If you want to use the tangents in your Volume, you have to use a Vector rank.
Careful about Name parameter of Volume sop. It’s not “just a name”. It’s absolutely important.

Naming volumes allows mantra and the Volume VOP to override the correct parameters with the values of the volume.

The input of the Volume sop is Bounding Source. It’s the Bounding Source of the geometry! When you create a Volume it will look at the boundary box of your object. If you want to increase the Volume boundary box, use a Bound sop, not a Volume Bound!

Volume Vop allows us to write vex for volumes.
When you’re working with vector, remember to change Bind export to vector!

These are Vops that I used in the Volume Vop.
Point Cloud Open: this node opens a point cloud file and searches for points around a source position.
Pount Cloud Filter: allows us to choose an attribute (channel) from the point cloud.
Length: it calculates the lenght of a vector.

Volume Trail sop: computes a trail of points through a velocity volume (from the help!).

Remember: VDB from Polygon to create a volume from polygons.

Some VEX here.
VEX stands for Vector Expressions.

SHIFT + R to reverse the node inputs.

The full list of VEX functions is here.

to declare a variable:
int nameofthevariable; // create a integer variable
vector nameofthevariable; // create a vector variable

Fetching vector P
‣ @P // fetch first input P
‣ @opinput1_P // fetch second input
‣ @opinput?_P // fetch ?th input
Fetching float foo
‣ f@foo // fetch first input foo
‣ f@opinput1_foo // fetch second input
‣ f@opinput?_foo // fetch ?nt input
/*
my comment block
*/

f@myattrib = 1.0; // f means floating point. This line means that I'm creating a new variable, called myattrib, it's a floating number and it's 1.
@N = @N; // initialise the normals
@UP = {0,1,0}; // this is the way we initialise the vectors, with the up on Y
@Cd = @Cd; // initialise the colors

In the past few days I’ve jumped between tutorials and, to be honest, the more I watch them, the more I understand.
The last one I’ve done is just brilliant, about reaction diffusion, by Entagma.
And, finally, I’ve been able to render an animation!

So, I’ve just finished the first big tutorial on Digital Tutors.
More free Houdini tutorials here:

http://www.gridmarkets.com/johnny-farmfield.html
https://vimeo.com/user2030228/videos

But before I start on those, I’ll dive into Dynamics a bit more with another Digital Tutors tutorial.

Cloth object

If some penetrations happen, check the cloth thickness in collisions.
The main controls for the Cloth are in Model, like C4D: stiffness, damping, density.
Stiffness: 
how much cloth is resisting deformations.
Density: how heavy is the cloth?
Damping: how quickly the cloth will settle down, it’s how much it’s springy

 

Houdini