Drag the canvas to launch a ball and observe realistic projectile motion with gravity and air resistance. Save trajectories for comparison, step frame-by-frame, and adjust speed or pause for detailed analysis.
Coefficient of restitution e is the ratio of separation speed to approach speed before and after collision. In a perfectly elastic collision (e=1), energy is fully conserved and the ball bounces back to the same height forever. Real balls have e<1, so energy is lost to heat, sound, and deformation with each collision.
Bounce height decay: The bounce height after n bounces from initial height h₀ is h₀ × e²ⁿ. For e=0.75, after 5 bounces it is about 24% of h₀, and after 10 bounces about 5.6%.
Floor friction μ attenuates horizontal velocity vₓ by a factor of (1-μ) on each bounce. Move the slider to experience the difference between a slippery floor and a rough floor.
Ball-to-ball collisions use equal-mass elastic collision equations. The coefficient of restitution e applies to both wall and ball-ball collisions.
The core of the simulation is governed by Newton's second law of motion, which determines the ball's acceleration from the forces acting on it. Gravity pulls down, and wind applies a horizontal force.
$$ \vec{F}_{\text{net}}= m\vec{a}$$Where $\vec{F}_{\text{net}}$ is the net force (gravity + wind + floor contact forces), $m$ is mass, and $\vec{a}$ is acceleration. In the simulator, adjusting the Gravity (g) and Wind sliders directly changes these forces.
When the ball hits the floor, two key parameters model the collision. The vertical bounce uses the coefficient of restitution, and friction slows the horizontal speed.
$$ v_y' = -e \cdot v_y \quad \text{and} \quad \Delta v_x = -\mu \cdot v_x $$Here, $v_y'$ is the vertical velocity after the bounce, $e$ is the Coefficient of Restitution, and $v_y$ is the velocity just before impact. The horizontal velocity $v_x$ is reduced by the Floor Friction μ. A high $e$ gives a bouncy ball, while a high $\mu$ quickly kills its sideways slide.
Sports Equipment Design: Engineers use simulations like this to design bouncy balls, basketballs, or tennis balls by tweaking the coefficient of restitution. Getting the right bounce is crucial for the feel and performance of the game.
Vehicle Crash Testing & Safety: The principles of restitution and friction are vital in modeling how a vehicle or dummy rebounds and slides after a crash. Simulating different surfaces (high μ asphalt vs. low μ ice) helps design safer cars.
Animation & Game Physics: To make virtual worlds feel real, game engines implement these exact equations. Adjusting gravity, bounciness, and friction lets animators create everything from a cartoon character's jump to a realistic rolling rock.
Granular Material Flow: In industries handling grains, pills, or powders, understanding how millions of tiny "balls" bounce and frictionally interact is key to designing efficient hoppers, conveyors, and packaging systems.
When you start using this simulator, there are a few points beginners often stumble on. The first is that the coefficient of restitution e is not a constant determined solely by material. While it certainly differs greatly between a rubber ball and clay, even the same ball can see changes based on impact velocity or temperature. For example, during an extremely high-speed collision, the material may not fully deform, causing e to decrease. The simulator lets you set it as a single value, but keep in mind that in the real world, it's condition-dependent.
The second is confusion between the "kinetic friction" and "static friction" coefficients μ. The phenomenon primarily modeled by this tool is closer to "kinetic friction," as when a ball slows down while rolling. However, for a ball to start rolling without slipping, a larger "static friction coefficient" may be required. The reason the ball doesn't slide sideways even if you set μ to 0 is that this model simplifies the representation of "pure rolling." In practical applications, this difference is key to determining the starting torque of machinery.
Finally, regarding the interpretation of the "Wind (Lateral Force)" parameter. This doesn't represent real wind per se, but rather simulates giving the ball an initial lateral velocity or a situation where a constant force is continuously applied. Actual air resistance is more complex, being non-linear (e.g., proportional to the square of velocity). The reason the ball doesn't accelerate indefinitely when you increase the "wind" in the simulator is that the frictional force eventually balances the wind force. This is a great example for understanding the concept of terminal velocity.