Fact-checked by Grok 2 weeks ago

Collision response

Collision response is the computational process in physics-based simulations that models the dynamic interactions between colliding objects, calculating changes in their linear and angular velocities, positions, and orientations to prevent interpenetration and replicate realistic physical phenomena such as elastic rebound, inelastic deformation, , and stable resting contacts. This approach is essential in , where collisions are handled through instantaneous impulses rather than continuous forces, enabling efficient simulation of complex scenarios involving multiple contacts. In and , collision response ensures believable object behaviors by adhering to principles like of linear and angular , often using models such as springs for deformable impacts or analytical algorithms for articulated rigid bodies. It builds on , which identifies overlaps, by applying response strategies to resolve them, such as velocity updates via Poisson's restitution hypothesis or constraints under . These methods are particularly valuable in interactive applications like video games and , where real-time performance is critical, allowing for simulations with hundreds of colliding elements without excessive computational overhead. Key techniques in collision response include impulse-based methods, which treat all contacts uniformly through sequential applications to achieve static and dynamic , and constraint-based approaches that solve for constraints over time steps. Advanced variants incorporate time-of-impact predictions using ballistic trajectories to handle high-speed collisions accurately, while as of , developments integrate learning-based methods for deformable object collisions. Despite challenges like in stacked contacts or handling near-rigid materials, these algorithms have evolved to support diverse domains, from robotic path planning to in film.

Fundamentals of Collision Response

Definition and Scope

Collision response refers to the computational process in physics simulations that determines the post-collision motion of interacting objects, particularly rigid bodies, by accounting for momentum transfer, energy dissipation, and the maintenance of physical stability to prevent interpenetration. This involves applying corrective forces or impulses at contact points to resolve overlaps and simulate realistic interactions, distinguishing it from , which merely identifies contacts. The scope of collision response is primarily focused on within real-time simulations, such as those in , , and general physics engines like or , where computational efficiency is paramount for handling multiple contacts. Its conceptual foundations originate in , where Isaac —particularly the third law of action-reaction—are extended to analyze impacts and rebound phenomena between bodies. This process is essential for achieving believable , such as fluid animations of bouncing objects, and for ensuring simulation integrity, including stable stacking of rigid and avoidance of artifacts like tunneling, where high-velocity objects erroneously pass through barriers due to discrete time steps. In applications, accurate collision response enables safe and by modeling contact forces that mimic real-world and restitution. A key parameter in collision response is the e, defined as e = -\frac{v_{\text{rel, after}}}{v_{\text{rel, before}}}, where v_{\text{rel, after}} and v_{\text{rel, before}} represent the components of along the normal after and before the collision, respectively. This dimensionless value, ranging from 0 to 1, quantifies energy loss: e = 1 for perfectly collisions with full recovery, and e = 0 for perfectly inelastic collisions where objects adhere post-impact, dissipating all relative motion.

Prerequisites in Rigid Body Dynamics

Rigid bodies are idealized mechanical systems composed of particles whose mutual distances remain constant, rendering them non-deformable under the influence of external forces. Such bodies possess in : three translational degrees of freedom corresponding to the position of the center of mass and three rotational degrees of freedom describing . The dynamics of a are governed by its total m, which determines translational , and its inertia tensor \mathbf{I}, a 3×3 that quantifies resistance to rotational motion about the center of mass. Central to are the concepts of linear and , which encapsulate the body's motion. Linear is defined as \mathbf{p} = m \mathbf{v}, where \mathbf{v} is the of the center of . is given by \mathbf{L} = \mathbf{I} \boldsymbol{\omega}, with \boldsymbol{\omega} denoting the . In isolated systems free from external forces and torques, both linear and are conserved, reflecting the absence of net changes in translational or rotational motion. These laws form the for analyzing interactions, including collisions, where occurs without altering the quantities in the absence of external influences. Collisions involving rigid bodies unfold in distinct phases: the pre-collision phase, characterized by the approach of bodies with interpenetrating relative velocities; the contact phase, encompassing to maximum interpenetration followed by expansion; and the post-collision phase, marked by separation with non-interpenetrating velocities. The contact phase is often modeled as instantaneous due to the rigid nature of the bodies, allowing finite velocity changes via impulses while displacements remain negligible. To describe motion accurately, employs two coordinate systems: the world frame, an inertial reference fixed in space, and the body-fixed frame, attached to the body and rotating with it. Velocities at arbitrary points on the body, crucial for , are related to the center-of-mass and through the matrix, which maps generalized velocities to spatial velocities at specific points via linear transformations incorporating vectors relative to the center of mass. This facilitates the imposition of constraints, such as non-penetration conditions at points. Rigid body collision models rely on key assumptions to simplify the physics while capturing essential behavior: bodies undergo no deformation, interactions occur at discrete point where the contact region is small relative to body dimensions, and impulses are instantaneous, producing abrupt changes without prolonged application. These assumptions enable the use of principles to determine post-collision states, though they idealize real-world scenarios by neglecting wave propagation and distributed deformations. The restitution coefficient, which quantifies during the contact phase, builds upon these foundations but is addressed separately in broader collision definitions.

