Inferensys

Glossary

Coulomb Friction

Coulomb friction is a classical model of dry friction that defines friction forces as proportional to the normal force, independent of apparent contact area.
ML engineer managing model training cluster on laptop, GPU utilization visible, technical deep learning setup.
PHYSICS SIMULATION

What is Coulomb Friction?

Coulomb friction is the foundational dry friction model used in physics engines to simulate realistic contact interactions between rigid bodies.

Coulomb friction is a classical model of dry friction that defines the maximum static friction force and the constant kinetic friction force as being directly proportional to the normal force pressing the surfaces together, independent of the apparent contact area. This model creates a friction cone of allowable tangential forces at a contact point, where the resultant force must lie within a cone defined by the friction coefficient and the contact normal. It is the standard model implemented in constraint solvers and Linear Complementarity Problem (LCP) formulations to resolve tangential forces during collisions.

In simulation, the model distinguishes between static friction, which prevents motion up to a threshold, and kinetic friction, which opposes sliding motion with a constant force. This creates a stick-slip phenomenon critical for realistic robotic manipulation and locomotion. The model's simplicity—relying only on a coefficient of friction—makes it computationally efficient but also a primary source of the reality gap, as real-world friction involves complex dependencies on velocity, temperature, and surface roughness not captured by the classic formulation.

CONTACT AND RIGID BODY DYNAMICS

Key Characteristics of the Coulomb Model

The Coulomb friction model is a foundational element for simulating realistic physical interactions in robotics and physics engines. Its characteristics define the boundary between static stiction and kinetic sliding.

01

Static vs. Kinetic Friction

The model defines two distinct regimes. Static friction acts when surfaces are at relative rest, opposing any applied tangential force up to a maximum threshold. Kinetic (or dynamic) friction acts when sliding occurs, providing a constant opposing force. The maximum static friction force is typically greater than the kinetic friction force, explaining the initial 'stickiness' before motion begins.

  • Static Friction Force: (F_s \leq \mu_s F_n)
  • Kinetic Friction Force: (F_k = \mu_k F_n) Where (F_n) is the normal force, (\mu_s) is the static friction coefficient, and (\mu_k) is the kinetic friction coefficient.
02

Independence from Apparent Contact Area

A key, often counter-intuitive, postulate of the Coulomb model is that the magnitude of the friction force is independent of the apparent or macroscopic area of contact between the two surfaces. The force depends only on the normal force and the material-dependent friction coefficient. This arises from the model's assumption that friction results from the shearing of microscopic asperities; the real contact area is proportional to the normal force, not the geometric area. This simplification is crucial for efficient simulation but breaks down for very soft materials or extremely smooth surfaces.

03

The Friction Cone

Coulomb's law is geometrically represented by the friction cone. At a contact point, the total contact force (normal + friction) must lie within or on a cone whose axis is aligned with the contact normal. The half-angle of this cone is (\theta = \arctan(\mu)), where (\mu) is the relevant friction coefficient. This visualization is critical in robotics for grasp stability analysis and motion planning, as it defines the set of all possible reaction forces a contact can provide to resist slippage.

04

Proportionality to Normal Force

The model's core equation states that the maximum friction force is directly proportional to the normal force pressing the surfaces together: (F_{friction}^{max} = \mu F_{normal}). This linear relationship is a first-order approximation that holds reasonably well for many common material pairs under moderate loads. It simplifies the calculation of frictional effects in multi-body dynamics, as the normal force is typically computed by the constraint solver during collision resolution.

05

Direction Opposing Motion

The friction force vector always acts in the direction opposite to the relative motion or impending motion at the contact interface. For kinetic friction, this is directly opposed to the current sliding velocity. For static friction, it opposes the net applied tangential force that is trying to initiate motion. This directional property is essential for generating realistic damping and energy dissipation in simulations, as it ensures friction always acts as a non-conservative, dissipative force.

06

Limitations and Numerical Handling

