Houdini 20.0 Nodes Geometry nodes

Vellum Configure Grain geometry node

Configures geometry for Vellum Grain constraints.

Since 17.0

The Vellum Configure Grain SOP configures the incoming geometry to be solved as grains or fluid in the Vellum Solver system. The two main options are either to convert the incoming geometry into points by treating it as a volume and filling it with grains or fluid particles; or tag existing points on the input to have grain-like behavior.


Grains and fluid often require more substeps than other Vellum constraint types. It is recommended any attached Vellum solver be raised to at least 5 substeps for stability.


For more control over filling a volume with grains, look at the Grain Source node.


Create Points from Volume

Treat the incoming geometry as a closed volume and fill it with points. These points are then configured as grains or fluid, according to the Type parameter.


The subset of incoming points to configure for grain-like interaction.

Group Type

In case the group is named or numeric, this can disambiguate what type of group it is.

Use Convex Hull

Create points inside the convex hull of the input geometry.


Controls the method used for creating points. Regular Grid creates a regular grid of particles that can be jittered with Jitter Scale. Sphere Packing scatters points within the volume and adjusts their positions to avoid overlap.


The type of particle to create: Grain or Fluid.

Particle Size

Diameter of the particles. The pscale attribute will be set to one half this.

Packing Density

Allows for over packing of the input geometry. Increasing this value helps fill the volume completely with Fluid particles. However, Grain particles might be packed too close together for values over 1, causing an initial expansion during the simulation.

Jitter Scale

Controls jittering of point positions.

Because relaxation can never accurately separate all particles, note that the final pscale will be reduced to minimize overlap.

Dither Surface

If a uniform lattice of points is being built, then the surface layer will exhibit terracing as points cross the boundary. This dithers the points, comparing the distance to the cut-off threshold with a random number to see if the point should be kept. This causes points to be kept outside of the threshold, as it expands half a grid scale in both directions. Turning this on will result in a more randomized surface layer.

Dither Normal

Often an object has one face that is free, and the other faces are constrained by collisions. If you don’t want to dither the colliding faces (as particles may be generated outside of the collision range, or holes made that will collapse) you can use this normal and the angle to specify which regions of the source are available for dithering. The geometric normal of the SDF built from the surface is used, not any normal attribute on the incoming geometry.

Dither Angle

How many degrees away from the dither normal is eligible for dithering. Setting this value to 180 will cause all faces to be dithered.


The crossing point of the SDF values that is considered the surface.

Max Radius Scale

The largest sphere can be larger than the Particle Size up to this specified scale. Note that enabling this parameter can create non-uniform radius particles.

Min Spheres

At least this many spheres must be generated. Note that three particles are required to get plausible rotations in a simulation.

Max Spheres

No more than this number of spheres are generated.

Point Count

Maximum number of interior points to consider for the sphere placement.


When enabled, spheres will be allowed to overlap/intersect.

Physical Attributes


The method used for computing particle mass. Set Uniform will set all particles to the specified mass. Calculate Uniform will compute the particle mass based on the Density parameter.


The density of the material used for computing particle mass when Mass is set to Calculate Uniform.


When Type is set to Fluid, identifies the phase of the fluid. Fluids set to different phases will solve for viscosity and surface tension separately, giving the appearance of separate fluids.


Sets the viscosity point attribute, which acts as a multiplier on the Viscosity parameter on the Vellum Solver.

Surface Tension

Sets the surfacetension point attribute, which acts as a multiplier on the Surface Tension parameter on the Vellum Solver.


Sets the friction point attribute, which acts as a multiplier on the Friction parameter on the Vellum Solver.


Sets the dynamicfriction point attribute, which acts as a multiplier on the Dynamic Friction parameter on the Vellum Solver.

Attraction Weight

Sets the attractionweight point attribute, which acts as a multiplier on the Attraction Weight parameter on the Vellum Solver.

Replusion Weight

Sets the replusionweight point attribute, which acts as a multiplier on the Replusion Weight parameter on the Vellum Solver.

Define Pieces

Split the object into disjoint pieces when generating particles.

From Attribute

This integer or string attribute’s unique values are used to define each piece.

From Connectivity

Connectivity of the input geometry is used to define the pieces.

Transfer Piece Attribute

When Define Pieces is enabled, output the source piece attribute to each generated particle.

Display as Spheres

Adds a detail attribute so the grains will display as lit spheres in the viewport.

Add Sprite Material

Adds a sprite material so the grains will display as spheres in the viewport.

Show All Points

Points that are attached to primitives do not draw their sprites by default. This will cause them to still draw the sprite, useful if combining two constraint types within the same point.

See also

Geometry nodes