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.

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.