Houdini 16.5 Nodes Particle nodes

Group POP node

Creates and/or combines named groups of particles.

On this page

This operator creates groups of particles which you can then reference in subsequent nodes, allowing you to apply node effects to a subset of the entire particle system.

Grouping rules

Unlike other types (such as surfaces), particle grouping using the Combine tab applies to all active particles, not just particles in the current branch of the operator hierarchy.

In the example network, initial_group defines an initial group (using the rule $LIFE < .4), and a firsttrail group using the Combine tab to specify a second group containing any particles not in the initial group (using the rule firsttrail = !initial).

Because this branch is eventually merged with another branch (at collect1), the Combine rule will apply to all particles in both branches, and so the firsttrail group will also include particles generated by source2, which is probably not what you wanted.

To work around this, use two separate Group operators to create the two groups. In this example, the initial_group node creates the initial group with rule $LIFE < .4 and the initial_group2 node creates the firsttrail group with rule $LIFE >= .4 (that is, the logical inverse of the rule for initial).

Parameters

Activation

Turns the POP on and off.

Create

Source Group

Subset of points to act on.

Group Name

Name of the new group to create from the points.

Preserve Group

Append particles to the group if it already exists, instead of replacing its contents.

Rule

Enable

Turning on this checkbox puts particles in the new group based on an expression.

Predefined rules

Use the items in this menu to fill in the Rule field with a predefined, commonly-used rule.

Note

The list of predefined rules is specified by $HFS/houdini/POPGroupRules.

Particle is dead

The particle is dead.

Particle is stopped

The particle is flagged as being stopped. This is not the same as a particle having zero velocity.

Particle just collided

The particle collided in this timestep. See the definition of the $JUSTHIT local variable.

Particle has collided

An input particle has collided at any point in the past.

Rule

An expression to evaluate for each input particle. If the expression evaluates to true (that is, non-zero) for a particle, the operator puts the particle in the new group.

Bounding

Enable

Turning on this checkbox puts particles in the new group if they are inside a bounding volume.

Bounding Type

The shape of the bounding volume.

Bounding box

Group particles inside the box defined by the Center and Size parameters below.

Bounding sphere

Group particles inside the ovoid defined by the Center and Size parameters below.

Bounding object

Group particles inside the volume of the surface specified in the SOP parameter below. The behavior of this option is undefined if the surface is not closed.

Bounding metaball

Group particles inside the volume of the metaball specified in the SOP parameter below, at densities at or above the Density minimum parameter below.

Center

Center of bounding box/sphere, when Bounding type is "Bounding box" or "Bounding sphere".

Size

Size of bounding box/sphere, when Bounding type is "Bounding box" or "Bounding sphere".

SOP

Sop containing geometry to use as bounding volume, when Bounding type is "Bounding object" or "Bounding metaball".

Ignore Transform Object

When this option is off, the geometry will automatically be transformed into the space of the object using this POP network. When this option is on, the geometry is not transformed.

Density Minimum

When Bounding type is "Bounding metaball", only consider the point to be inside the metaball volume if the density is at or above this value.

Generator

Enable

Turning on this checkbox puts particles created by certain generators in the new group.

Generators

Group particles that were originally generated by these generators. This field can contain a space separated list of paths and/or patterns specifying generator nodes.

Random

Enable

Turning on this checkbox sorts particles into groups.

Number of Groups

Number of groups to create. The groups will use the name in the Group name parameter with a number on the end.

For example, if the Group name is Flock and 5 groups are requested, the operator will create groups Flock1, Flock2, Flock3, Flock4 and Flock5 and the particles will be randomly distributed into the 5 new groups.

Group Index

Sets the group the particle will be placed into. Normally, particles are sorted into groups in order (the first particle goes into the first group, etc.). You can use a custom expression here to manually determine which group number each particle goes into. If the expression evaluates to a number greater than the value in # of Groups, the number wraps around (that is, the value of the expression is modulo the number of groups).

This has several advantages:

  • You can use some criterion other than particle order to sort the particles into groups, so particles dying will not shift the group membership of other particles.

  • You can use the rand function to sort the particles into groups pseudo-randomly.

Instances

Enable

Turning on this checkbox puts particles in the new group based on the value of their instance attributes.

Instances

Groups particles whose instance attribute matches a value in this list.

Combine

The parameters on this tab let you create a group that is a combination of existing groups, based on boolean operators and combination methods.

Enter the name of the new group to create in the left-hand field on the first row, and the name of the group from which to take particles in the right-hand field (or select Equals All But if you want to start with particles not in the right-hand group).

Once you set up the top row, additional rows become available to further combine and/or filter the contents of the new group.

(top row)

