In Houdini 17, there is a new system in place called Vellum. Vellum is primary used for generating soft bodies like balloons, grains, cloth simulations, and hair simulations. You can gain access to this system by using your regular TAB menu, or the shelf tools, if you would like to select presets. Here is a link to the SideFx articles: HERE.
Example of Vellum Soft Body VFX
While using the Vellum Tools, you will notice that the vellum nodes contain three different outputs and inputs. The first one on the left of the node is for plugging in the Geometry , the one on the far right is for plugging in the colliding object. The middle one passes on the points of the geometry for constraints to the next vellum nodes.
The Vellum Post-Process: This node allows you to visualize different parts of your simulation. Such as the stress and bend levels. This node is great for troubleshooting.
The Vellum Solver : Allows you to add or reduce Sub-steps in your simulations, as well as constraint iterations, and to add and adjust forces.
The Vellum I/O: This node saves out the geometry, and here you can also remove extra attributes.
Since Vellum is a particle based simulation, you can use forces such as POP axis force in a Vellum DOP network.
Now that we have a quick breakdown of Vellum, let's proceed to understand which vellum tools we can use for our projects. As well as understand how each vellum system works.
First, let's do a quick recap on what a DOP and a SOP is.
SOP: Surface level Operator. This includes any geometry nodes that are in a object folder. They are used to construct or modify your geometry.
DOP: Dynamic Operators. These are simulation or solver nodes that you have created to build and modify your simulation.
So Now Let's get started.
Vellum Configure Grain SOP
This Vellum system is one that you can access in your TAB menu. This Vellum system takes incoming geometry and treats it like a grain system. However, you have two options of how you would like this system to work.
A) You can tell Houdini to fill the volume of the attached geometry with grains.
B) You can tell Houdini to use existing points on the geometry as grains.
When using this node, always increase the sub-steps to at least 5, otherwise your simulation will be unstable.
If you are having trouble seeing your grains, try modifying the add sprite material settings. When you add a sprite material, they should appear as disks/spheres in your scene.
Remember to modify the create points from volume parameter if you are intending to fill your geometry with grains.
The Vellum Solver.
The Vellum Solver is a SOP node that wraps around a DOP network to solve your vellum simulations. This means you can enter this node, and add more DOP nodes, and apply forces onto the solve of the simulation. You can also edit parameters on the outside of the node such as the Timescale, Sub-steps, and Self Collisions.
The Vellum Drape.
The Vellum Drape is used for cloth simulations. It takes the points of a simulation and moves around them, and then welds them together once the simulation is finished. The cool thing about the vellum drape is that you have a parameter option to load the simulation from disk once the drape has been completed. You also have the options to freeze frame your simulation at a certain frame.
The Vellum Rest Blend.
The Vellum Rest Blend is a SOP Node that allows you to mix the rest values of constraints on your geometry. It calculates the rest length, angle, and state and then allows to make changes to the stretching, bending, or inflation of an object over time. In this Node you have the option of either using the first or forth input for the rest configuration.
The Vellum Pack Geometry Node.
The Vellum Pack is a SOP Node packs geometry and constraints together into a single packed geometry. The output geometry will then create two primitives for each of the inputs that you ca use in your simulation. In this process the node creates a vellum_type string attribute. This attribute tells the geometry to split up once it is told to unpack. One way to undo the process this node preforms is the Vellum Unpack SOP.
Vellum Cloth Tricks
Based on what type of cloth you are creating, or are working with, it's always good to consider the thickness of the material. To change the thickness of your cloth material/object, adjust the thickness setting in the vellum constraint tabs. By changing the stiffness parameter you can adjust the bend of the cloth object. The thickness of your cloth should be larger than your pscale attribute(if you are using it), and the same length as your edge length, or slightly smaller.
To make your cloth less rubber-like, change the stretch and bend damping ratios up to 5.
If you are creating a high-res cloth sim you'll need to start adjusting the constraints based on how many points are contained in the cloth object. If there are 200 points in your cloth, there should be 200 constraint iterations. etc.
If you are dealing with multiple layers of cloth in your simulation. For example; a dress. You will have to use something called a layer shock parameter. The bottom layer of cloth should be the heaviest, and the weight should be reduced as the layers move outward.
Vellum Hair Tricks
Vellum hair allows you to select a piece of geometry and turn it into a fur,hair, or any strand based simulation.
Increasing the Bend Stiffness and decreasing bend Damping parameter will cause your hair simulation to become more stiff, and stay still in the direction it is facing. A few more ways to create stiff hairs is to create as few hair segments as possible, and to keep the constraint iterations as high. The higher the number, the more stiff the hair will become.
By adjusting the Constraint String Type on the Vellum Constraint SOP, you can adjust the bend by angle on your hair strands.
Damping is always set incredibly low by default for Vellum hair, increasing this value will help increase better results in your simulation.
Remember, if you are creating any type of hair that is attached to a human, animal, etc; you also need to create the roots of the hair that it is attached to. Otherwise, your hair will not move or stay attached to your object as expected. You can do this by placing down a group expression SOP, and grouping the points that the hairs are emitting from.
For long hair simulations self collisions can be turned off. By keeping self collisions on, the results my be more chaotic. Glue instead, can be used as it's replacement. By using Glue you can also create more realistic fur/hair clumping effects.
If you would like to see the Glue stress ratio on your hair simulation, you can visualize this. This can be useful to problem solve any hair breakage issues you may have.
For short hair, you may have issues of seeing the scalp or skin through your simulation. Or the strands not covering enough of your character or geo. One way to fix this is to create a wrangle to control the stiffness falloff of your hair sim. You can also do the same to control other vellum attributes, the glue, or constraints.
Problem Solving Geometry Issues with Vellum
Some problems may happen when you work with vellum. Particularly with your geometry. While creating your simulation, you may notice that if you subdivide your simulation geometry, it may start to create more chaos in your simulation. This is because vellum looks for the points of the previous frame to calculate the rest of the simulation. The subdivide SOP will generate different point numbers if the geometry changes, or if the geometry moves. The subdivide can also mess with the id attributes of your geometry. Therefore causing more pain.
I'd recommend adding a time-shift SOP after your geometry, and before your vellum nodes to check to see if your geometry works with your simulation. If it doesn't, check to see if you have any mismatching id attributes or any other attributes on your geometry that are conflicting with your vellum simulation. You can also use a match topology SOP to make your point numbers the same each frame.
Double check to see if the pscale on your geometry is the correct size or is smaller than your edge length. Vellum as mentioned before, sometimes has issues with pscale values.
Vellum uses continuous collision detection to operate, and it uses the points of the previous frame to calculate the simulation as mentioned above. If your points are randomized every frame then vellum with refuse to operate.
Substeps Vs Constraint Iterations
So which is is better? Constraint iterations or substeps?
lets try and figure it out.
Substeps are designed to break a frame into smaller steps for
Think of the substeps as an add overall iteration button.
The number of substeps should be equal to the number of edge
that are in the simulation geometry. This can be a rough estimate.
Constraint iterations are designed to create the bend and stretch forces and constraints passes on your simulation.
The higher the number the more stiff your simulation will become. A good starting number for your iterations is to calculate the diameter of your simulation object, and use that number as your constraint iteration minimum.
So what should you adjust first, and how will substeps and iterations affect each other?
I usually start with adjusting my constraint iterations first, depending on which type of vellum simulation I am attempting. As useful as substeps are, they slow down the loading,play-blasting, and simming of your project. This isn't really great if you quickly need to preview what you've just created. Therefore, I try and focus on the forces I know I need first, than the stepping process of my simulation.
Another thing to note is that every time you increase your substeps, the amount of forces applied to your simulation gets reduced. Which is why if you start with high substeps, your forces applied may appear odd.
Houdini's default for constraint iterations is 10. However, it is likely you will need more. If you need a default number per setup to work from, 100 is usually a good place to start.