Ball interactions solved with displacement & velocity vectors. Impacts between different masses resolved using physics: conservation of momentum & kinetic energy. Energy losses allowed on 'impact' mode.
Small web app with canvas animations and some physics, maths.