On the left-hand side, enter the name of the new, combined/filtered group to create.

On the right-hand side, enter the name of the group from which to take particles (or select Equals All But if you want to start with particles not in the right-hand group).

(additional rows)

On the right-hand side, enter the name of another group of particles you want to combine with or filter from the new group.

Use the menu on the left side to choose how to combine/filter the groups.

Select With All But if you want to use the complement of the specified group in the operation.

None

Do not use this row.

Union (Or)

Add this group to the new group.

Intersect (And)

The new group will only contain particles that are also in this group.

Exclusive Or

Add this group to the new group, but eliminate particles that are in both groups.

Subtraction

The new group will not contain any particles that are also in this group.

Select

Select group in detail

Select the particles in the group specified by the Select Group parameter below. This highlights the particles in the viewer.

Select Group

Select this group, when Select group in detail is on.

Locals

Standard POP local variables

AGE

The seconds a particle in the template has been alive.

AX AY AZ

Acceleration of the particle.

BBX BBY BBZ

The point’s relative position in the bounding box.

DEAD

Point is dead.

ITER

Processing iteration number.

JUSTHIT

A collision for this particle was detected (for example, by the Collision POP) during the processing of this timestep (that is, this iteration of the particle simulation). This variable is cleared at the beginning of each timestep. Note that the collision POP actually detects any collisions which would have occurred the during the previous frame.

LIFE

Percent of total life used (from 0 to 1).

LIFESPAN

Expected lifetime of particle.

MAPU MAPV MAPW

Point or vertex texture coordinates.

NPT

Total number of points.

NGRP

Total number of points in source group.

NX NY NZ

Normal vector.

PT

The point number of the currently processed point. The PT is not constant like ID; it changes based on the number of points.

RESTX RESTY RESTZ

The rest position.

SLIDING

The sliding state of the particle.

SPRINGK

Elasticity of a point.

STOPPED

Point is stopped.

STUCK

1 if particle is stuck to a collision object.

TENSION

Spring tension.

TIMEINC

Time increment.

TX TY TZ

Point position.

U V

Surface UV values.

VX VY VZ

Velocity direction.

WEIGHT

Point spline weight.

Added by Collision POP/Limit POP

DIST

Distance from particle to last collision.

HCR HCG HCB

Diffuse color at the collision point on the surface the particle collided with.

HITID

ID for last collision. You can control how this attribute is set in the Collision or Limit POP to help distinguish types of collisions.

HITTIME

The time at which the last collision occurred.

HMAPU HMAPV

The texture map UV coordinates for the surface location where the last collision occurred.

HNX HNY HNZ

The normal at the surface location where the last collision occurred.

HTX HTY HTZ

World space position of the last collision.

HU HV

The UV coordinates for the surface location where the last collision occurred.

NUMHIT

Number of times the particle has collided.

Added by Color POP

CA

Point or vertex alpha value.

CR CG CB

Diffuse point or vertex color.

Added by Property POP

ATTRACT

Attractor point.

CHARGE

Charge of the particle.

CLING

Point is clinging to geometry.

DRAG

Point drag.

FOLLOW

Leader to follow.

MASS

Point mass.

PSCALE

Particle Scale.

SCALEX SCALEY SCALEZ

Non-uniform scale.

Added by Proximity POP

NEAREST

Either the point number or id of the particle nearest to this one.

NEARESTDIST

The distance to the nearest particle.

NUMPROXIMITY

The number of particles within a specified proximity to this particle.

Added by Rotation POP

ROTA

Rotation angle.

ROTX ROTY ROTZ

Rotation axis.

Added by Source POP

GEN

Generation.

ID

ID number, which always remains constant.

ORIGIN

Original Source point was birthed from.

PARENT

Parent’s ID Number.

Added by Speed Limit POP

SPEEDMAX

Maximum speed.

SPEEDMIN

Minimum speed.

Added by Sprite POP

SROT

Sprite rotation around view axis (in degrees).

STEXU STEXV

Texture coordinate of sprite’s lower-left corner.

STEXW STEXH

Size of sprite in texture space.

SX SY

Sprite scale.

Controlled by Suppress Rule POP

SUPPPOS

Suppress default position rule.

SUPPVEL

Suppress default velocity rule.

SUPPUP

Suppress default up-vector rule.

SUPPAGE

Suppress default aging rule.

SUPPROT

1 if particle is suppressing its default rotation rule.

SUPPANGVEL

1 if particle is suppressing its default angular velocity rule.

Added by Up Vector POP

PVX PVY PVZ

Previous velocity.

UPX UPY UPZ

Up vector.

Added by Location, Source, Softbody, Split POPs

SPEED

Absolute speed of particle.

Particle nodes