| Example for | Example name | |
|---|---|---|
| LorenzNoise | Load | Launch | |
This example shows you how to add Lorenz Noise to your particle system using a VOP POP. | ||
| popexample_advectbyvolume | Load | Launch | |
This example shows how to use the Advect by Volume POP to passively advect a particles system by a DOP fluid simulation. | ||
| Attractor | AttractToCurvePoints | Load | Launch |
This example demonstrates how points can be used as attractors. By creating a curve containing points, and using a Point SOP, force attributes are given to the curve points. These attributes allow the Attractor POP to use the point forces which in turn act upon the particles. In this case, an effect is created in which the particles “march” along the curve. | ||
| Attractor | AttractToGrid | Load | Launch |
This file applies a radial force to a grid, and uses an Attractor POP to force the particles to be attracted to that grid. The Kill POP kills particles once they pass a certain threshold. | ||
| Attractor | AttractToRing | Load | Launch |
This example shows just one way of creating and using an attractor object to pull particles from an emitter and have them stop when the particles reach the attractor. Some points: The techninque of birthing a fixed number of points but have them stream from their birthed position while still retaining their initial velocity and position using a Group POP and a Suppress Rule POP is necessary when you want to retain point counts over all the frames for blending purposes, when using the Softbody POP or any other reason where you don’t want the particle count to change The importance of drag when using attractors. The mass of the particles and their current drag can make or break your simulation. How to put some nice turbulence in your particle system by using a Force POP and absolutely no direct forces but just using its noise. | ||
| Attractor | Chaser | Load | Launch |
The Attractor POP has the Attractor Use set to Single point per particle. As the sphere is animated in the object editor, the particles try to keep up. | ||
| Attribute Transfer | Color | Load | Launch |
This example demonstrates how the AttribTransfer POP can be used to apply a point attribute from a SOP geometry onto particles. | ||
| Collision | BirthRing | Load | Launch |
Every time a particle collides with a surface, an Event POP is used to create an event called 'birth'. This event activates the Source POP that follows, in order to birth more particles. Events can happen on single frames only, and are not 'continuous' occurrances. | ||
| Collision | BounceSplit | Load | Launch |
This files takes the idea from the Birthring example and expands upon it with the use of Split POPs. When the bouncing particle collides with the surface, a Split POP is used to create more particles on collision. A Velocity POP gives applies velocity to those particles birthed from the Split POP and a Speedlimit POP constrains that velocity to be circular. | ||
| Collision | Capture | Load | Launch |
This example shows how you can use groups to selectively apply different behaviors to particles. The particles first fall through the collision sphere. Only after passing through the sphere do they exhibit a different collision behavior and bounce on contact. If the particle has collided, we want the particles to bounce. If they haven’t collided yet, we want them to fall through. To do this, create a group of all points that have collided. The same Group POP can be used to create the complementary group of points that have not collided. Note that the Collision POP creates the “numhit” attribute so when it is accessed by the Group POP on frame 1, it hasn’t been created yet. The default value of 0 is used, which is fine since on frame 1, none of the particles have collided. Then two Collision POPs are used to collide the particles against the sphere. The first collision is applied to the “noncollided” group and those particles are allowed to continue on course. The second collision is applied to the “collided” group and those particles should bounce off the collision object. | ||
| Collision | Deforming | Load | Launch |
This file demonstrates particle collision detection on a deforming wave like surface. The wave like surface is animated with an expression in a Point SOP. | ||
| Collision | HitColor | Load | Launch |
This network demonstrates how the Collision POP can be used to tranfer attributes, color in this case, from the collision geometry to the particles that come in contact with that geometry. A Color POP is used to actually apply the color, as RGB values, to the collided particles. | ||
| Collision | Meteor | Load | Launch |
Particles fall from the sky and collide with a collision object, in this case a simple grid. These single particles that have collided are placed in a group, and they are told to 'continue on course' so they are not themselves affected by the collision. A half-sphere geometry is instanced to the particles for the purposes of the Split POP. The grouped particles are then piped into a Split POP which then births even more particles after the collision, giving the effect of a meteor trail or fireball trail. The split particles are birthed from the surface of the instanced geometry rather than simply the original particle. | ||
| Color | ColorNumhit | Load | Launch |
This example shows how to color particles based on the numhit attribute. Each collision increments the numhit attribute and returns a different random color. It also shows how to color based on the collision surface hit color using the | ||
| Color | FromCops | Load | Launch |
This example shows how COPs can be used to color particles. The particles take on the colors of the butterfly image that is loaded in COPs. A Color POP is used to color the particles from a COP. It uses the particle’s bounding box X and Y positions as the U and V lookup values in the COP. | ||
| Color | HitId | Load | Launch |
This example shows how the Hit ID attribute can be used to determine which collision object a particle hit last. After a particle bounces off a grid, its color is changed according to the ID of the collision object. Essentially, there are four collision objects. When a particle hits the collision object, it bounces and its “hitid” attribute is set to a value dependent on which object it hit. The value is specified by the “Hit Index” parameter in the Behvior tab of the Collision POP. The Color POP is then applied to set the color based on which object the particle hit last. The lookup value is based on the $HITID variable. | ||
| Creep | CreepFromCenter | Load | Launch |
This is a very basic example of how the Creep POP is used to slide particles on the surface of some geometry starting from its parametric center. | ||
| Creep | CreepSlide | Load | Launch |
This example demonstrates the Slide behavior of the Creep POP. Particles are moved across a deformed surface using a Force POP to drive the Creep POPs slide function. | ||
| Creep | SimpleCreep | Load | Launch |
This is a very basic example of how the Creep POP is used to stick particles on the surface of some geometry. | ||
| Event | Splatter | Load | Launch |
This example shows how to apply different behaviors when events happen. The particles fall from the sky onto the sphere and stick to the collision object. Only when a second particle strikes the sphere do the particles then fall off the sphere. This effect is accomplished by having different POPs applied to the particles over time. Initially particles are birthed from the grid and a gravitation force is applied. Let’s take a look at the input selection rule in the Switch POP. ----- popevent(“release”) || popevent(“switch”) ----- The popevent() function returns a 1 when the event is occurring and 0 otherwise. So, this statement says that whenever the event “release” or “switch” occur, use input 1, otherwise use input 0. To start, none of these events are occurring, so the first branch is cooked. So, to start, the particles are processed by collision1 which collides them against sphere2 and stops them on contact. Now, let’s look at source2 and collision3. At frame 100, a single particle is birthed which travels towards the sphere. In the Collision POP, an event, “release” will be generated when the particle hits the sphere. The generation of this event will cause the switch to start evaluating the other branch. Instead of being processed by collision1, the original particles will be processed by state1, collision2, and event1. The State POP will “unstick” the particles so that they will continue to move. The Collision POP now collides them against the sphere again, this time bouncing them with no gain normal. This will cause the particles to slide off the sphere. Finally, an Event POP is used to generate the “switch” event, which will cause this branch to continue to be evaluated. Note that there are actually two collision spheres, sphere1 and sphere2. sphere1 is just a little bit bigger and is the first object to test for collision. This is so that when they are released, they will bounce off the slightly smaller sphere2. Otherwise, the particles might continue to stick even after they have been unstuck because they are right on the boundary of the collision object. By making the second sphere slightly smaller, this numerical accuracy issue is relieved. | ||
| Fan | Fan | Load | Launch |
This is a simple demonstration of the Fan POP. | ||
| Fetch | Fetch | Load | Launch |
This is a simple demonstration of the Fetch POP. | ||
| Follow | FlockOnPath | Load | Launch |
This is a simple example of a flocking effect created using the Follow POP. The network has two groups of particles, the leader and the follower groups. The “leader” is animated on a path with a Position POP. An Interact POP is used to disperse the follower particles a bit. | ||
| Follow | FollowInteract | Load | Launch |
This example contains a particle network which demonstrates the use of the Follow POP to create a flock or chase. Geometry from the SOP level are used as sources for the Target and Follower particle groups. Then, Properties are added to the particles to affect how the flocks and chase will act. | ||
| Follow | FollowStop | Load | Launch |
This is the basic example of utilizing the Follow POP which enables one group of particles to behave as the followers of another leader group. Only 4 POPs are used: 2 sources, 1 drag and of course 1 Follow POP. | ||
| Follow | Lemmings | Load | Launch |
This example shows how simple flocking can be accomplished using the Follow and Interact POPs. The single leader particle is birthed on the first frame. Its position is set from the transform channels of the object “leader” which is a good example of how to explicitly animate a single particle “by hand.” The followers are birthed from a grid also only on the first frame. In order for the Interact POP to know how large the instanced geometry is, an Instance POP is used to place geometry on the particle. The instanced geometry will be the render SOP from the “bird” object. To keep the followers from bumping into each other, an Interact POP is used. This POP applies inter-particle repulsive forces. The influence type used is “Effect Intersects Effect” to allow maximum buffering between the instanced geometries. A Follow POP is then used to make the followers follow the leader particle. Since the leader particle has no real velocity (i.e. its velocity attribute is 0 and its position is manipulated), the ambient speed must be used. This represents how quickly the followers will try to follow the leader. Try bypassing the Interact POP to watch the followers collapse among themselves. Play with the scales of follow1 and interact1 to observe the effect. Play with the particle radii of interact1 and see what happens. Remember you can toggle the guide geometry flag on to see a visual representation of the applied force. | ||
| Follow | NewGroupies | Load | Launch |
This example shows how simple flocking can be accomplished using the Follow and Interact POPs. The single leader particle is birthed on the first frame. Its position is animated by adding a noise function in the Position paramaters of the Position POP. The followers are birthed from a grid also only on the first frame. A Follow POP is then used to make the followers follow the leader particle. Since the leader particle has no real velocity (i.e. its velocity attribute is 0 and its position is manipulated), the ambient speed must be used. This represents how quickly the followers will try to follow the leader. To keep the followers from bumping into each other, an Interact POP is used. This POP applies inter-particle repulsive forces. The influence type used is “Effect Intersects Effect” to allow maximum buffering between the instanced geometries. The Interact POP pretends there is a sphere of influence around each particle. This sphere has two parts: the particle radius which represents where the instanced geometry should be and the effect radius, which represents a further buffering area. The amount of applied force is constant throughout the particle radius and is an inverse cosine over the effect radius. | ||
| Follow | NewGroupiesRavage | Load | Launch |
A good example of a followers particle systems swarming a leader. Very similar to the NewGroupies example, however, the speeds of the followers and the leader are both amplified to give the illusion of a swarming flock 'ravaging' a leader. | ||
| Follow | SplitAndStick | Load | Launch |
Interesting use of the Follow POP. An initial particle system is emitted off of a grid. The particles are then forced into an orbit using an Orbit POP. The Follow POP is then activated at a specific frame (150) by the following syntax in the Follow POPs' activation field: $FF > 150, meaning 'If the current frame is greater than 150, then activate me'. A second Source POP is piped into the leader input of the Follow POP. The neat trick here is that the second Source POP births the same number of particles as the first source POP, and these particles are not given any velocity. They are born and just stay where they are born. This gives the illusion that the particles leave one grid, fly around for a bit, and then go stick onto the other grid. | ||
| Group | GroupColor | Load | Launch |
This example demonstrates how the Group POP can group particles by different criteria. These criteria include Rule, Generator, Bounding Box, and Random. Particles are colored using the Color POP to visualize the designated criteria. | ||
| Instance | Instance | Load | Launch |
This is simple example of using the Instance POP. The network has two different, randomly chosen, groups of particles created with a Group POP. Two different geometry objects are instanced to each particle group. A Translate POP is used to randomly animate both groups with expressions in the translation fields. | ||
| Instance | InstanceBounce | Load | Launch |
This is an example of a particle system using instanced geometry and a collision object. Enter into the popnet to see particles sourced and randomly emitted from a grid. An Instance POP attaches circle primitives to these particles. Using a Collision POP, particles that make contact with the grid are set to Bounce on Contact. These particles are placed in a collide group, which are then rotated using a Rotation POP. Note that the geometry will only appear when rendered with Mantra or Renderman. The geometry will not be shown in the viewport. To view the instanced geometry, use one of the regular mantra output drivers displayed in the Render icon’s pop-up menu which are set in the Output Editor. | ||
| Instance | InstanceCoils | Load | Launch |
This example shows how particles can be birthed from instanced geometry using the Instance POP and the Split POP. A 4-point grid is instanced to an animated particle, whose frame of reference is rotated by the Rotate POP. Particles are birthed from the corners of the grid so that, combined with the translating and rotating effect, a spiral pattern is formed. | ||
| Instance | InstanceRandomGeo | Load | Launch |
This is an example using point instancing. A particle network is used to instance random geometry at render time. | ||
| Interact | Disperse | Load | Launch |
This example demonstrates how the Interact Pop applies forces between particles. We see a large particle pass through a group of smaller particles that react not only to the larger particle, but to each other, creating a cohesive movement. The mass, charge, and scale attributes are adjusted to create this affect. The smaller particles have a low mass value to create rapid movement, and small scale and charge values to reduce their reaction to each other. The large particle has a larger scale and charge. It’s mass is irrelevant since it’s movement is controlled by a series of Velocity Pops that are switched with an animated channel in the Switch Pop. The Interact Pop gathers all the forces from nearby particles that are within the scale radius, and calculates a resulting acceleration. In order to simulate natural conditions, a Drag Pop is used to diminish the acceleration by a certain amount each frame. Experiment with different settings to change the motion characteristics of the particles. | ||
| Limit | Limit | Load | Launch |
This files demonstrates a basic use of the Limit POP. The Limit POP places a boundary around the particles, either in the shape of a box or a sphere. The size of these boundaries can also be animated. An attribute, such as color in this example, and the grouping information provided by the Limit POP can be used by Color and Split POPs to affect the look and the behavior of the particles. | ||
| Lookat | Lookat | Load | Launch |
This example shows how to use the Lookat POP to make copied geometry point in a particular direction. This is useful when the copied geometry should always be seen face on, like sprites for example. Three particles are birthed on a grid. They are assigned an up vector to give the particle some frame of reference. The up vector is the y axis, rotated by however much the camera path is rotated. The Lookat works by applying a transformation that will rotate the z axis to point towards the requested direction. By making the up vector point in the same direction as the plane that the camera moves, the instanced grids' up direction will always be oriented correctly. The Suppress Rule POP is here to tell Houdini not to apply the default position rules which usually advance the particle positions by its velocity. In this example, we just want the particles to stay still and rotate. Finally, the Lookat POP applies a transformation so that the particle’s z axis will point towards the z axis of cam1. | ||
| Orbit | MultiAxisOrbiting | Load | Launch |
This network demonstrates how the Group POP can be used in conjunction with the Orbit POP to create a multi-axis orbiting effect. The result resembles the classic depiction of orbitting electrons around a nucleus. The Group POP creates 7 groups each of which allows particles to orbit around specific axes designated by the Orbit POP. | ||
| Orbit | Orbit | Load | Launch |
This example demonstrates how the Orbit POP can be used to make a particle system orbit another particle system. Particle System 1 Particle System 2 Particle System 3 | ||
| Orbit | OrbitAlternate | Load | Launch |
This example demonstrates how the Orbit POP can alter the acceleration of particles to rotate about a single or multiple centers. It also shows how a Null OBJ can be used to create animation to be referenced at the POP level to create a dynamic network. | ||
| Orbit | SimpleOrbit | Load | Launch |
This is a simple network using the Orbit POP with a sphere as the particle source. The particles rotate around a specified axis designated by the Orbit POP. | ||
| Property | Swarm | Load | Launch |
This network utilizes the Property POP to give particles certain Orbit attributes which in turn are referenced by the Orbit POP. A Mass value, for example, is one of the attributes that can be assigned by the Property POP. Here, one particle is given a much greater mass hence affecting the orbiting motion of all the other lighter particles. The greater the mass of a particle, the less other forces (including those from other particles) can influence it. There are two particle systems in this example: | ||
| Particle system 1 | The source1 POP births several particles, with a random forward velocity. The property POP gives the particles orbit attributes oaxis, oradius and ospeed. These attributes are only useful in conjunction with the Orbit POP. The orbit axis is oriented along the z-axis, with some variance. The expression rand($ID) is used to generate a random number that is unique per particle, but remains constant throughout the animation. The orbit radius also uses this expression to assign a radius between 1 and 1.5 units. The orbit speed is proportional to the orbit radius. The group1 POP groups this particle system as “light”. | |
| Particle system 2 | The source2 POP births a single particle, with a random forward velocity. The property1 POP is used to assign a mass of 20 to this particle. This is done so that when this system is combined with the first system, the center of mass will be closer to this particle. The property2 POP gives the particle an orbit axis oriented along the z-axis, an orbit radius of 1 unit, and an orbit speed of 10 RPM. The group2 POP groups this particle system as “heavy”. | |
| Rotation | RotateBasic | Load | Launch |
This example is a simple setup that uses the Rotation POP to rotate particles around random angles and axes. A Point SOP is used to add velocity attributes to the source geometry. These attributes are inherited by the Source POP. Some geometry is copied to the particles using a Copy SOP to allow better visualization of the rotation. | ||
| Soft Body | SoftBodySheet | Load | Launch |
This example uses the Softbody POP to deform a SOP geometry to create a cloth-like effect. It also gives examples of how the Group POP, Force POP, and Drag POP are used to refine the motion of the Softbody animation. This can be useful in creating things such as fabrics and organic surfaces. Press Play to see the animation. | ||
| Split | FireworksSetup | Load | Launch |
This example demonstrates how to create a firework effect using the Split POP. It also demonstrates how a POP network can inherit attributes, such as color and velocity, from the SOP network by using the Source POP. | ||
| Split | RecursiveSplit | Load | Launch |
In this sim, the particles are recursively split using the split node and added back into the parent group with the group node. This split is based on the condition $LIFE>0.3. The property node scales the particles down by half each time they split. | ||
| Split | SplitSelf | Load | Launch |
This example demonstrates how the Split SOP can be used to birth new particles based on the death of other particles. Particles are birthed from a source Circle and are given a velocity in the positive-y direction. As they die, the particles are placed in a group that the Split SOP accesses, called “dead”. Each of these “dead” particles gives birth to three new particles. The new particles are given a color based on their lifespan. | ||
| Stream | SparksStream | Load | Launch |
This network utilizes a Stream POP to birth new particles based on the particle density per unit division of space where to particle streams flow and collide. Thelower the threshold, the less particles needed to trigger new particle birthing by the Stream POP. Some particles are birthed from a grid and are then subjected to a vortex force.The drag is needed to prevent the blue particles from continually expanding while keeping them moving in a circle. After about 140 frames, the ring should be fully formed and now a spray of red particles start shooting off from the center of the ring (birthed by a circle source geometry). These two streams are fed into the Stream POP. The Stream POP will birth particles where the two streams intersect. It does this by spatially subdividing the area where the particles flow, and then measuring the particle number within the. | ||
| Torque | TorqueBox | Load | Launch |
This example file uses the Torque POP to control the rotation of a Polygonal Cube. The Torque POP works by applying a force to a particle’s axis. The axis is then rotated according to the parameters dictated by that force. Press Play to view the animation. | ||
| Turn | Avoidance | Load | Launch |
This example shows how simple collision avoidance can be achieved using only Collision and Turn POPs. | ||
| Wind | Wind | Load | Launch |
This example demonstrates how the current age of a particle can be used to create a unique value of noise turbulence in a Wind POP. $LIFE is used to represent the current age of a particle and is the age divided by the particle’s total lifespan. | ||