Houdini 20.0 Nodes Geometry nodes

Fill (layout brush) geometry node

Lets you draw shapes and fill them with scattered assets.

This node type is hidden. It is no longer supported.

This node is designed to customize the behavior of the Layout LOP. See the help for Layout for more information.

Parameters

Brush

Mode

The kind of shape you draw in the viewer. When you finish drawing a shape, the brush fills it with assets, using the parameters on the Scatter tab.

Grid

Click to place one corner of a rectangle, then drag to or click to place the adjacent corner, then click to place the opposite corner.

Circle

Press to place the center of a circle, and drag out to define the circle’s radius.

Lasso

Drag to draw the outline of a freeform shape.

Snap to Input

When this is on, snap assets to the intersected surface using the Up direction below.

Up

Sets the up direction of assets created to fill the

Scatter

Coverage

This is a scale on the density set below.

Point Count Method

How to control the density of the scattered instances.

By Size

???

By Density

???

By Point Spacing

???

Number of Points

Randomly scatter a fixed number of points inside the fill shape.

Orientation

The parameters on this tab control attributes on the points that specify how to scale and orient the objects that will be copied/instanced onto the points, such as with Copy to Points.

The best way to use these parameters is to set up your copying/instancing network to copy the objects onto the points, then select this node and tweak the parameters, so you can see how they affect the copied/instanced objects.

Alignment

By default, Houdini expects instance geometry to be modeled so that the “up” direction (for example, from the root of a tree to the top) is along the +Y axis, and the “forward” direction (for example, from the back of a car to the front) is along the +Z axis. You can modify this using the parameters in the “Alignment” group below.

Normal Direction

The axis of the instanced objects to map onto the surface normal direction. The default is “Y” (so instance geometry modeled with “up” along +Y will “stick up” from the surface).

X

Maps the initial X direction to the oriented normals.

Y

Maps the initial Y direction to the oriented normals.

Z

Maps the initial Z direction to the oriented normals.

Custom

Maps the direction specified by the Custom Normal Vector to the oriented normals.

Custom Normal Vector

When Normal Direction is Custom, the node will map this custom vector to the surface normal at each point.

Forward Direction

The axis of the instanced objects to map onto the Target Forward Vector below. This controls how the instanced geometry rotates around the surface normal direction.

X

Aligns the X direction with the Target Forward Vector.

Y

Aligns the Y direction with the Target Forward Vector.

Z

Aligns the Z direction with the Target Forward Vector.

Custom

Aligns the custom vector specified by Custom Forward Vector with the Target Forward Vector.

Custom Forward Direction

When Forward Direction is Custom, this is the direction to align with the Target Forward Vector.

Target Forward Vector

This is the direction that the Forward Direction will be pointed in after mapping the Normal Direction to the surface normals.

No Target

Does not align the Forward Direction with any given direction.

X

Align the Forward Direction with the X direction.

Y

Align the Forward Direction with the Y direction.

Z

Align the Forward Direction with the Z direction.

Custom

Align the Forward Direction with the custom direction specified by the Custom Forward Vector.

Attribute

Align the Forward Direction on each point individually with the direction specified by the point attribute Target Forward Attribute.

Custom Forward Vector

When Target Forward Vector is Custom, this defines the direction that the Forward Direction is aligned with.

Target Forward Attribute

When Target Forward Vector is Attribute, this is the name of a vector attribute on the surface that controls the forward direction at each point.

Blend Normals

When the checkbox next to Blend Normals With is on, the node will blend the “up” direction of the instances by a certain amount away from the surface normal direction toward the Blend Target direction.

Blend Normals With

Blends the “up” direction of the instances away from the surface normal direction toward this direction.

For example, if all instances are pointing “up” away from the surface, and you set this to “Z” and the Amount to 1.0, the instances will point tangent to the surface instead of away from the surface.

X

Blends normals toward the X direction.

Y

Blends normals toward the Y direction.

Z

Blends normals toward the Z direction.

Custom

Blends normals toward the custom direction specified by the Custom Target.

