function step(ball, dt) {
let { x, y, dx, dy, ts } = ball;
if (x < xMin || x > xMax) {
console.log("out of bounds:", ball);
ball.x = Math.min(xMax, Math.max(xMin, x));
return ball;
}
ts = ts + dt;
dx = 0.99 * dx;
dy = 0.99 * dy - 0.05;
x = x + dx;
y = y + dy;
if (y < yMin) {
y = yMin + (yMin - y);
dy = -dy * 0.7;
}
return { ...ball, x, y, dx, dy, ts };
}