General

Vellum is a simulation framework that uses an extended Position Based Dynamics approach. It can be used to create many different things including cloth, hair, softbodies, balloons, and grains. The main advantage of a Position Based Approach is its controllability, stability, and ability to produce believable results quickly.

Graph Coloring

  • Graph Coloring
    • Graph coloring is a process where the primitives are segmented into non overlapping sets, where no set shares points. This is done so that the points can be operated to in parallell. This way we can send the data to the GPU and we know we can operate on the data without any conflicts.
      • Implemented in OpenCL (OpenCl Sop)
    • Number of colors == number of GPU batches
      • In general we want low numers of colors (few sets) fewer times to send data batches to the GPU
    • They are sorted by color, this is because it is faster if the sets are closer in memory.
      • This is also the reason why we can not rely on the primnum of constraints to be consistent when operating on the constraints (with a Geomwtry Wrangle) in a vellum sim.
    • Topology changes will re-color the graph.

Solver Iterations

  • Solver Iterations
    • Constraint Iterations
      • Insufficient iterations leads to stretching or insufficient stiffness
      • Increase for higher stiffness and/or resolution
      • Substeps are better but more expensive
    • Collision Iterations
      • Interleaved with constraint iterations at a lower frequency
      • Increase when fighting against constraints or other collisions
    • Smoothing Iterations
      • Smooth out error fopr “impossible” configurations
      • Since the solve are performed in the order of the sorted graph coloring “GPU batches” that are processed later are “given” gets closer to the expexcted solve. The smoothing iterations “smoothes” out the error so that it will be more evenly distributed.

Pins & Welds

  • Hard pins & Welds
    • Are Geometry point attributes
    • Create and remove by setting point attributes:
      • weld
      • stopped
      • mass
    • Auto-breakable (welds)
  • Soft pins & stitches
    • Are constraint primitives
    • Constraints are solved to update point positions
    • Manually create and remove by creating & removing constarints (Pin, Stitch, Glue)
    • Auto-breakable / plasitcity
  • Target geometry
    • are set on the Vellum Solver
    • Avoid time-dependency if possible
      • By making use of he target sop path on the solver instead of animating the first context geometry stream making all downstream nodes time-dependent.

Animating Constraints

  • Vellum Constrint Property DOP
    • Analogous to POP Property DOP
    • Often operates on constraint primitive groups
    • Avoids changing topology / graph coloring when updating attributes
    • Provides access to ConstraintGeometry and Geometry data
    • Bind to additional inputs
    • pseudo-properties for remove and broken
  • Vellum Rest Blend SOP / DOP
    • Animate rest state with Vellum Rest Blend SOP / DOP
    • Update constraint rest state from external geometry
    • Only updates rest lengths
    • the external geo can be deforming / animated

Ref

Rest Blend

The Rest Blend allows us to use a target geo to match our restlengths with. Note that there are both a DOP and a SOP version.

  • Rest Blend
    • DOP
      • Is created inside a DOP net or Vellum SOP Solver
      • Specify which constraint groups to set the restlength for (for instance “bend stretch”)
      • Point to a SOP node to use as target. Here we can use the geo we used to setup the vellum object but we have modfied or animated the shape. The Rest Blend will match the restlength with the target.
      • Remember to set the update frequency to “each frame” if the target is animated.
      • THe vellum Rest Blend DOP is actually using the SOP version internally (in the sop solver)
    • SOP
      • The SOP version allows us to “bake in” the result of, for instance a vellum drape. In this case we leave the 4:th input not connected, so it will use “its own” restlength at the given time
      • If we give it a 4:th input the rest length will be matched to this.

Ref

Dynamic Constraints

Dynamic constraints can be created during a simulation.

  • Typically create with Vellum Constraints DOP
    • Almost identical parameters to SOP version
    • Important to create Output Group and Keep Unique turned on
    • Common dynamic constraints: Stitch, Glue, Attach, Pin
    • Also constrain geometry from different Vellum Sources
  • Use breaking and Max Distance for “sticky collision” effects
  • Create new constraint primitives
    • Replicate with custom Geometry Wrangle, if we need a custom solution we can use this
  • Removing geometry from simulation

Ref

Edge Fracture

Ref

Pressure

  • Notes
    • pressuregradient
      • Note that the vellum pressure constraint adds a point attrib called “pressuregradient”. It is the gradient (direction) in which the point has to go to increase the volume the most.

Ref

Reference

Docs

YO!

Hips