Attribute

Blends normals toward the direction specified on each point by the Blend Target Attribute.

Custom Target

When Blend Target is Custom, this is the direction to blend the point normals toward.

Blend Target Attribute

When Blend Target is Attribute, this is the name of an attribute containing the direction vector to blend the point normals toward.

Amount

The amount to blend the point normal direction with the target direction. 0.0 just uses the normals. 1.0 just uses the target direction. Values in between blend between the point normals and the target direction.

Scale Blend by Attribute

Whether to scale the blending Amount by an attribute on the input geometry.

Blend Attribute

The name of an attribute on the surface to use to scale the blending Amount for each point.

Rotation
All instances with “up” direction pointing along surface normal.
Randomly rotated away from default up direction by up to 30 degrees.

Max Random Cone Angle

Rotates each instance away from the default “up” direction by a certain amount, up to this maximum number of degrees. This creates variation in the orientation of the instances.

Scale Cone by Attribute

If you set the popup menu next to Max Random Cone Angle to Scale by attribute, you can scale the maximum random angle change using an attribute on the surface.

Cone Angle Attribute

When the popup menu next to Max Random Cone Angle is set to Scale by attribute, this is the name of an attribute on the surface to use to scale the Max Random Cone Angle.

Rotation Around Normal

The following parameters control how the node rotates the instances around the “up” direction.

All instances with “forward” direction pointing the same way.
Randomly rotated around the “up” pivot, from 0 to 360 degrees.

Min Angle

The minimum angle to be generated randomly.

Max Angle

The maximum angle to be generated randomly.

Round Rotation Around Normal

Whether to round the sampled random angle to the closest integer multiple of Round to Multiple Of.

Round to Multiple Of

The value to round the sampled random angle to the closest integer multiple of. For example, if you are instancing buildings, you can rotate them but keep them aligned by only allowing them to rotate 90 degrees at a time.

Offset Angle

This is the offset angle to rotate each point around its normal vector after the random part of the rotation has been determined.

Scale Offset Angle by Attribute

Whether to scale the Offset Angle on each point by an attribute.

Offset Angle Attribute

An attribute specifying the factor to scale the Offset Angle by on each point.

Remap Using Distribution Ramp

Whether to use a ramp to define the inverse CDF of the probability distribution that random angles are sampled from.

Rotation Distribution Ramp

A ramp defining the inverse CDF of the probability distribution that random angles are sampled from between the Min Random Angle and the Max Random Angle.

Point Generation

This tab is not available when Mode is Add Attributes to Existing Point Cloud.

Noise

These parameters are visible when Mode is Scatter Points Around Constraint Points.

Add Scatter Noise

Whether to add noise to the scattered point positions before influencing points to be near the constraint points.

Roughness

When Add scatter noise is on, this controls the influence falloff for each successive noise layer.

Amplitude

When Add scatter noise is on, this is the maximum displacement added to the points by the noise.

Element Size

When Add scatter noise is on, this is the base feature size of the generated noise.

Relaxation

The node scatters the new points, then iteratively moves the points to satisfy spacing and other constraints. This iterative process is called relaxation.

Relax Iterations

The number of relax iterations to apply to the points. More iterations are slower but can give better positioning of the points.

Remove Overlapping

Whether to remove points that are too close to one another to preserve spacing constraints.

Scattering around constraint points with avoid constraint points but without remove overlapping points.
Scattering around constraint points with avoid constraint points and remove overlapping points.

Overlap Tolerance

The minimum amount of overlap allowed, as a fraction of the radius required for a point to be removed.

Avoid Constraint Points

When this is on, you can specify additional constraint points from the second input in the Constraint Point Group below. The scattered points will be pulled toward or pushed away from these constraint points during relaxation, based on each constraint point’s pscale attribute.

Scattering around constraint points without avoid constraint points or remove overlapping points.
Scattering around constraint points with avoid constraint points and remove overlapping points.

Constraint Point Group