While foundational, the classical Coulomb model has known limitations that simulation engines must address:

  • Stiction Discontinuity: The instantaneous switch from static to kinetic friction at the threshold creates a non-smooth, discontinuous system, challenging for numerical integrators.
  • No Velocity Dependence: It does not account for the slight decrease in friction with increasing sliding velocity (Stribeck effect) observed in lubricated contacts.
  • Numerical Solvers: In physics engines, Coulomb friction is typically formulated as a Linear Complementarity Problem (LCP) or similar constraint, solved iteratively each time step to find feasible friction forces that satisfy the 'stick-or-slip' conditions without generating energy.
PHYSICS MODEL

How Coulomb Friction Works in Simulation

Coulomb friction is the classical dry friction model used in physics engines to simulate the tangential resistance force between contacting surfaces.

Coulomb friction is a constitutive model defining the maximum static friction force and the constant kinetic friction force as being proportional to the normal force pressing the surfaces together. Its core principle is that the magnitude of the tangential friction force is independent of the apparent contact area and sliding velocity, up to the stiction threshold. In simulation, this creates a stick-slip transition critical for realistic object behavior.

Within a constraint solver, Coulomb friction is typically formulated as a Linear Complementarity Problem (LCP) or as a friction cone constraint. The solver calculates the necessary tangential impulses to keep the relative velocity at the contact point within the cone's bounds. This prevents unrealistic sliding and is essential for simulating grasping, walking, and any task involving stable contact. Warm starting from previous solutions improves solver convergence for these non-linear constraints.

MODEL COMPARISON

Coulomb Friction vs. Other Friction Models

A comparison of classical and advanced friction models used in physics simulation and robotics, highlighting their mathematical formulations, computational characteristics, and suitability for different applications.

Feature / MetricCoulomb (Dry) FrictionViscous FrictionStribeck Friction

Primary Physical Domain

Dry contact between solid surfaces

Fluid-mediated shear (lubrication)

Mixed / boundary lubrication

Mathematical Form (Simplified)

F_f = μ * F_n (static), F_f = μ_k * F_n (kinetic)

F_f = c * v

F_f = [F_c + (F_s - F_c) * e^(-|v/v_s|^δ)] * sgn(v) + σ * v

Velocity Dependence

Discontinuous (static vs. kinetic); independent of sliding speed

Linear with velocity (v)

Non-linear; includes static, Stribeck, and viscous regions

Static Friction (Stiction) Modeled

Yes, via separate coefficient μ_s

No

Yes, explicitly via F_s parameter

Pre-sliding Displacement (Dwell)

No

No

Yes, via additional spring-like elements in some extensions

Hysteresis & Non-Conservatism

No (rate-independent)

No (fully dissipative, but path-independent)

Yes, due to memory-dependent friction lag

Computational Cost (Solver)

High (requires LCP/iterative solver for stick-slip)

Low (explicit, additive damping)

Very High (complex non-linear ODEs, state tracking)

Common Use in Sim-to-Real

Core model for rigid body contact in MuJoCo, Bullet, Drake

Added damping for joint motors & suspension

High-fidelity robotic contact (e.g., precise grippers, high-precision stages)

Parameters to Identify

μ_s (static coeff.), μ_k (kinetic coeff.)

Damping coefficient (c)

F_s, F_c, v_s, δ, σ (multiple non-linear params)

Suitability for Real-Time Simulation

Conditional (requires robust solver tuning)

Excellent

Poor (except heavily simplified approximations)

CONTACT AND RIGID BODY DYNAMICS

Applications in AI and Robotics Simulation

Coulomb friction is a foundational model for simulating realistic physical interactions between surfaces, crucial for training robust robotic policies in virtual environments.

01

Core Model Definition

Coulomb friction is a classical dry friction model defining two distinct regimes:

  • Static Friction: The maximum force that must be overcome to initiate sliding, proportional to the normal force: F_static_max = μ_s * N.
  • Kinetic Friction: A constant opposing force during sliding motion: F_kinetic = μ_k * N. The model's key assumptions are that friction is independent of apparent contact area and velocity magnitude (for kinetic friction). The coefficients μ_s (static) and μ_k (kinetic) are material properties, with μ_s typically ≥ μ_k.
