Thanks! This actually doesn't use raycasting per se (raycasting is more of a rendering technique for calculating the colors of screen pixels).
Everything in this game is controlled by a physics simulation (using Box2D, a physics library) where the particles are small circles, the player is a circle, the walls are polygons, and they collide and interact based on physical parameters I've set like mass, density, and friction.
Here's what it looks like under the hood. Definitely interesting to make games this way - it adds a certain dynamicism that's hard to achieve without 'real' physics: