Simulation in Houdini vellum, solver basics

Simulation in Houdini Vellum, simple notes, concepts and terminology 

Vellum general –  Its a continuations PBD ( point based dynamics ) technology now XPBD, applies constraints on a per point bases. There are 3 types major types of constraints, these form more complex constraints and other presets.

  1. Distance based  like Cloth
  2. Rotational based like Distance along edge
  3. Volume based  like Pressure

Simulation in Houdini Vellum basically works by relaxing each point constraint by constraint – thats why iterations are so important for quality.
Sub steps : are a multiplier for iterations. So lower the constraint iteration when increasing sub steps is a good rule of thumb.

 Vellum can work on two levels :

1 – Inside a DOP net – Dynamic Network

2 – In the SOP context with the Vellum Solver – SOP level Solver

A vellum object : is the definition of constraints for the Vellum Solver

The vellum constrain  :  Presets of vellum are macros for different basic setups

  • Balloon : Preset set up “cloth + pressure” – softer Preset
  • Soft body : Preset “ cloth + struts” – More rigid
  • Cloth : Cloth constraint.
  • Edge Distance : Each edge in the display geometry is turned into a distance constraint maintaining that edge length.
  • Pressure : simulated pressured body- by gas or fluid
  • Hair : Works on curves, splines and strings
  • String : Lighter weight hair constraint. They are a distance along the edge and the angle between edges. But no twist constraint is present, so the edges can spin freely.
  • Pin to target :The specified points will be pinned to the corresponding point in the target geometry. The target geometry for a Vellum solver is usually the first input, so matches the animation, but can be overridden.
  • Attach to geometry : Attaches points of the geometry to other objects, can be set to calculate the distance, can use a point selection
    • Stiffness : can be set to ( 1e10 ) == infinite stiffness.
    • Compression stiffness – how much its the object allowed to compress.
  • Stitch points: Stich back up different patches that have been fractured by edge fracture – uses a threshold to initialize tearing of the cloth.
  • Glue: Each point will search for a nearby point that is not a member of its own piece. It will construct a distance constraint holding it to that point. This is useful for building systems that automatically glue together by proximity, especially when combined with breaking.
  • Tetrahedral volume : Each tetrahedron is turned into a constraint to maintain the volume of the tetrahedra. Note this does not include any shear or stretch constraints – additional distance constraints need to be added to make a proper softbody.
  • Struts : Creates inside structure that hold together the interior of the shape. Each point will search for a distant point that is of its own piece, but which it has a straight line-of-sight to. It will build a distance constraint to that point. This constructs a large number of toothpick like internal struts that give an object stiffness and volume without the expense of a fully FEM solve.

The vellum solver : can be used in SOP or DOP, level here we set parameters for the simulation like Sub steps Iterations on a per point bases and so on. The vellum grain – Vellum as an extension of PBD can be turned into grains. POP forces can be used to manipulate the object. The vellum grain shelf tool automates the creation of a basic grain object. When the vellum grain its created automatically the “ Vellum Solver” sub-steps are increased to 5 because grains need more accuracy to begin with.

Simulation in Houdini  Vellum Workflows 

Workflow 1 – SOP

  1. Geometry can be fed into a “vellum constraint” – in SOP level at first input context. “Collision Geometry” can be fed into the second port of the constrain
  2. The Vellum constrain Connects down to the Vellum Solver – passes info with Constrain and Geo
  3. The Vellum Solver outputs CONSTRAINTS and GEOMETRY – this can be set to a null (OUT _GEO) to import into a DOP net
  4. Or can be fed into the first two inputs of the DOP net node, the node by default will read on input 1 – GEO input 2- CONS

Workflow 2 – DOP

  1. At geometry level any object can be made “Vellum” by using a preset
  2. This brings vellum into the DOP net as imported data
  3. It uses OUT and CONS nulls to send info into the DOP net and read by a Vellum Source
  4. The benefits of this its for example – “ Vellum Source “ can be set to continuous activation to work as a “Particle Emitter”
  5. A simple expression can be set to activate every 10 frames using HSCRIPT and Modulo like this
  6. Activation = $FF%10==1
  7. Rotation random  = 360*rand($FF) == one rotation degree every frame * 10 for speed

The Vellum object : its use to point to the SOP paths for general setup.

The vellum source : will source the Constraints Info to be used in DOP net.

  • Vellum source should point to the correct SOP path, and GEO-SOP path of the “Vellum Object” must be switched off

Simple Cloth : This preset is a unified cloth simulator simplified to create fast cloths, Its geometry based approach makes it very fast, no simulations are created by this method, has forces built in like wind and turbulence .

Cloth tearing : geometry must be fractured first with a “Edge Fracture” node, create individual pieces, this GEO goes into a “ Cloth Configuration”Apply a constraint to “Vellum stitch points” stich the pieces back on – Turn on “breaking” to allow the setting of a threshold to tear or not.

Pipeline – Vellum I/O

“Vellum Post process” – This node allow for post simulation refinement like

  • SDS – Sub division post sim
  • Collision correction
  • Extrude Thickness– Created a thick layer of cloth in post process

Surface collider” –  its a lightweight static collision object, it has no VDB implementation for speed optimization / is less accurate than other collision detection object like the “Ground Plain”

A “Point wrangle” can operate on poins before the vellum”OUT null” to set initialization attributes.