Modeling Contacts in Rigid Bodies

Contact Points and Geometry

In rigid body collision response, the contact manifold represents the geometric locus of all points where two bodies touch or interpenetrate during a collision. This manifold captures the extent of the interaction surface, which can range from a single isolated point for vertex-vertex or edge-point contacts to a for edge-edge contacts or a for face-face interactions between polyhedral shapes. For computational simulations, the manifold is typically discretized into a of representative contact points to approximate the full contact area efficiently while preserving essential physical behaviors like stability and distribution. This approximation is widely used in physics engines to balance accuracy and performance. The geometric properties of the contact are computed during the narrow-phase collision detection stage, focusing on features that define the interaction. The penetration depth \delta quantifies the overlap between bodies along the direction of minimum separation, serving as a measure of how deeply one body has invaded the other. The contact normal vector \mathbf{n}, a unit vector perpendicular to the shared surface at the contact, points outward from the first body toward the second and dictates the axis along which normal forces act to resolve penetration. Accompanying \mathbf{n} is the tangent plane, the two-dimensional subspace orthogonal to \mathbf{n} that spans the directions of potential sliding or rolling motions. These elements are derived from algorithms such as the separating axis theorem for polyhedra or the Gilbert-Johnson-Keerthi (GJK) distance algorithm for general convex shapes. Witness points form the foundation for locating the contact geometrically, consisting of the pair of surface points—one on each body—that achieve the minimum distance or maximum penetration between the objects. These points, often output by proximity queries in , enable the calculation of the relative position vector \mathbf{r} = \mathbf{p}_2 - \mathbf{p}_1, where \mathbf{p}_1 and \mathbf{p}_2 are the witness points on the respective bodies. In the GJK algorithm, witness points are iteratively refined as supporting vertices of the Minkowski difference of the bodies' convex representations. A concrete illustration of occurs in the collision of two spheres, where the manifold reduces to a single point. The contact point lies along the line connecting the sphere centers, positioned at the for spheres of equal or proportionally divided according to the (e.g., at r_1 / (r_1 + r_2) from the first center, where r_1 and r_2 are the ). The \mathbf{n} aligns with this line of centers, and the is the excess overlap beyond the sum of . This simplicity makes sphere-sphere contacts a for validating more general geometric computations. Although primarily geometric, the setup at the contact point interfaces with kinematics through the relative velocity \mathbf{v}_{rel}, computed as \mathbf{v}_{rel} = (\mathbf{v}_2 - \mathbf{v}_1) + (\boldsymbol{\omega}_2 \times \mathbf{r}_2 - \boldsymbol{\omega}_1 \times \mathbf{r}_1), where \mathbf{v}_i is the linear velocity of body i's center of mass, \boldsymbol{\omega}_i is its angular velocity, and \mathbf{r}_i is the vector from that center to the contact point. This expression accounts for both translational and rotational contributions at the localized contact geometry.

Kinematics at Contact

