press play to start press stop to pause press play to delete all balls click to add balls click z to reset balls
Inspired by @dinosu's chaotic bouncing balls the bounce angle is determined by a function that gives a slope at each point (a slope field for each surface type)