Overview
pCustomForce exposes expression fields to define the forces applied to particles mathematically. You can use particle variables (pos, vel, age, id, random) and math functions (sin, cos, exp, noise) to create tailor-made behaviors.
Typical use: when the standard nodes (pDirectionalForce, pTurbulence, pVortex...) are not enough. For example, a force that varies sinusoidally with age, a force that depends on the distance to a tracked object, etc.
Where to find this node
- Effects Library:
Tools > Particles > pCustomForce - Quick add: right-click in the Node Editor →
Add Tool > Particles > pCustomForce
Inputs
- Particle Input (orange) - particle stream.
- Image Inputs (green/magenta) - 2D images for per-pixel calculations in the expressions.
- Region Input (teal/white) - optional. Area where it applies.
Setup
Sinusoidal force over age:
pEmitter → pCustomForce (Force X = sin(age * 10))
→ pRender
Force that depends on the distance to the center:
pEmitter → pCustomForce (Force Y = 1 / dist_from_center)
→ pRender
Spin that increases with speed:
pEmitter → pCustomForce (Torque Z = velocity.magnitude * 0.1)
→ pRenderParameters
- Force X / Y / Z expressions
- Expressions that return the force applied on each axis. Evaluated per particle and per frame. Variables: position, velocity, age, id, random.
- Torque / Spin expressions
- Expressions for the particle's rotation (spin).
- Setup channels
- Extra variables computed once per frame that you can reuse in the Force expressions.
- Conditions (Sets)
- Force only on certain sets.
Use cases
- Specific mathematical forces - custom physics simulations (electrostatic law, magnetism, etc.).
- Non-standard behaviors - forces that vary with the particle's age, distance or ID.
- Unique artistic effects - sinusoidal trajectories, chaotic patterns, behaviors that depend on external parameters.
- Advanced VFX pipeline - when you know exactly which mathematical force you want and no standard node provides it.
Tips
- For scripters only - not for beginners. It requires understanding Fusion expressions.
- Fusion docs for the syntax - check the official BMD documentation for the exact expression syntax (math functions, particle variables).
- Try the standard nodes first - 95% of cases are covered by pDirectional/pTurbulence/pVortex. Only use pCustomForce for truly specific cases.
- Performance - evaluating expressions per particle and per frame can be expensive. Favor simple expressions.
- Test with few particles - lower the pEmitter Number while developing your expressions. Raise it once the behavior is stable.