In rigid body collision response, kinematics at contact describes the velocity states and relative motions at the interface between colliding bodies, providing the foundation for determining how impulses or forces will alter trajectories to resolve the interaction. The contact point velocities for each body are computed as the linear velocity of the center of mass plus the contribution from angular velocity: \dot{\mathbf{r}}_A = \mathbf{v}_A + \boldsymbol{\omega}_A \times \mathbf{r}_A and similarly for body B, where \mathbf{r}_A and \mathbf{r}_B are vectors from the centers of mass to the contact point. The at the contact \mathbf{v}_{rel} = \dot{\mathbf{r}}_A - \dot{\mathbf{r}}_B is decomposed into components along the contact normal \mathbf{n} (pointing from body B to A) and in the tangent : the normal component v_n = \mathbf{v}_{rel} \cdot \mathbf{n} and the tangential component \mathbf{v}_t = \mathbf{v}_{rel} - v_n \mathbf{n}. This decomposition isolates the approaching motion (negative v_n) that triggers collision from sliding or twisting in the tangent . For rigid bodies, the collision is modeled as an instantaneous where pre-collision velocities \mathbf{v}^- and \boldsymbol{\omega}^- change abruptly to post-collision values \mathbf{v}^+ and \boldsymbol{\omega}^+ due to the applied at the , without deformation or time over the duration. This assumption simplifies the response to a discrete velocity update while preserving constraints like incompressibility. To enforce velocity constraints at contact, the relative motion is expressed using constraint Jacobians that map generalized velocities to the normal and tangential directions. The standard velocity Jacobian for the normal relative velocity is \mathbf{J}_n = [\mathbf{n}^T, (\mathbf{r}_1 \times \mathbf{n})^T, -\mathbf{n}^T, -(\mathbf{r}_2 \times \mathbf{n})^T], such that v_n = \mathbf{J}_n \dot{\mathbf{q}} for generalized coordinates \mathbf{q} = [\mathbf{x}_1, \boldsymbol{\theta}_1, \mathbf{x}_2, \boldsymbol{\theta}_2]. In formulations computing effective inverse masses for impulse resolution, the angular contributions appear as (\mathbf{r}_1 \times \mathbf{n})^T \mathbf{I}_1^{-1} (\mathbf{r}_1 \times \mathbf{n}) + (\mathbf{r}_2 \times \mathbf{n})^T \mathbf{I}_2^{-1} (\mathbf{r}_2 \times \mathbf{n}) for the normal direction and (\mathbf{r}_1 \times \mathbf{t})^T \mathbf{I}_1^{-1} (\mathbf{r}_1 \times \mathbf{t}) + (\mathbf{r}_2 \times \mathbf{t})^T \mathbf{I}_2^{-1} (\mathbf{r}_2 \times \mathbf{t}) for a tangential direction \mathbf{t}. A key kinematic condition is the non-penetration requirement, which mandates that the post-collision normal relative velocity satisfies v_n^+ \geq 0 to ensure the bodies separate or rest without interpenetrating. This condition, combined with the coefficient of restitution, sets the target for velocity updates during response computation. In three dimensions, the tangential relative velocity \mathbf{v}_t lies in the contact tangent plane, which is spanned by two linearly independent tangent vectors \mathbf{t}_1 and \mathbf{t}_2 orthogonal to \mathbf{n}; these vectors define the possible directions within the friction cone for frictional interactions.

Force-Based Contact Models

Normal Reaction Forces

In force-based simulations of rigid body collisions, normal reaction forces act perpendicular to the contact surface along the surface \mathbf{n}, providing a compressive response that opposes interpenetration and facilitates separation or bouncing of the bodies. These forces ensure non-penetration constraints are approximately satisfied by generating repulsive effects proportional to the degree of overlap, while remaining zero when bodies are separated. The relative normal velocity v_n at the contact point, defined as the projection of the relative velocity onto \mathbf{n}, determines the direction and magnitude of the response, with negative v_n indicating approaching motion that triggers the force. The is the predominant approach for modeling these normal reaction , treating the as a virtual -damper system attached at the point. The normal is formulated as \mathbf{F}_n = -k \delta \mathbf{n} - b v_n \mathbf{n}, where \delta > 0 denotes the , k > 0 is the , and b \geq 0 is the ; the is applied equally and oppositely to both bodies. This method offers simplicity in implementation and low computational overhead, as it integrates seamlessly with standard explicit integrators like Euler or Runge-Kutta by adding \mathbf{F}_n to the total acting on each body at each time step. However, it suffers from sensitivity to parameter tuning: excessively high k produces stiff ordinary differential equations that cause numerical and oscillations, while low k permits unrealistic deep penetrations; moreover, the approach introduces energy drift in long simulations, as accumulated numerical errors lead to gradual violations despite continuous application over time steps. To model energy dissipation and bouncing, the damping b is calibrated to yield a specified e (where $0 \leq e \leq 1), representing the ratio of post-contact to pre-contact relative normal separation speed. For the linear penalty model under a damped approximation with \mu, the is set via b = -2 \sqrt{k \mu} \frac{\ln e}{\sqrt{\pi^2 + (\ln e)^2}}, ensuring the oscillatory decay matches the desired e during the contact duration. This integration allows simulation of (e \approx 1) to (e \approx 0) behaviors but requires solving the transcendental relation numerically for precise b, and inaccuracies arise if the contact duration spans multiple time steps. The foundational concepts for such modeling in impacts originated with Heinrich Hertz's 1882 theory of contact between solids, which described the normal pressure distribution and deformation using nonlinear springs, influencing the linear approximations in modern penalty methods.

Frictional Forces

