space play/pause · → or . advance one frame.
Drag the block anywhere — including straight into the lower one —
then press play. There is no damping and no friction here, only the elastic
contact and gravity, so the total energy is the claim: it should stay at 1.
roll damping
The test first, the knob second, on purpose. The button
sets the scene up and finds the slowest shove that still crosses the tub,
but it leaves the damping alone — at zero, what you get is what the contact
model on its own says a square does. Raise the damping and run it again.
Production carries CHUNK_ROLL = 3.0. It is not a force: it
multiplies ω at the end of a step, and only while the block is in
contact.
contacts
|Fn| net repulsion
|Ft| friction
v·n̂ (+ = closing)
|vt| slide
friction bound
dashpot power
friction power
both ≤ 0 since release
E / E₀ since release
worst rise, untouched
ω
turns accumulated
deepest overlap Ac
ω·dt of the contact
t
dt (fixed)
roll-test launch
The elastic force is not drawn here — panel 1 is where it lives.
What is drawn is the two dissipative terms, both at the single point production
applies them to: the dashpot along the contact normal and friction
across it. Tilt the tub and raise μ to make the block roll instead of slide.
While paused, dragging the block shows the forces its drag velocity would
produce, and they hold when the pointer stops so they can be read. That is a
convenience, not a measurement: nothing is being integrated. While playing, a
drag throws the block.