Skip to content
CoreSource checked

Sequential Impulse Solver

Approximates rigid-body contact and joint constraints by applying clamped impulses one constraint at a time.

Quick Facts

Compact metadata for implementation and discovery.

Category
Simulation
Difficulty
Advanced
Family
Constraint Solver
Tier
Core
Status
Verified
Review
Source Checked
Sources
1
Formulas
1
Relationships
4
Code example
Ready
Visualization
Ready

Overview

A sequential impulse solver iterates over contacts and joints, computes an impulse from relative velocity and effective mass, clamps it to normal or friction limits, and immediately applies it to the connected bodies.

Core Concepts

velocity constrainteffective massimpulse clampingwarm startingiterative solvercontact constraint

Quick facts

Complexity

Runtime and memory behavior at a glance.

Best

O(constraints)

Average

O(iterations * constraints)

Worst

O(iterations * constraints)

Space

O(constraints)

When to Use

  • Use when real-time performance matters more than exact global constraint solves.
  • Use when contacts and joints can be resolved over several iterative passes per timestep.

When Not to Use

  • Avoid when high-precision offline dynamics or exact constraint satisfaction is required.
  • Avoid when extreme mass ratios, stiff stacks, or large timesteps dominate without extra stabilization.

What It Does

  • Computes constraint solver within Constraint Solver workloads (O(iterations * constraints) time, O(constraints) space).
  • Works by Approximates rigid-body contact and joint constraints by applying clamped impulses one constraint at a time.
  • Maintains key invariants across velocity constraint, effective mass, impulse clamping.

Use Cases

  • Interactive rigid-body physics where fast approximate contact resolution is acceptable.
  • Games and simulations with many contacts, joints, or friction constraints.
  • Physics demos that need stable-enough behavior at fixed timestep budgets.

Inputs

  • Current state
  • Forces or constraints
  • Time step

Outputs

  • Updated state
  • Constraint corrections
  • Collision results

Key Formulas (1)

Normal impulse update

δj = −(J·v + bias) / (J·M−1·JT)
delta_j = -(J*v + bias) / (J*M^-1*J^T)

Computes a corrective impulse increment from constraint velocity error, bias, and effective mass before clamping.

Pseudocode

  1. 1.Build contact and joint constraints for the current timestep
  2. 2.Warm start by applying cached impulses for persistent contacts
  3. 3.Repeat for the configured solver iteration count
  4. 4.For each constraint, compute relative velocity and bias error
  5. 5.Compute impulse delta from effective mass
  6. 6.Clamp accumulated impulse to the constraint limits
  7. 7.Apply the impulse delta to the connected bodies

Canonical Example

Input
a dynamic box moving downward into a static floor contact
Output
a clamped upward normal impulse reduces the closing velocity at the contact
Explanation
The solver updates the box velocity immediately so the contact constraint is closer to non-penetrating.

Implementation Notes

  • Build each constraint with Jacobian direction, effective mass, bias, and impulse limits.
  • Apply normal and friction impulses with separate clamping rules.
  • Run several iterations and keep timestep size stable when comparing behavior.

Common Pitfalls

  • Forgetting accumulated impulse clamping can make contacts attract or jitter.
  • Warm-start impulses must correspond to the same persistent contact points.
  • Solver order, timestep, iteration count, and friction model all affect convergence.

Interactive Mechanism Walkthrough

Iterative Convergence & State Trajectory

Show state updates, constraints, and error correction over simulation steps.

Sequential Impulse Solver mechanism walkthrough step 1 of 7x₀x₁x₂x*
Step 1 of 7: Build contact and joint constraints for the current timestep
simulation-mechanism

Notes

Sequential impulses are deliberately approximate; stable results depend on timestep, iteration count, warm starting, and constraint ordering.

Sources (1)

What each reference supports for this entry.

Real-Time Collision Detection

Book

Collision detection reference for the geometric or broad-phase/narrow-phase behavior of Sequential Impulse Solver.

Explore Next

Good next jumps from the relationship graph, ranked for useful discovery.

Both correct constraint errors iteratively, though sequential impulses work primarily through velocity-level impulses.

Often paired withRigid Body Dynamics

Rigid-body engines commonly pair dynamics integration with sequential impulse contact and joint solving.

Narrow-phase contacts provide the contact points and normals used by the impulse solver.

Tags

SimulationRigid BodyConstraint SolvingCollision Detection