Frictional forces in collision response arise at the interface between rigid bodies, opposing relative tangential motion and enabling phenomena such as sticking, sliding, and rolling. These forces are essential for realistic of interactions like grasping objects or traction, where they prevent or resist slip without penetrating . In force-based models, frictional forces act in the tangent plane to force F_n, which prevents interpenetration. The standard approach employs the friction model, which distinguishes between static and kinetic regimes. In the static regime, the maximum is \mu_s |F_n|, where \mu_s is the static coefficient, sufficient to prevent motion if the required tangential does not exceed this limit. Once sliding occurs, the kinetic is \mu_k |F_n|, with \mu_k \leq \mu_s typically, directed opposite to the relative tangential \mathbf{v}_t. The direction of is thus -\mathbf{v}_t / |\mathbf{v}_t|. This model is geometrically represented by the , a conical region in force space emanating from the contact point, where possible friction vectors lie within an \theta = \arctan(\mu) from the tangent plane, with \mu often taken as \mu_s or an effective value. The total must remain inside this cone for sticking; exceeding it initiates sliding along the cone's boundary. For sliding contacts, the frictional force is explicitly given by \mathbf{f} = -\mu_k |F_n| \frac{\mathbf{v}_t}{|\mathbf{v}_t|} while sticking occurs when |\mathbf{v}_t| falls below a small , such as or a simulation-specific , allowing the friction to adjust up to the static limit to halt relative motion. The effective F_n for calculation incorporates the influence of external applied forces, such as or actuators, which contribute to the compressive load at the and thus modulate the friction capacity through the solved . Extensions to the model address limitations in specific applications; for soft body simulations, viscous terms are added to capture proportional to , as in viscoelastic models where includes a linear -c \mathbf{v}_t component alongside dry for more realistic deformation and . In real materials like vehicle tires, anisotropic models account for direction-dependent coefficients, varying \mu longitudinally and laterally to simulate tread patterns and improve traction fidelity in dynamics simulations.

Impulse-Based Contact Models

Impulse Formulation for Reactions

In impulse-based contact models for , collisions are treated as instantaneous events where reaction forces are integrated over an time to produce that alter the bodies' . An \mathbf{j} is defined as the time of the , \mathbf{j} = \int \mathbf{F} \, dt, which equals the change in linear \Delta \mathbf{p} = \mathbf{j} for the interacting bodies during the collision. This formulation is particularly suited to discrete-time simulations, approximating contacts as Dirac delta functions in force application rather than continuous forces over finite durations. For the basic normal reaction in a collision between two rigid bodies, the impulse magnitude along the contact normal \mathbf{n} is computed to enforce the coefficient of restitution e, which governs the relative separation speed after impact. The normal component of the pre-collision relative velocity at the contact point, v_{n,\text{pre}}, is reversed and scaled by e, leading to the impulse j_n = -(1 + e) m_{\text{eff}} v_{n,\text{pre}}, where m_{\text{eff}} is the effective reduced mass given by \frac{1}{m_{\text{eff}}} = \frac{1}{m_1} + \frac{1}{m_2} for bodies of masses m_1 and m_2. This ensures the post-collision normal relative velocity satisfies v_{n,\text{post}} = -e v_{n,\text{pre}}, assuming no friction or other effects. The \mathbf{j} is applied at the contact point on each , updating both linear and angular velocities to reflect the . For a with m, center-of-mass \mathbf{v}_{\text{pre}}, angular \boldsymbol{\omega}_{\text{pre}}, I, and contact offset \mathbf{r} from the center of mass, the post-collision linear is \mathbf{v}_{\text{post}} = \mathbf{v}_{\text{pre}} + \frac{\mathbf{j}}{m}, and the angular update involves \boldsymbol{\omega}_{\text{post}} = \boldsymbol{\omega}_{\text{pre}} + I^{-1} (\mathbf{r} \times \mathbf{j}). The at the contact point then becomes \mathbf{v}_{\text{post}} = \mathbf{v}_{\text{pre}} + \frac{\mathbf{j}}{m} + (\mathbf{r} \times \mathbf{j} / I) \times \mathbf{r}, accounting for both translational and rotational contributions. These updates conserve linear and exactly within the discrete time step, without requiring force integration over the timestep. Impulse-based methods excel in handling kinematic constraints, such as joints or unilateral contacts, by formulating them directly in terms of changes rather than forces, which simplifies in simulations involving stacking or resting objects. This approach originated in key algorithms like the Stewart-Trinkle implicit time-stepping scheme, which integrates impulses for inelastic collisions in multibody systems. In practice, such formulations provide robust stability in real-time physics engines, exemplified by the Bullet Physics library, which employs impulse-based reactions for efficient collision handling in games and simulations.

Computing Reaction Impulses

