Home 

Particles

Particles are extremely useful for realistically modeling phenomena such as flocking, smoke, fire, and dust.

How to create particle systems

There is a tab on the shelf called Create Particles which allows you to create complex particle systems by simply clicking a button.

For more information on the different types of particle systems and how to create them see the following help pages:

FireWorks

Emits multi-colored particles from a point, which simulates fireworks.

Emitter

Emits particles from a point in all directions.

Source from Geometry

Emits particles from an object in all directions.

Split

Splits particles in a particle system.

How to manipulate particle systems

There is a tab on the shelf called Drive Particles which allows you to manipulate particle systems by simply clicking a button.

For more information on how to use these tools, see the following help pages:

Attractor

Attracts or repels particles using a referenced Force SOP or Point SOP.

Creep

Causes selected particles to stick to or slide along the surface of an object.

Collision

Sets attributes on and/or groups particles when they collide with geometry.

Follow

Makes particles follow a leader.

Kill

Kills particles based on expressions.

Gravity

Applies a strong downward force to particles.

Noise

Adds random force to each individual particle.

Force

Applies a directional force on particles.

Drag

Applies drag to the linear velocity of particles, which slows down the particles at every frame.

Fan

Applies a cone-shaped force to particles.

Wind

Accelerates particles up to a maximum speed.

Orbit

Calculates and applies forces necessary to make particles orbit around a centerpoint. You must choose the centerpoint in the parameter editor.

Torque

Rotates particles around another point.

Attribute Transfer

Transfers point or vertex attributes from reference geometry onto particles.

Color

Changes a particle’s diffuse color and/or alpha.

Instance

Replaces each particle with a geometric shape when it is rendered.

Render

Replaces each particle with a predefined simple shape, which you can select in the operation controls toolbar or parameter editor.

Sprite

Replaces each particle with an image, which can have transparency.

How to update the view when you change parameters

Since particle systems only run forward and are contingent on previous states, if you change a parameter in the middle of the animation, the current state of the particles will probably not be the same as if you ran the entire simulation with that setting.

For example, if you are at the midpoint of an animation and you change the velocity of particles emitted from an Emitter, the particles that have already been emitted with the old velocity setting are still in the system, and will still be moving with the old velocity.

Often this is OK, but other times you want to see the current view as it would be if the entire simulation ran with the current settings.

When the view is out of sync with the settings in this way, the Resimulate icon on the viewer toolbar becomes active .

Click the icon to recook the simulation from the beginning to the current frame with the current settings. This will usually take a few seconds, depending on how far into the animation you are, the complexity of the simulation, and the speed of your computer.

Particle concepts

Generators and streams

In a Houdini particle system, particles are created by “generator” nodes, such as Source POP (emits particles from geometry), Location POP (emits particles from a point in space), and Split POP (emits new particles from existing particles).

A generator node outputs a particle stream. You can connect the output of the generator to other nodes that modify the particles. For example, the Fan POP creates a virtual fan that blows particles around. To make the fan affect particles, you need to connect the particle stream to the Fan POP's input.

Houdini displays the output of the node with the cook flag in the viewer, just as it displays the output of the surface operator with the display flag in a geometry network. In other words, the node with the cook flag is the “final destination” of the network. The effect of any nodes after it in the stream will not be visible in the viewer.

Particle attributes

Attributes are named values stored on particles. Velocity, acceleration, color, and rotation, for example, are stored as attributes on particles. Other attributes include properties of instanced geometry, physical properties such as size and mass which help you create physical simulations with particles, and how to behave when the particle is involved in an orbit, follow, or attraction operation.

Many attributes (such as velocity) are automatically set by Houdini to reflect the current state of the particle, but you can also manually set attributes and add your own custom attributes.

The values of the various attributes are used by the default rules to update the state of the simulation at each time step (see below). So, modifying the attributes immediately changes the particle behavior. For example, if you change the v (velocity) attribute with the Velocity POP, the velocity of the particle is different in the next time step.

The other main use of attributes is to use the values of attributes in expressions to modify how various nodes work. Attributes are reflected by similarly named local variables in expressions, so the accel (acceleration) attribute is available in expressions as the $ACCEL variable. You could, for example, use an expression to make an attractor only affect particles above a certain velocity.

Surface operators (SOPs) also have a concept of attributes on points and you can create interesting effects by transferring attributes between surfaces and particles using the Attribute Transfer POP. For example, you can have particles take on the colors from a surface’s texture as they pass through the surface.

Forces

You can set up various forces to act on particles. An example of a force is gravity, which in a particle simulation you can simulate using a constant downward force. In Houdini, you can set up and control forces with the particle operators on the Drive Particles tab of the shelf. Forces modify particle attributes such as velocity and torque to change their motion.

See how to control particles with forces.

Expressions in particle nodes

It is very important to always remember that almost all expressions you enter in particle operators are evaluated per particle. This is one of the main mechanisms for individualizing particle behavior.

For example, the Color POP lets you set the color of particles. If you use expressions in the color component fields, the expressions are evaluated individually for each particle, and you can reference attributes of the particles in the expression. So, you could use set the color to -$CHARGE, 0, $CHARGE to color each particle differently according to its charge.

Time steps and rules

A simulation works by looking at the current state of the “world”, and applying rules to transform the current state into the next state. For example, if a particle has a velocity of 1 unit in the X axis, for each iteration of the simulation (or time step), the simulation should move that particle 1 unit along X.

For each time step of the simulation, Houdini cooks the nodes in the particle system, evaluating their effect on the

You can set up time-steps per frame using the Oversampling parameter on the POP Network node.

For each time step of the simulation, Houdini cooks the nodes in the particle system, evaluating their effect on the current state of the particle system.

Because particle systems work by looking at the state of the system in the current time step and updating it for the next time step, particle systems can only animate forward. If you play the animation in reverse, the particle simulation will not update.

Houdini has a number of default rules that update the simulation’s state based on particle attributes, such as updating a particle’s position based on its velocity, increasing its age, and removing dead particles. In addition to these basic updates, the operators you add to the network create additional instructions that must be applied at each time step to determine the new simulation state. If the custom behaviors you create conflict with the default rules (for example, you create a custom system for determining particle age), you can turn off default rules with the Suppress Rule POP.

The default in Houdini is to calculate one time step for each frame; however, there are times when you will want to oversample the simulation to have more time steps per frame.