/ Ball Motion Simulator ← Simulator Library Back
PHYSICS SIM

Ball Physics Simulator

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.

Sim
Pull and release → Launch ball Drag floor → Change height Drag side walls → Change width
Physics Parameters
9.8
0.75
0.12
0.0
Ball Settings
Playback Controls
Trajectory Comparison
Save: 0 / 5
Presets
Status Display
Results
0
Ball Count
0
Total Bounces
0.0
Max Velocity m/s
0.0
Elapsed Time s
KE
0 J
PE
0 J
Total
0 J
Slow
Fast (Ball color = velocity)

Physics Explanation

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.

What is Projectile Motion with Bounce?

🙋
What exactly is the "coefficient of restitution" slider in this simulator? It sounds complicated.
🎓
Basically, it's a measure of bounciness. A value of 1 means a perfectly elastic bounce where the ball loses no speed vertically. A value of 0 means it doesn't bounce at all—like dropping a lump of clay. Try moving the slider from 0 to 1 and flick a ball; you'll see the dramatic difference in how high it rebounds.
🙋
Wait, really? So if I set gravity to zero, the ball would just float? And what does the "floor friction" do?
🎓
Exactly! Slide the gravity control all the way down to simulate a spacewalk. Friction, controlled by the μ slider, affects horizontal motion. A high μ will quickly slow the ball's roll after it bounces. For instance, a ball on thick carpet (high μ) stops quickly, while on ice (low μ) it keeps sliding. Try launching a ball with high speed and then crank up the friction to see it stop almost instantly.
🙋
That makes sense. What about the "Wind" parameter? Is that just a sideways force?
🎓
In practice, yes. It applies a constant horizontal force, like a steady breeze. A common case is simulating a ball thrown on a windy day. Turn on the "TrajectoryDisplay" and "Velocity Arrow" options, then add some wind. You'll see the parabolic path bend and the velocity arrow tilt, showing how the wind constantly changes the ball's horizontal motion.

Physical Model & Key Equations

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.

Frequently Asked Questions

It is determined by the velocity vector at the moment you release the mouse after dragging on the canvas. The length of the drag corresponds to the magnitude of the initial velocity, and the direction corresponds to the throwing direction. A slow, short drag results in a weak throw, while a quick, long drag results in a strong throw.
Click the 'Save Trajectory' button that appears after throwing to save the current trajectory. After saving multiple trajectories, you can toggle their visibility from the list on the screen to compare them. This is useful for visually checking differences when changing the coefficient of restitution or initial velocity.
The coefficient of restitution e represents the energy loss during a collision. At e=1, it is a perfectly elastic collision, and the bounce height does not decrease. The smaller e is, the more rapidly the bounce height decreases, and at e=0, the object sticks to the floor. Mathematically, the bounce height after the n-th bounce is calculated as h₀ × e^(2n).
Frame-by-frame playback is effective for observing velocity changes immediately after a collision or fine angles in a parabolic trajectory. Setting the speed change slider to low allows you to carefully examine the height decay after each bounce. Conversely, setting it to high lets you quickly grasp the overall trend of the trajectory over a long period.

Real-World Applications

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.

Common Misconceptions and Points to Note

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.