In the case of a collision between two rigid bodies at a single contact point, the normal can be computed analytically using a closed-form solution that incorporates the and the effective mass along the contact normal. The effective mass derives from the bodies' translational masses and rotational inertias, projected via the , yielding the inverse effective mass term (J_n M^{-1} J_n^T)^{-1}, where J_n is the normal component of the and M is the generalized of the system. This approach provides an exact for isolated, frictionless contacts, enabling precise updates without iteration. The general analytical expression for the scalar normal impulse j is j = -(1 + e) (J_n M^{-1} J_n^T)^{-1} (J_n v_{pre}), where e is the (ranging from 0 for perfectly inelastic to 1 for elastic collisions), and v_{pre} is the pre-collision at the contact point projected onto the . Post-collision, the relative normal velocity becomes v_n^{post} = -e v_n^{pre}, ensuring non-penetration (v_n^{post} \geq 0) and energy dissipation as specified by e. This formulation assumes instantaneous application and is derived from conservation of and the definition of restitution, making it suitable for simple pairwise interactions in simulations. For scenarios involving articulated bodies or multiple constraints, where direct inversion becomes computationally prohibitive, iterative methods approximate the impulse solution by solving the associated . The Projected Gauss-Seidel (PGS) algorithm is a prominent iterative solver, which sequentially updates each constraint while projecting onto the feasible space of non-negative normal impulses. Starting from an initial guess (often zero), PGS to minimize the error in the velocity , enforcing v_n^{post} \geq 0 and the restitution condition through accumulated changes until or a fixed count (typically 4–20 for performance). Each runs in linear time relative to the number of , balancing accuracy and speed in dynamic systems. In time-stepped simulations, which integrate over finite intervals \Delta t, the restitution effect is often embedded as a term in the velocity constraint equation to account for the discrete nature of the timestep. This is formulated as b = -(1 + e) v_n^{pre} / \Delta t, added to the target to drive the post-step motion toward the desired restitution outcome while stabilizing against integration errors. Such biasing prevents artificial energy gain or loss over multiple steps, particularly in resting contacts transitioning to collisions. A key optimization for iterative solvers in real-time applications, such as those in early game engines, is warm-starting, where the initial values are set to those from the previous frame's solution. This leverages temporal in persistent contacts, significantly reducing required iterations (often by 50% or more) and improving convergence stability without sacrificing physical fidelity.

Integrating Friction in Impulses

In impulse-based collision models, is incorporated by computing a tangential impulse [\mathbf{j}_t](/page/J&T) that opposes the pre-collision relative tangential \mathbf{v}_t^\text{pre} at the contact point, while respecting the friction limit relative to the normal impulse j_n. The of the impulse is determined as |\mathbf{j}_t| = \min(\mu |j_n|, m_\text{eff} |\mathbf{v}_t^\text{pre}|), where \mu is the and m_\text{eff} is the effective mass accounting for the linear and angular inertias of the involved along the tangential . This attempts to arrest tangential motion up to the frictional limit, ensuring energy dissipation consistent with physical observations in interactions. The direction of \mathbf{j}_t is taken as the unit vector opposite to \mathbf{v}_t^\text{pre}, i.e., \mathbf{j}_t = -|\mathbf{j}_t| \frac{\mathbf{v}_t^\text{pre}}{|\mathbf{v}_t^\text{pre}|}, which promotes maximal dissipation during sliding. To distinguish between sticking and sliding behaviors, the computed |\mathbf{j}_t| is compared to the Coulomb threshold \mu |j_n|: if |\mathbf{j}_t| < \mu |j_n|, the contact sticks, resulting in zero post-collision tangential velocity \mathbf{v}_t^\text{post} = 0; otherwise, sliding persists with \mathbf{v}_t^\text{post} reduced but nonzero. This logic draws from the distinction between static friction, which prevents motion onset or resumption (using a potentially higher coefficient \mu_s), and dynamic friction, which opposes ongoing sliding (using \mu_k \leq \mu_s); in practice, many implementations apply \mu_s during the sticking attempt and switch to \mu_k for confirmed sliding to enhance stability without excessive sticking. For full three-dimensional contacts, the tangential plane is spanned by two orthogonal basis vectors \mathbf{t}_1 and \mathbf{t}_2, allowing decomposition of the pre-collision tangential velocity as \mathbf{v}_t^\text{pre} = v_{t1} \mathbf{t}_1 + v_{t2} \mathbf{t}_2. The friction impulse is then solved as a vector \mathbf{j}_t = j_{t1} \mathbf{t}_1 + j_{t2} \mathbf{t}_2, projected onto the friction cone defined by |\mathbf{j}_t| \leq \mu |j_n| to ensure it lies within allowable frictional directions. Numerical stability is often improved by approximating the circular cone with a polygonal pyramid (e.g., 4 or 8 sides), converting the projection into a linear optimization problem solvable via clamping or quadratic programming, which avoids singularities in the cone boundary and facilitates integration with linear complementarity solvers for multi-contact scenarios. The post-collision velocities incorporating both normal and friction impulses are updated via the general formula: \mathbf{v}^\text{post} = \mathbf{v}^\text{pre} + \mathbf{M}^{-1} \mathbf{J}^T (\ j_n \mathbf{n} + \mathbf{j}_t\ ) where \mathbf{M} is the generalized mass matrix (including inverse inertia tensors), and \mathbf{J} = [\mathbf{n}, \mathbf{t}_1, \mathbf{t}_2] is the Jacobian matrix mapping contact impulses to velocity changes at the point of contact. This unified application ensures that friction contributes to both linear and angular momentum changes without separate force integration steps, enabling efficient discrete-time simulation of realistic frictional collisions.

