A simple Discrete Element Method implementation in Python.
A particle bouncing on top of a particle (with comparatively infinite density and no gravity).
A series of particles dropped on top of a particle (with comparatively infinite density and no gravity) with small offsets.
A particle bouncing on top of a fixed wall.
Particles with and without friction sliding off of other particles (with comparatively infinite density and no gravity).
Particles with and without friction sliding along a fixed wall from a starting velocity.