block by monfera ffa2a4fdacbb7c7b1c1ad34337fb8086

Collision test with D3 4.0

Full Screen

Following up on a chat with Toph Tucker, this example shows that the collide force of d3.forceSimulation takes into account the particle “masses” (proxy: square radii of the colliding particles). It conserves momentum but the collision isn’t elastic. It appears to be a perfectly inelastic collision.

Toph implemented elastic collisions with his force and the D3 force.

It doesn’t matter much for the visual output of the Brownian motion example from which it’s extracted, but for a pool / snooker simulator, just roll your own forces, similar to how the Brownian example makes particles bounce back from walls.

The main benefit of the built-in collide force is that it uses the quadtree for efficiency, but a cue game simulator would need to handle few “particles” only.

Built with

forked from monfera‘s block: Brownian motion with D3 4.0 velocity Verlet physics