Advanced Collision Response Techniques

Handling Multiple Contacts

Handling multiple contacts arises in scenarios such as stacking objects or rolling bodies, where rigid bodies interact at several points simultaneously, requiring coordinated resolution to prevent penetration and ensure realistic motion. One approach represents multiple contact points as a graph of constraints, where nodes denote rigid bodies and edges capture interactions, enabling the identification of independent contact groups for efficient processing. This structure facilitates solving the system as a linear complementarity problem (LCP) for all contacts jointly, enforcing non-penetration and friction constraints across the group. In the LCP formulation, the global system is expressed as A \mathbf{j} = \mathbf{b}, where \mathbf{j} is the vector of impulse magnitudes, \mathbf{b} incorporates velocity and bias terms, and the matrix A couples contacts through A_{ij} = \mathbf{J}_i M^{-1} \mathbf{J}_j^T, with \mathbf{J}_i the Jacobian for contact i and M the inverse mass matrix. Complementarity conditions ensure \mathbf{j} \geq 0, normal relative accelerations \geq 0, and their product equals zero, while friction impulses are bounded by Coulomb's law. For real-time applications, particularly in games, iterative solvers like the Sequential () method approximate the LCP solution by updating velocities across all contacts in repeated loops until or a fixed limit, typically 5-10 passes for stability. extends single-contact resolution by applying impulses sequentially but accumulating changes globally, addressing interdependencies without forming the full A. Kenny Erleben's work in the emphasized adaptations for gaming, including priority-based where resting contacts (low relative velocity) are processed after impacting ones (high velocity) to prioritize separation and reduce erroneous bounces. Stability challenges in multi-contact scenarios include from numerical drift in resting configurations, mitigated by Baumgarte stabilization, which adds a bias term \beta \frac{\delta - \text{slop}}{\Delta t} to the relative velocity constraint, where \beta \in [0.1, 0.3], \delta is , and slop is a . Alternatively, position-based corrections directly adjust configurations post-velocity update to enforce constraints exactly, enhancing robustness for stacking without altering dynamics significantly.

Continuous vs Discrete Response

In collision response for physics simulations, discrete methods apply reaction forces or impulses at fixed time intervals, typically aligned with simulation frames, to resolve overlaps detected between the start and end positions of objects within each step. This approach is computationally efficient and straightforward to implement, making it suitable for most real-time applications where object speeds are moderate. However, discrete response is susceptible to the tunneling problem, where fast-moving objects pass through thin barriers without detection, as collision checks occur only at discrete points rather than continuously along the motion path. Continuous collision response, in contrast, computes the exact time of impact (TOI) during each time step Δt by solving for the earliest time t ∈ [0, Δt] at which object trajectories intersect, often using swept volume tests or continuous collision detection (CCD) algorithms. Swept volumes represent the space occupied by an object over its motion interval, enabling precise intersection queries to interpolate collision events mid-step and apply responses accordingly. This method ensures accurate handling of high-speed scenarios, such as bullets or projectiles, by preventing tunneling and maintaining physical fidelity without requiring small time steps. While more accurate, continuous approaches incur higher computational costs due to the need for root-finding or interval-based geometric queries. The trade-offs between these methods influence their adoption: response prioritizes simplicity and speed for general simulations, whereas continuous response excels in for involving rapid motion, though it demands optimized implementations to remain viable in contexts. Hybrid techniques, such as speculative contacts introduced in the , bridge this gap by predicting potential overlaps from initial frame positions and generating provisional contacts to enhance detection without full overhead, as implemented in engines like . Another compromise is substepping, which divides the full time step Δt into smaller subintervals for repeated collision checks and resolutions, improving and reducing tunneling at a moderate performance cost compared to pure continuous methods.