02

Implementation in Physics Engines

In simulation engines like MuJoCo, Bullet, or Isaac Sim, Coulomb friction is approximated within the constraint solver. Each contact point is modeled with a friction cone—a geometric representation of allowable tangential forces. The solver (often via a Linear Complementarity Problem) finds forces that:

  • Prevent inter-penetration (normal force).
  • Satisfy |F_tangent| ≤ μ * F_normal.
  • Apply the stiction transition logic, where the solver determines if the contact is sticking (static) or sliding (kinetic). This is computationally intensive and a key factor in simulation step time.
03

Impact on Sim-to-Real Transfer

Inaccurate friction modeling is a primary source of the reality gap. Key challenges include:

  • Parameter Identification: Real-world μ_s and μ_k are difficult to measure and are environment-dependent (e.g., dust, moisture).
  • Surface Geometry: Real surfaces are rough, violating the model's assumption of uniform pressure.
  • Velocity Dependence: Real kinetic friction often has a slight negative viscous slope (Stribeck effect), not captured by the basic model. Policies trained with incorrect friction can fail catastrophically on real hardware, e.g., a gripper dropping objects or a robot leg slipping.
04

Domain Randomization for Robustness

To create policies robust to friction uncertainty, Domain Randomization is applied:

  • Parameter Randomization: The friction coefficients (μ_s, μ_k) are sampled from a plausible range (e.g., 0.3 to 1.2) during each training episode.
  • Randomized Surface Properties: Different friction values can be assigned to different floor tiles or object surfaces in the sim.
  • Asymmetric Randomization: Sampling μ_s and μ_k independently to cover a wider space of material behaviors. This forces the reinforcement learning policy to learn a generalized strategy that does not overfit to one specific friction value.
05

Advanced Friction Models in Simulation

For higher-fidelity simulation, engines implement extensions to the basic Coulomb model:

  • Pyramid Approximation: The friction cone is approximated as a pyramid for simpler linear constraint solving.
  • Regularized Friction: A small velocity-dependent term is added to avoid the numerical discontinuity at zero velocity, improving solver stability.
  • Anisotropic Friction: Different coefficients for two orthogonal tangential directions (e.g., like a tire or a ski).
  • Stribeck Effect: Modeling the velocity-dependent transition from static to kinetic friction. These are used in high-precision digital twins for control system validation.
06

Example: Robotic Manipulation & Locomotion

Grasping & Manipulation:

  • Friction determines if a gripper can hold an object against gravity. Policies must learn to apply sufficient normal force.

Legged Locomotion:

  • Friction between a robot's foot and the ground dictates maximum push-off force and lateral stability. A policy trained with high sim friction may cause a real robot to slip and fall on a low-friction surface.

Push-Recovery Controllers:

  • Algorithms that regain balance after a shove rely critically on accurate friction cone constraints to compute feasible recovery steps.
CONTACT AND RIGID BODY DYNAMICS

Frequently Asked Questions

Coulomb friction is a foundational model for simulating dry contact in physics engines. These questions address its implementation, limitations, and role in training robust robotic policies for sim-to-real transfer.

Coulomb friction is a classical model of dry friction that defines the maximum static friction force and the constant kinetic friction force as being proportional to the normal force pressing the surfaces together, independent of the apparent contact area.

In a physics engine, it is implemented per contact point and typically involves two coefficients: the static friction coefficient (μ_s) and the kinetic friction coefficient (μ_k). The solver calculates a friction cone—a geometric representation of allowable tangential forces. The maximum static friction is F_friction_max = μ_s * F_normal. If the applied tangential force is below this threshold, the bodies stick (static friction). Once exceeded, sliding begins, and the friction force becomes F_friction = μ_k * F_normal, opposing the direction of motion. This model is often solved as part of a Linear Complementarity Problem (LCP) or using an impulse-based method within the constraint solver.

Prasad Kumkar

About the author

Prasad Kumkar

CEO & MD, Inference Systems

Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.

His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.