When Avoid constraint points is on, this is the group of points in the second input that repel or attract the scattered points. The pscale attribute on each constraint point controls how strongly the point repels the scattered points (if pscale is positive), or attracts them (if pscale is negative). Leave this blank to use all existing points in the second input. To select points by the tag attribute, use the @tag=name group syntax.

Radius Scale

Scales the pscale attribute on the points in the Constraint Point Group above.

Use Emergency Limit

Turn on the checkbox next to Emergency Limit to prevent the node from creating more than a certain maximum number of points.

Emergency Limit

The maximum number of points this node is allowed to generate. If you accidentally set some combination of parameters that causes a huge spike in point density, this can prevent the node from cooking for an extremely long time, or running out of memory. This is especially useful in batch processing where a human is not available to press ⎋ Esc to cancel an over-long cook.

Attributes

Use Prim Num Attribute

Turn this checkbox on to create an attribute on the scattered points containing the primitive number of the corresponding primitive (polygon face) on the surface.

Prim Num Attribute

The name of an attribute to create on the scattered points containing the primitive number of the corresponding primitive (polygon face) on the surface.

Use Prim UVW Attribute

Turn this checkbox on to create an attribute on the scattered points containing the corresponding UVW coordinates on the surface.

Prim UVW Attribute

The name of an attribute to create on the scattered points containing the corresponding UVW coordinates on the surface.

Output Radius Attribute

Turn this checkbox on to create an attribute on the scattered points containing the radius of the point (this will affect the object size when you copy/instance onto the points).

Radius Attribute

The name of an attribute to create on the scattered points containing the point radius (this will affect the object size when you copy/instance onto the points). This is on by default with the name pscale (this is Houdini’s standard instancing attribute for point scale).

Output Orient Attribute

Turn this checkbox on to create an attribute on the scattered points containing the orientation matrix of the point (this will affect the object orientation when you copy/instance onto the points).

Orient Attribute

The name of an attribute to create on the scattered points containing the orientation matrix of the point (this will affect the object orientation when you copy/instance onto the points). This is on by default with the name orient (this is one of Houdini’s standard instancing attributes for orientation).

Surface Point Attributes

A space-separated list of point attributes to copy from the surface onto the scattered points. For example, if the surface has point colors, you can specify Cd to transfer the surface color onto the scattered points. The default is *, meaning transfer all point attributes.

Surface Vertex Attributes

A space-separated list of vertex attributes to copy from the surface onto the scattered points. The default is *, meaning transfer all vertex attributes.

Surface Primitive Attributes

A space-separated list of primitive (polygon face) attributes to copy from the surface onto the scattered points. The default is empty, meaning transfer no primitive attributes.

Surface Detail Attributes

A space-separated list of detail (whole geometry) attributes to copy from the surface onto the scattered points. The default is empty, meaning transfer no detail attributes.

Match Groups

When enabled, groups matching the Surface Point Attributes, Surface Vertex Attributes, and Surface Primitive Attributes patterns will be copied from the surface onto the scattered points.

Assets

Uniform Scale

Apply this scale to every instanced asset. This can be useful when the assets were modelled at a different scale than the scene you are scattering them into.

Normalize Assets

id: normalizeassets

???

Mode

How the brush picks the assets to instance onto the filled points.

Cycle

Cycle through the working set assets while iterating over each scattered point. This results in a more even distribution of all the assets in the working set than Random.

Patches

Break the fill shape into random cellular patches (using a Worley noise function) and fill each patch with the same asset.

Noise

Assign assets to points based on the pattern generated by a noise function.

Random

Pick a random asset from the working set to instance onto each point.

VEXpression

Assign assets to points based on the result of one or more VEX expressions.

Pieces

Shuffle Pieces

Randomly re-assign which assets are assigned to the different points/patches. If Mode is Cycle or Random, this will appear to simply re-randomize the points. When Mode is Patches or Noise or VEXpression, this will keep the patches/patterns created by the mode, but randomize which asset goes with each patch/pattern. Note that you can use Offset (below) to change the assets non-randomly.

Seed