References

  1. [1]
    Impulse-based simulation of rigid bodies - ACM Digital Library
    The method is well suited to modeling physical systems with large numbers of collisions, or with contact modes that change frequently.
  2. [2]
    Collision Detection and Response for Computer Animation
    This paper discusses collision detection and response in general, presents two collision detection algorithms, describes modeling collisions of arbitrary bodies ...
  3. [3]
    [PDF] Impulse-based Simulation of Rigid Bodies
    After giving an overview of impulse-based dynamic simulation, we discuss collision de- tection and collision response in this context, and present results from ...
  4. [4]
    Rigid Body Dynamics - Brown CS
    Collision Response - When we know a collision has occured how do we change the state of the 2 objects that collided. Basic Formulas from Physics. Simulating the ...
  5. [5]
    [PDF] Rigid Body Collision Response
    Physically based collision response together with dynamics simulation (via numeric solution of differential equations) is explained in excellent tutorial. [3, 4] ...
  6. [6]
    Rigid Body Physics Engine
    ### Summary of Collision Response from https://www-cs-students.stanford.edu/~eparker/files/PhysicsEngine/
  7. [7]
    The Law of Action-Reaction (Revisited) - The Physics Classroom
    Collisions are governed by Newton's laws. The law of action-reaction (Newton's third law) explains the nature of the forces between the two interacting objects.
  8. [8]
    (PDF) Evaluation of Physics Engines for Robotic Simulations with a ...
    Mar 21, 2014 · occurs, and failed (f) if bodies get stuck or tunnel. A flawless collision detection would not allow tunneling or. penetration of any body at any ...
  9. [9]
    Toward Real-Time Scalable Rigid-Body Simulation Using GPU ...
    The primary objective of collision response is to ensure physically plausible behavior by enforcing conservation principles, such as the conservation of ...<|separator|>
  10. [10]
    10.2: Surface Collisions and the Coefficient of Restitution
    Jul 28, 2021 · The coefficient of restitution is a number between 0 and 1 that measures the "bounciness" of the body and the surface in the collision.
  11. [11]
    None
    ### Summary of Rigid Body Content from https://physics.uwo.ca/~mhoude2/courses/PDF%20files/physics350/Rigid_bodies.pdf
  12. [12]
    [PDF] Classical Dynamics
    So we find the conservation law of total linear momentum for a system of ... Since the body is free, its angular momentum must be conserved. This gives ...
  13. [13]
    [PDF] RIGID BODY COLLISIONS: SOME GENERAL CONSIDERATIONS ...
    Jan 6, 1997 · This thesis attempts to present a uni ed view of the subject of rigid body collisions. This includes discussion of basic assumptions, ...
  14. [14]
    [PDF] Contact Manifolds - Box2D
    Contact Manifolds. Erin Catto. Blizzard Entertainment. Page 2. Executive Summary. ☢ Constraint solvers need contact points to prevent penetration. ☢ We can use ...Missing: rigid | Show results with:rigid
  15. [15]
    [PDF] Distance and Collision Detection
    Witness Points and are the witness points - realize the minimum distance. Each is a surface point on and resp. Witness points are not necessary unique is the.
  16. [16]
    [PDF] Geometric Primitives & Proximity Detection | GameDevs.org
    Sphere-Sphere Collision. » Compute distance d between centers. » If d < r. 1. + r. 2. , colliding. » Note: d2 is not necessarily < r. 1. 2 + r. 2. 2. ☢ want d2 ...Missing: midpoint | Show results with:midpoint
  17. [17]
    [PDF] An Introduction to Physically Based Modeling: Rigid Body ...
    David Baraff. Robotics Institute. Carnegie Mellon University. Introduction. This portion of the course notes deals with the problem of rigid body dynamics. To ...Missing: seminal | Show results with:seminal
  18. [18]
    [PDF] Constraints Derivation for Rigid Body Simulation in 3D
    Nov 13, 2013 · Constrained dynamics can be used to simulate the dynamics of rigid bodies when their motion is restricted by some constraints like contacts, ...
  19. [19]
    [PDF] Interactive Simulation of Rigid Body Dynamics in Computer Graphics
    This paper is a self contained state-of-the-art report on the physics, the models, the numerical methods and the algorithms used in interactive rigid body ...Missing: seminal | Show results with:seminal
  20. [20]
    [PDF] Rigid Body Contact: Collision Detection to Force Computation
    Dec 1, 1998 · The major advantage of an impulse-based method is that only a single pair of contact points is handled at a given time; many of the ...Missing: assumptions | Show results with:assumptions
  21. [21]
    [PDF] Coefficient of restitution interpreted as damping in vibroimpact - HAL
    Jun 19, 2016 · The coefficient of restitution (e) is the ratio of relative speed after impact to before. It decreases as impact velocity increases. e = v0/v1.
  22. [22]
    [PDF] Non-penetrating Rigid Body Simulation
    The Coulomb friction model specifies a relationship between the constraint force and the friction force. The relationship of these forces at each contact point ...
  23. [23]
    (PDF) Rigid Body Collisions with Friction - ResearchGate
    Aug 9, 2025 · An energetically consistent theory is presented for dynamics of partly elastic collisions between somewhat rough rigid bodies with friction that opposes slip.
  24. [24]
    [PDF] On Dynamic Multi-Rigid-Body Contact Problems with Coulomb Friction
    Sep 28, 1995 · This paper is a summary of a comprehensive study of the problem of predicting the accelerations of a set of rigid, three-dimensional bodies in ...Missing: dynamics seminal
  25. [25]
    [PDF] Unified Simulation of Rigid and Flexible Bodies Using Position ...
    The PBD framework with the added viscoelastic and friction mod- els is a very versatile method that allows the simulation of both rigid and soft bodies in the ...<|control11|><|separator|>
  26. [26]
    [PDF] The Matchstick Model for Anisotropic Friction Cones
    Many rigid body simulators use friction models expressed as cones, or as generic sets of feasible friction forces. Combining feasible set descriptions with ...
  27. [27]
    [PDF] Impulse-based Dynamic Simulation of Rigid Body Systems
    The processing of collisions is a critical aspect of the impulse-based approach. Effi- cient algorithms are needed for detecting the large number of collisions ...
  28. [28]
    [PDF] Constraints and Collisions - UCSD CSE
    • An impulse can be applied to a rigid body at relative offset r resulting in an instantaneous change in momentum p and angular momentum L of the body.
  29. [29]
    (PDF) An Implicit Time-Stepping Scheme for Rigid Body Dynamics ...
    Aug 7, 2025 · In this paper a new time-stepping method for simulating systems of rigid bodies is given. Unlike methods which take an instantaneous point of view, our method ...Missing: response | Show results with:response
  30. [30]
    bulletphysics/bullet3: Bullet Physics SDK - GitHub
    Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
  31. [31]
    [PDF] Iterative Dynamics with Temporal Coherence - Box2D
    Jun 5, 2005 · The collision system needs the ability to compute a contact manifold be- tween two boxes. The manifold can be computed from scratch each ...<|control11|><|separator|>
  32. [32]
    [PDF] Fast and Simple Physics using Sequential Impulses - Box2D
    ☢ Impulses are good at making things bounce. ☢ Many attempts to use impulses leads to bouncy simulations (aka jitter). ☢ Forget static friction.Missing: response | Show results with:response
  33. [33]
    [PDF] Rigid-Body Dynamics with Friction and Impact - HAL
    Jul 31, 2017 · The rigid body model with Coulomb friction has been subject to a great deal of controversy, mostly due to a simple model problem of Painlevé ...
  34. [34]
    [PDF] Physics-Based Animation - Computer Graphics and Simulation
    This book is printed on acid-free paper. Kenny Erleben, Jon Sporring, Knud ... Collision ...
  35. [35]
    [PDF] Contact Graphs in Multibody Dynamics SIMULATION - Kenny Erleben
    For instance to pre-process the complementarity formu- lation with a sequential collision method truncat- ing impulses, this was used for a sequential impulse.
  36. [36]
    [PDF] Fast Contact Force Computation for Nonpenetrating Rigid Bodies
    The original printed paper is c 1994 by the ACM. Author address (May 1994): David Baraff, School of Computer Science,. Carnegie Mellon University, Pittburgh ...Missing: seminal | Show results with:seminal
  37. [37]
    [PDF] Collision Detection - Stanford Computer Graphics Laboratory
    ○ Important for simulation of cloth and thin objects. ○ Less common for volumetric simulations. Discrete vs continuous time collision checks t=0 t=Δt. Page ...
  38. [38]
    [PDF] Continuous Collision - Box2D
    The only restriction is that it be smooth and be guided by a single parameter (time). We also assume the point is fixed in the moving frame (like a rigid body).
  39. [39]
    Advanced Collision Detection — NVIDIA PhysX SDK 3.4.0 ...
    Collision detection is able to generate contact points between two shapes when they are still a distance apart, when they are exactly touching, or when they ...
  40. [40]
    [PDF] Fast Continuous Collision Detection for Articulated Models
    A classic approach to check for collisions for a continuously moving object is to calculate the swept volume (SV) of the ob- ject along the trajectory and test ...
  41. [41]
    [PDF] Small Steps in Physics Simulation - Miles Macklin
    Jul 26, 2019 · A key idea that makes our substepping approach feasible is to amortize this cost by performing collision detection once per-frame and re-using ...