Core Framework

The PBD framework simulates a physical object by discretizing it into a set of particles and defining its behavior through geometric constraints (relationships). The central idea is to treat the system as a set of particles and constraints. At each time step, particle positions are first predicted using an explicit integration scheme, after which an iterative solver adjusts these predicted positions to satisfy all geometric constraints. We can formally define such a system as follows:

Definition 32.2.1 (PBD System). A PBD system is a tuple consisting of a set of particles and a set of constraints.

Each particle is characterized by its position , velocity , and mass . For convenience, we define the inverse mass , where for infinitely massive (i.e., static or kinematically controlled) particles.

The dynamic behavior is governed by a set of constraints. Each constraint is defined by a scalar-valued function which operates on a subset of particles. The constraint is satisfied if for an equality constraint, or for an inequality constraint.

The simulation proceeds in discrete time steps of size . The central loop of the PBD algorithm can be described as follows.

Figure 32.2.1 (PBD Main Algorithm). The core of the loop is a multi-phase process: velocity and position prediction, constraint construction, constraint solving, and state update.

Note that since the algorithm simulates a system which is 2nd order in , we need to specify both positions and velocities before the simulation loop starts. This loop structure ensures that velocities are implicitly updated based on the geometric corrections performed by the solver, producing the correct behavior for a 2nd-order dynamical system.