Vellum Sink

Tips

You can simulate interactions between Vellum fluids and Vellum grains or Vellum cloth, for example. Vellum hair is currently not supported.

Intersections

Transfer sim to the original geo

To precisely transfer Vellum animation back onto the original (hi-res) mesh you can use either PointDeform or simply AttribCopy. PointDeform requires point ids on the input for exact matching, but creating the i@id attribute intrudes into the Vellum calculations, that can lead to problems such as geo explosions.

Use case:

Tetrahedral softbody (wip yet):

  1. If the geo is fractured, store i@matchid point attribute i@pmatchid = @ptnum + 1 on the welded sides to match exact point pairs to fuse with Fuse node
  2. Store i@pid point attribute i@pid = @ptnum + 1 on the original geo
  3. Tetrahedralize with TetConform
  4. Tetrahedralization will preserve the attribute on the original points, but it will add new inner points (with pid = 0 default value)
  5. If the geo is fractured, now store the piece attribute (from the connectivity) after tetrahedralization, so that all inner points have it as well
  6. Fill them with something like i@pid = (i@pid==0) ? @ptnum + 50000 : i@pid; to avoid duplicate pid values
  7. Simulate
  8. Rename @pid to @id
  9. PointDeform
  10. Create point group tofuse by @pmatchid>0
  11. Fuse this group, matching points by @matchidattribute (equal mode)
  12. Subdivide

Or much simpler, if the topology allows:

  1. Use AttribCopy to transfer P attribute (and any other required) matching points by pid attribute.
  2. Fuse if the geo fractured and fusing is required the same way as 11 above

Chaining vellum solvers

Minimal solver

If minimal solver is present in the chain (first in my case) then Attach to geometry constraint (probably along with some others) won't work. The reason is it requires the target geo to be present in the collider stream as geo, not as volume (as the minimal solver requires). Break the the collider stream into segments for each next solver, feed the volume collider directly into the minimal solver.
Moreover, the volume colliders won't be visible in the following solvers' collision visualizations.

Invalid particles

When chaining Vellum fluid solvers one into another (from the initial state to the actual simulation for example), the next Vellum solver tends to flag the chunks of intersecting particles as invalid, which causes a significant volume loss. In my experience the best way is to use the Minimal solver to initialize the fluid, this way it's easier to avoid particle intersections.

Caching

VellumIO

The third input wires directly to the third output and is not cached to disk.

Scale

Vellum fluids don't seem to like anything of below 0.1 m scale. Upscale the setup. That will also make it faster.