Part III · Interaction · Chapter 10
available

Friction

Normal contact keeps objects from passing through each other. Friction constrains motion along the contact—and its approximations decide whether a block sticks, a ball settles, or a grasp resists twist.

Level
Advanced
Hands-on
160–220 minutes
Before you start
Chapters 2, 8–9; contact impulses and vector norms

By the end, you can…

  • Distinguish static friction from dynamic friction.
  • Derive the critical incline angle tanθ=μs\tan\theta=\mu_s.
  • Project tangential impulses onto circular and pyramidal limits.
  • Explain rolling and torsional patch resistance.
  • Interpret tactile slip speed, friction utilization, filtering, and hysteresis.
  • Connect friction to ball-pushing arrival and settling.

Friction is a limit, not a fixed force

Static friction chooses whatever tangential force is needed to prevent slip, up to a limit:

ftμsfn\lVert f_t\rVert\le\mu_s f_n

A resting block with no horizontal load has zero friction—not μsfn\mu_s f_n. Add a 3 N push and friction supplies 3 N in the opposite direction. Once the required force exceeds the limit, sliding begins and a common model uses:

ft=μdfnvtvt,qquadμdμsf_t=-\mu_d f_n\frac{v_t}{\lVert v_t\rVert},qquad \mu_d\le\mu_s

The discontinuity at zero slip is why simulators usually solve friction together with contact impulses instead of evaluating a simple smooth force law.

LavenderSim material mixing: each contact uses the geometric mean of the two surfaces' coefficients. If both surfaces use the same value, the effective coefficient is unchanged.

Experiment 1: cross the static threshold two ways

On an incline, gravity decomposes into mgsinθmg\sin\theta downhill and mgcosθmg\cos\theta normal to the surface. Static balance is possible while:

mgsinθμsmgcosθθarctanμsmg\sin\theta\le\mu_smg\cos\theta{}\quad\Longrightarrow\quad\theta\le\arctan\mu_s

For μs=0.6\mu_s=0.6, the ideal critical angle is 30.96°. A horizontal push predicts the same threshold: Fμsmg=5.886F\le\mu_smg=5.886 N for a one-kilogram block.

Experiment 01verified

Tilt and push the same contact

Does measured motion begin near both analytical limits?

Block displacement across incline angle and horizontal push sweeps
The native block remains within a millimeter through 28°, then moves visibly by 30°. It sticks through 5.5 N and slides at 6 N. Manifold discretization and finite-step perturbations make the measured transition slightly earlier than the ideal 30.96°.
python
theta_critical = math.atan(mu_static)
static_limit = mu_static * mass * gravity

below = push_trial(5.5)  # sticks
above = push_trial(6.0)  # slides

After sliding starts, LavenderSim's measured tangential-force utilization drops toward μd/μs=0.75\mu_d/\mu_s=0.75. This is not weaker numerical convergence; it is the chosen dynamic coefficient.

Failure modes: always apply μfn\mu f_n, use μd\mu_d for the onset threshold, ignore material mixing, or classify tiny contact transients as sustained slip.

Expected result
The command exits successfully and reproduces the numerical or visual relationship described in this card.
Failure modes
Non-finite values, a reversed trend, a failed assertion, or a materially different plot means the assumptions, seed, timestep, build, or backend should be inspected before continuing.

Experiment 2: project a two-dimensional friction impulse

In 3D, a contact has two tangent directions. An isotropic Coulomb model limits their combined impulse:

λt12+λt22μλn\sqrt{\lambda_{t1}^2+\lambda_{t2}^2}\le\mu\lambda_n

The feasible cross-section is a disk. Projection preserves direction and limits magnitude. A cheaper approximation may constrain tangent components separately, producing a square cross-section and up to 2\sqrt2 too much diagonal grip.

Experiment 02verified

Compare circular and square projection

Should grip strength depend on how tangent axes happen to be oriented?

Trial tangential impulses projected onto a disk and square friction limit
The circular limit is isotropic. Independent component clamps form a square pyramid whose diagonal radius is √2 for the same axial limit.
python
trial = old_tangent_impulse + delta
if np.linalg.norm(trial) > static_limit:
    trial *= dynamic_limit / np.linalg.norm(trial)

LavenderSim uses this disk projection. Polyhedral pyramids can be useful in optimization, but their number and orientation of facets are modeling decisions—not the Coulomb law itself.

Expected result
The command exits successfully and reproduces the numerical or visual relationship described in this card.
Failure modes
Non-finite values, a reversed trend, a failed assertion, or a materially different plot means the assumptions, seed, timestep, build, or backend should be inspected before continuing.

Experiment 3: give the contact patch an area

A mathematical point cannot resist rotation about its normal, and ideal pure rolling has no tangential slip. Real patches deform. Compact rigid-body engines often add bounded angular impulses:

λtwistμtwist,rpλn,qquadλrollμroll,rpλn|\lambda_{twist}|\le\mu_{twist},r_p\lambda_n,qquad \lVert\lambda_{roll}\rVert\le\mu_{roll},r_p\lambda_n

rpr_p is a modeled contact-patch radius. These are useful phenomenological terms; they are not detailed tire or soft-material models.

Experiment 03verified

Roll a sphere and twist a grasped payload

Which motion survives when angular friction is zero?

Sphere speed for rolling friction sweeps and grasped payload spin for torsional friction sweeps
Higher rolling resistance shortens the sphere's coast. Two preloaded pads with nonzero torsional friction stop an axial payload spin that ordinary point friction barely sees.
0.82 m/sspeed after 2 s at μroll = 0
0.06 m/sspeed after 2 s at μroll = 0.12
8 → 0 rad/storsion μ = 0.1 grasp

Failure modes: confuse rolling resistance with sliding friction, omit patch radius from units, apply an unbounded resisting torque, or claim a patch approximation predicts real tire behavior.

Expected result
The command exits successfully and reproduces the numerical or visual relationship described in this card.
Failure modes
Non-finite values, a reversed trend, a failed assertion, or a materially different plot means the assumptions, seed, timestep, build, or backend should be inspected before continuing.

Experiment 4: make slip observable

A controller needs more than a friction coefficient. LavenderSim's tactile summary reports normal force, shear force, post-solve tangential slip speed, static-limit utilization, a filtered slip score, a hysteretic slip flag, centroid, twist/rolling moments, and taxel forces.

u=λtμsλn,qquadsraw=max(vtvthreshold,uuthreshold)u=\frac{\lVert\lambda_t\rVert}{\mu_s\lambda_n},qquad s_{raw}=\max\left(\frac{\lVert v_t\rVert}{v_{threshold}},\frac{u}{u_{threshold}}\right)

The score is low-pass filtered. The flag turns on above 1.0 and turns off below 0.58, preventing rapid chatter near a single threshold.

Experiment 04verified

Disturb a preloaded tactile grasp

Can the sensor separate high utilization from actual persistent slip?

Tactile slip speed utilization filtered score and hysteretic flag over time
A 4 m/s lateral disturbance exceeds the dynamic limit. Slip speed spikes, utilization sits near μd/μs = 0.75, the filtered score crosses one, and the hysteretic flag remains stable while the motion decays.
python
tactile = observation["tactile"]["pad_sensor"]["summary"]
slip_speed = tactile[3]
friction_utilization = tactile[4]
slip_score, slipping = tactile[5], bool(tactile[6])

Failure modes: infer slip from utilization alone, threshold raw velocity without force gating, forget filtering delay, or treat taxel pressure as an exact continuum stress field.

Expected result
The command exits successfully and reproduces the numerical or visual relationship described in this card.
Failure modes
Non-finite values, a reversed trend, a failed assertion, or a materially different plot means the assumptions, seed, timestep, build, or backend should be inspected before continuing.

Experiment 5: arrival is not settling

The ball-pushing task from the environment suite deliberately uses a low-friction board. That makes pushing easier but target control harder: the ball can cross the target with substantial remaining speed. A reward for position alone encourages fly-through behavior.

Experiment 05verified

Apply one identical push pulse

How does board friction change both destination and stopping time?

Ball speed and position after identical pushes on low and higher friction boards
After the 0.1 s push, the low-friction ball is still moving at 0.62 m/s after three seconds. The higher-friction ball has stopped around 1.06 m.

A useful task reward therefore combines target distance, low speed near the target, and dwell time. Friction is part of task design, not only engine configuration.

Expected result
The command exits successfully and reproduces the numerical or visual relationship described in this card.
Failure modes
Non-finite values, a reversed trend, a failed assertion, or a materially different plot means the assumptions, seed, timestep, build, or backend should be inspected before continuing.

Paw-check: find the limit before tuning it

  1. Repeat the incline derivation when the applied force is not parallel to the plane.
  2. Rotate a four-sided friction pyramid and quantify direction-dependent error.
  3. Set different block and ramp coefficients and verify geometric-mean mixing.
  4. Plot dissipated kinetic energy for each rolling-resistance curve.
  5. Halve contact-patch radius and predict torsional stopping time.
  6. Change slip-filter gain and hysteresis thresholds without creating chatter.
  7. Design a ball-target reward that values arrival, stopping, and stationary dwell separately.
What should I be able to say now?

Static friction is a bounded reaction that matches demand; dynamic friction opposes established slip. In 3D, a circular tangent-impulse limit is isotropic while pyramidal approximations introduce directional error. Rolling and torsional terms model finite contact-patch moments. Tactile telemetry turns friction state into a controllable signal, and low-friction task design must explicitly reward settling rather than mere target crossing.