When Shuffle pieces is on, the random number seed to use for shuffling. Changing this number will give a different “random” outcome. For example, if you want different orderings in each frame, set the seed to $F (the current frame number).

Offset

Like Shuffle Pieces (above), but instead of re-assigning assets randomly, it shifts each asset to the next one in order in the working set. (Note that you can use this and Shuffle Pieces at the same time to both shuffle and offset the asset choices.) This can be useful if the order of your working set has meaning (for example, if it goes from big assets to small assets), or if you just want to try some different outcomes to see how they look.

Patches

These parameters are visible when Mode is Patches.

Patch Size

Controls the average size of the patches.

Scale

Allows you to control the average height, width, and depth of the patches separately.

Patch Offset

Moves the noise field relative to the points.

Distortion

These parameters can optionally add distortion on top of the base noise pattern.

Strength

The strength of distortion to add.

Size

The size of the distortion.

Roughness

The roughness of the distortion.

Offset

An offset added to the center of the distortion map.

Noise

These parameters are visible when Mode is Noise.

Noise Type

The function to use to generate the noise field. The node uses the point positions as the seed for the random number generator.

Element Size

Controls the size of the noise features.

Element Scale

Allows you to control the height, width, and depth of the noise features separately.

Offset

Moves the noise field relative to the points.

Max Octaves

The number of combined noise layers.

Roughness

The influence falloff for each successive noise layer.

Distortion

These parameters can optionally add distortion on top of the base noise pattern.

Lattice Warp

Adds “stringiness” or “wiriness” to standard noise.

Freq

The frequency of the Lattice Warp.

Gradient Warp

Widens the peaks or valleys of the noise output.

Remap Noise

A ramp used to remap noise values.

Random

These parameters are visible when Mode is Random.

Weight Method

The way of specifying the weight that each piece is given.

Uniform Distribution

Each piece is equally likely.

Piece Weights

Give each piece a weighting using a multiparm, allowing you to make some pieces more likely than others.

If you choose this option, click the Autofill Pieces button to automatically set up the multiparm based on the pieces in the second input.

Weight Attribute

Use a primitive float attribute on the piece geometry that sets the piece’s random weighting. The weighting for a piece is the average of this attribute’s values across the primitives of the piece.

Seed

When Weight Method is not Uniform, this is the seed value for the random number generator that chooses between weighted alternatives.

Autofill Pieces

When Weight Method is Piece Weights, click this button to automatically set up the multiparm based on the pieces in the second input.

A button that will automatically fill out the Number of Assets and Piece parameters such that each unique piece in the geometry is included in the list.

Number of Pieces

The number of pieces to specify weights for in the multiparm.

Piece

The attribute value for this piece.

Weight

A value representing how likely this piece is to appear in the chain, relative to other pieces. The weights of all pieces are normalized to add up to 1.0 and then used as probabilities. For example, if three pieces have weights of 1, 1, and 2, the last piece is likely to appear 50% of the time, while the other two are each likely to appear 25% of the time.

Weight Attribute

When Mode is Weight Attribute, the name of a primitive float attribute on the piece geometry that sets the piece’s random weighting. The weighting for a piece is the average of this attribute’s values across the primitives of the piece.

VEXpression

Number of VEXpressions

The number of VEX expressions to test.

Enable piece

Use the checkbox next to each expression to control whether it is used or not.

Piece

The name of the piece to assign to points where the expression returns true. If you enter a space-separated list of piece names, the node will choose one randomly.

VEXpression

The VEX expression to run for each point. If the expression evaluates to a non-zero value, it “matches” the point and the corresponding piece will be assigned to the point.

Unmatched Piece

When none of the rules in the multiparm match, use this piece. If you enter a space-separated list of piece names, the node will choose one randomly.

Use Unmatched Group

Turn on the checkbox next to Unmatched group to create a group in the output containing any unmatched points.

Unmatched Group

Turn on the checkbox and enter a group name to create a group in the output containing any unmatched points.

Seed

The seed value for the random number generator for when the node chooses between alternatives.

See also

Geometry nodes