How fast does a ball bounce back after it hits the ground?
You’ve probably watched a basketball slam into the hardwood and then spring up again, or seen a rubber ball thud on the sidewalk and ricochet a few inches away. That's why what’s really happening in that split‑second? The secret lies in something engineers call the coefficient of restitution (often shortened to COR).
Real talk — this step gets skipped all the time.
If you’ve ever tried to predict how high a dropped object will rebound, you’ve already been playing with that number—whether you knew it or not. Below is everything you need to know to calculate the coefficient of restitution, why it matters, and how to avoid the common pitfalls that trip up even seasoned hobbyists Still holds up..
What Is Coefficient of Restitution
In plain English, the coefficient of restitution is a ratio that tells you how “bouncy” a collision is. It compares the speed (or velocity) of two objects after they hit each other to the speed before the impact. Even so, a COR of 1 means a perfectly elastic collision—no kinetic energy is lost, and the objects bounce away with the same speed they arrived with (just reversed direction). A COR of 0 means a perfectly inelastic collision—everything sticks together, and the objects walk away with zero relative speed Not complicated — just consistent. Simple as that..
Elastic vs. Inelastic Collisions
- Elastic collision – Think of a superball on a smooth floor. It compresses, stores energy, and then releases it almost entirely, so it nearly returns to its original height.
- Inelastic collision – A lump of clay hitting a wall. The clay flattens, some energy turns into heat and deformation, and the wall barely moves.
Real‑world objects sit somewhere in between. The COR quantifies exactly where Most people skip this — try not to..
The Basic Formula
[ e = \frac{v_{\text{after}}}{v_{\text{before}}} ]
Where:
- ( e ) = coefficient of restitution (unitless)
- ( v_{\text{after}} ) = relative speed of separation after impact
- ( v_{\text{before}} ) = relative speed of approach before impact
If you’re dealing with a single object dropping onto a massive, immovable surface (like a ball on concrete), the surface’s velocity is essentially zero, so the formula simplifies to the ratio of rebound speed to drop speed.
Why It Matters
Everyday Applications
- Sports equipment design – A tennis racket’s strings are tuned to a specific COR to give players a predictable “feel.”
- Automotive safety – Crash‑test engineers use COR to model how car bodies crumple and how occupants decelerate.
- Robotics – Legged robots rely on COR calculations to plan stable hopping gaits.
What Goes Wrong Without It
If you ignore COR when designing a bouncing robot, you might end up with a machine that never lifts off or that flies erratically. In real terms, in sports, the wrong COR can make a ball feel “dead” or “explosive,” ruining the user experience. In short, COR is the hidden knob that bridges theory and the tactile world Simple, but easy to overlook. Practical, not theoretical..
How It Works (or How to Do It)
Below is a step‑by‑step guide to calculating the coefficient of restitution for a simple drop test. The same principles extend to more complex collisions, just with extra bookkeeping.
1. Gather Your Gear
- Object – a ball, a rubber puck, or any item you want to test.
- High‑speed camera or motion sensor – 1000 fps is nice but not mandatory; a smartphone at 240 fps can work.
- Measuring tape or ruler – to gauge heights.
- Flat, rigid surface – concrete, steel plate, or a thick wooden board.
2. Measure the Drop Height
Pick a convenient height, say 1 meter, and measure from the point where the object’s center of mass starts its fall to the surface. Accuracy matters because the initial velocity depends on the square root of that height That's the whole idea..
3. Compute the Impact Velocity
Assuming negligible air resistance, use the free‑fall equation:
[ v_{\text{before}} = \sqrt{2 g h} ]
- ( g ) ≈ 9.81 m/s² (acceleration due to gravity)
- ( h ) = drop height
For a 1‑meter drop, ( v_{\text{before}} ≈ \sqrt{2 × 9.81 × 1} ≈ 4.43 m/s ).
4. Capture the Rebound
Play back the high‑speed footage frame‑by‑frame. Identify the moment the object leaves the surface and note its position a few frames later. Measure the vertical distance traveled in those frames and divide by the time interval to get ( v_{\text{after}} ).
It sounds simple, but the gap is usually here.
If you’re using a motion sensor, it will output the rebound speed directly—skip the manual counting.
5. Plug Into the Formula
[ e = \frac{v_{\text{after}}}{v_{\text{before}}} ]
Suppose the rebound speed you measured is 3.2 m/s. Then:
[ e = \frac{3.2}{4.43} ≈ 0.72 ]
That tells you the ball retains about 72 % of its approach speed after the bounce.
6. Verify Consistency
Repeat the test at least three times and average the results. Small variations are normal; they could be due to surface imperfections, spin, or measurement error.
7. Adjust for Angle (If Needed)
If the collision isn’t perfectly vertical, you need the relative velocity along the line of impact. Decompose the velocities into normal (perpendicular) and tangential components. The COR only cares about the normal component:
[ e = \frac{v_{\text{after, normal}}}{v_{\text{before, normal}}} ]
Most hobbyists stay with vertical drops to keep things simple.
Common Mistakes / What Most People Get Wrong
Ignoring Energy Loss to Rotation
A spinning ball often loses more kinetic energy to angular momentum than a non‑spinning one. If you drop a basketball with a slight spin, the measured rebound height will be lower, and you might incorrectly conclude the material is “less bouncy.” The fix? Keep the object free of spin, or measure the normal component only Not complicated — just consistent..
Using Height Instead of Velocity Directly
A frequent shortcut is to compare rebound height to drop height and call that the COR. Even so, that only works if you assume the same gravitational conversion on both legs, which is okay for vertical drops and when air resistance is negligible. But if you’re dealing with inclined planes or different gravitational fields (think lunar experiments), you need the velocity ratio, not the height ratio.
Forgetting the Surface’s Role
The COR is technically a property of both bodies in contact. A superball on a steel plate will have a higher COR than the same ball on a carpet. Yet many guides treat COR as an intrinsic material constant. In practice, you should always specify the surface.
Rounding Too Early
If you round the impact velocity to 4 m/s before dividing, you’ll get a noticeably lower COR (e.g.Which means , 3. That's why 2/4 = 0. 80 vs. 3.Also, 2/4. 43≈0.72). Keep extra decimal places until the final step.
Assuming COR Is Constant Across Speeds
Materials can behave differently at different impact speeds. 85 at a gentle drop but drop to 0.65 when slammed at 5 m/s. A rubber ball may have a COR of 0.If you only test one speed, you’ll miss that nuance.
Practical Tips / What Actually Works
- Use a smooth, level surface. Even a tiny bump changes the normal direction and skews results.
- Mark the exact drop point. A laser pointer can help you keep the ball’s center over the same spot each trial.
- Calibrate your camera. Set the frame rate, resolution, and make sure the lens isn’t distorted. A ruler in the frame helps convert pixels to meters.
- Control temperature. Some polymers become softer (higher COR) when warm and harder (lower COR) when cold. Let the test piece equilibrate to room temperature.
- Document everything. Note the ball’s brand, diameter, mass, surface texture, and the exact height. Future you (or a reader) will thank you.
- Try multiple heights. Plotting COR versus impact speed often reveals a trend line; you can then extrapolate for speeds you can’t easily test.
- Consider a drop tower. If you need repeatable, high‑precision data, a simple vertical guide rail reduces lateral wobble and improves consistency.
FAQ
Q: Can I calculate COR without a camera?
A: Yes. Use a spring‑scale or a force sensor to capture the impact force curve, integrate to get impulse, and compare the impulse before and after. It’s more involved but works if video isn’t available.
Q: Does mass affect the coefficient of restitution?
A: For two objects of vastly different mass (like a ball and a concrete floor), the heavier body’s motion is negligible, so COR appears mass‑independent. When masses are comparable, the COR can change slightly because each body deforms differently.
Q: How does COR differ from “bounciness” in video games?
A: Game engines often use a simplified COR value to compute post‑collision velocities, but they may also add “drag” or “stickiness” factors that don’t exist in physics. The game’s COR is more of a design parameter than a measured property Simple, but easy to overlook..
Q: What’s a typical COR for a basketball?
A: Freshly inflated, a regulation basketball usually has a COR around 0.75–0.80 on a hardwood floor. It drops as the ball ages or the temperature falls That alone is useful..
Q: Is there a way to increase a material’s COR?
A: Surface treatments (polishing, coating) reduce energy loss to friction. Adding internal springs or using materials with higher elastic modulus (like certain thermoplastic elastomers) also boosts COR Practical, not theoretical..
So there you have it—a hands‑on, no‑fluff guide to calculating the coefficient of restitution. Day to day, whether you’re a weekend tinkerer building a hopping robot, a coach fine‑tuning a basketball, or just a curious mind wanting to know why that ping‑pong ball springs back, the steps above will get you a reliable number and a better feel for the physics at play. Happy bouncing!
Easier said than done, but still worth knowing.
7. Automating the Workflow (Optional but Powerful)
If you find yourself repeating the same experiment dozens of times—say, testing a new polymer blend or comparing several ball types—consider scripting the entire pipeline. Below is a lightweight, cross‑platform approach using Python, OpenCV, and NumPy Easy to understand, harder to ignore..
-
Capture & Store Video
import cv2 cap = cv2.On top of that, videoCapture(0) # 0 = default webcam cap. set(cv2.VideoWriter('drop.CAP_PROP_FPS, 240) # request high frame‑rate if supported out = cv2.avi', cv2. while True: ret, frame = cap.read() if not ret: break out.write(frame) cv2.imshow('Live', frame) if cv2. cap.release() out.release() cv2.destroyAllWindows() -
Detect the Ball and Extract Height Data
import numpy as np import cv2 # Load the video cap = cv2.On the flip side, videoCapture('drop. avi') heights = [] fps = cap.get(cv2. # Calibration: pixels per meter (measured once with a ruler) ppm = 500.0 # example value; adjust to your setup while True: ret, frame = cap.read() if not ret: break # Convert to HSV and isolate the ball (assume a bright orange ball) hsv = cv2.Because of that, cvtColor(frame, cv2. COLOR_BGR2HSV) mask = cv2.Now, inRange(hsv, (5, 150, 150), (15, 255, 255)) mask = cv2. morphologyEx(mask, cv2.MORPH_OPEN, np.ones((5,5),np. # Find contours and pick the largest one contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.And cHAIN_APPROX_SIMPLE) if contours: c = max(contours, key=cv2. contourArea) ((x, y), radius) = cv2.minEnclosingCircle(c) if radius > 5: # filter noise # y‑coordinate grows downwards; invert to get height above floor height_px = frame.shape[0] - y height_m = height_px / ppm heights. cap.release() -
Detect Peaks (Impact Times) and Compute Velocities
from scipy.signal import find_peaks # Convert height list to a NumPy array for easier slicing h = np.array(heights) # Peaks correspond to the highest point before each bounce. Day to day, # Use a minimum distance of ~0. In practice, 2 s (0. Worth adding: 2*fps frames) to avoid picking the same peak twice. peaks, _ = find_peaks(h, distance=0.2*fps, prominence=0. # Times of each peak t_peaks = peaks / fps # Impact times are roughly halfway between successive peaks. # For a more accurate estimate, locate the frame where the height derivative changes sign. impact_times = (t_peaks[:-1] + t_peaks[1:]) / 2 # Velocities just before impact (downward) and just after (upward) v_down = np.diff(h[peaks]) * fps # Δh / Δt ≈ (h_i+1 - h_i) * fps v_up = np.diff(h[peaks][1:]) * fps # same but shifted one bounce forward # Take absolute values because COR uses magnitudes cor_vals = np.abs(v_up) / np.abs(v_down) print("Estimated COR per bounce:", cor_vals) print("Mean COR:", np.mean(cor_vals)) -
Batch‑Run Over Multiple Files
Wrap the above logic in a functionprocess_video(path, ppm, fps_target)and loop over a directory of recordings. Store results in a CSV for later statistical analysis That's the part that actually makes a difference..
Why automate?
- Consistency: Human frame‑by‑frame counting inevitably introduces small timing errors; a script applies the same criteria every time.
- Speed: An hour‑long manual analysis becomes a minute‑long batch job.
- Traceability: The code itself becomes part of your lab notebook—anyone can reproduce the numbers from the raw videos.
8. Interpreting the Results Beyond a Single Number
Once you have a set of COR values, ask yourself what they mean for your application.
| Observation | Physical Interpretation | Practical Implication |
|---|---|---|
| COR decreases with bounce number | Energy loss is cumulative; material may be heating or micro‑cracking. | Tighten experimental controls; perhaps the ball’s surface is uneven. |
| COR is higher on a polished steel plate than on wood | Less surface friction and lower internal damping in the plate. | |
| COR > 1 (rare, but can appear in measurements) | Measurement error—usually timing or scaling inaccuracies. | Expect diminishing performance; consider cooling periods or material upgrades. |
| Large spread (high standard deviation) | Inconsistent drop height, ball spin, or surface imperfections. | Re‑calibrate the ruler, verify frame‑rate, or check for lens distortion. |
Not the most exciting part, but easily the most useful.
Plotting COR versus impact velocity often yields a sigmoidal curve: low speeds give near‑elastic rebounds, mid‑range speeds show a dip due to viscoelastic hysteresis, and very high speeds may plateau as deformation becomes plastic. Recognizing this shape helps you predict performance under real‑world conditions that differ from the lab Not complicated — just consistent..
9. Extending the Experiment to Rotational Effects
If the ball spins while it drops, the rebound can be asymmetric. To capture this:
- Add a high‑contrast marker (e.g., a small black dot) on the ball’s surface.
- Track the marker’s angular position frame‑by‑frame using the same OpenCV pipeline, extracting an angle θ(t).
- Compute angular velocity ω = dθ/dt before and after impact.
- Define a rotational coefficient of restitution:
[ \text{COR}{\text{rot}} = \frac{|\omega{\text{after}}|}{|\omega_{\text{before}}|} ]
A significant drop in (\text{COR}_{\text{rot}}) indicates that the impact is converting translational kinetic energy into spin—valuable information for sports like tennis or table tennis where spin dramatically influences ball trajectory The details matter here..
10. Common Pitfalls and How to Avoid Them
| Pitfall | Symptom | Remedy |
|---|---|---|
| Parallax error – camera not perfectly perpendicular to the motion plane. Which means g. Day to day, | Ball drifts sideways, causing inconsistent impact points. But | Pixel‑to‑meter conversion is off by a few percent. |
| Motion blur – insufficient shutter speed. Think about it: | ||
| Incorrect scaling – ruler not in the same plane as the ball. Day to day, | Ball appears smeared; edge detection fails. Because of that, | |
| Air currents – drafts from HVAC or fans. Now, | Replace or sand the test surface after a set number of drops; record surface condition. On top of that, | Measured heights appear larger on one side of the frame. But |
| Surface wear – repeated impacts roughen the plate. | Keep the optical axis aligned with the drop line; use a narrow, collimated light source to define a clear silhouette. Practically speaking, , 1/2000 s) and boost illumination (LED ring light). | Place the calibration ruler flush with the impact surface and capture it in every video. |
11. A Quick Checklist for the Next Test
- ☐ Verify camera frame‑rate and resolution.
- ☐ Place calibrated ruler in the same plane as the ball.
- ☐ Set ambient temperature and let all components equilibrate.
- ☐ Clean the impact surface; note its roughness (Ra value if possible).
- ☐ Record at least three drops per height.
- ☐ Export video in a lossless format (e.g., .avi with Huffyuv).
- ☐ Run the analysis script; export COR values to a spreadsheet.
- ☐ Plot COR vs. impact speed; look for trends.
- ☐ Document any anomalies (e.g., wobble, spin, surface damage).
- ☐ Store raw videos and processed data in a dated folder for future reference.
Conclusion
Measuring the coefficient of restitution is a deceptively simple experiment that opens a window onto the hidden energy pathways of everyday collisions. By combining a modest camera, a ruler, and a bit of open‑source code, you can move from “the ball looks bouncy” to a quantitative COR value complete with uncertainty bounds and repeatability statistics.
The real power lies not just in the number itself, but in the story it tells: how material composition, surface finish, temperature, and even spin conspire to either conserve or dissipate kinetic energy. Whether you’re engineering a high‑performance sports ball, designing a robot that must hop across obstacles, or simply satisfying a curiosity about why a rubber duck splashes less than a steel marble, the workflow outlined above equips you with a reliable, reproducible method.
Counterintuitive, but true It's one of those things that adds up..
So grab a ball, set up that ruler, hit record, and let physics reveal itself frame by frame. Happy bouncing—and may your COR be ever in your favor.