How Shots Disperse: A Statistical Model for Physics Simulation
How Shots Disperse: A Statistical Model for Physics Simulation
We've added a new LAB tool: Shot Dispersion Engine. It builds on Mark Broadie’s Every Shot Counts and models like Thomas Kielen’s to generate distance-based dispersion parameters for use in a physics engine.
What the Tool Does
For a golf physics engine, shot dispersion is central. You need a model of how shots spread by skill level. This tool helps you:
- Lateral dispersion: How much shots spread left and right
- Depth dispersion: How much distance varies
- Short bias: Amateurs tend to land short of the target
- Carry : run ratio: How carry and run change with distance
Main Features
1. Player profiles
Presets by handicap:
- Pro (+5): Very accurate
- Scratch (0): Scratch golfer
- Avg (90s): Average amateur (90s)
- High (100+): High handicap (100+)
Parameters can be fine-tuned with sliders.
2. Real-time visualization
- Landing distribution: Top-down view of 100-shot spread
- Dispersion vs. distance: How dispersion grows (linear model)
- Carry : run: Ratio by distance
3. Data table for engine use
It generates dispersion parameters at 10 distance steps from 50 to 300 yards. You can use these as nodes for linear interpolation in your engine.
Basis of the Model
The tool uses:
- Dispersion scaling: Error grows roughly linearly with distance (y = ax + b)
- Elliptical distribution: Depth and lateral error are treated as independent
- Short bias: Amateurs land short of the target on average
Using It in Your Engine
The data table can be copied as Markdown. Example logic:
Lateral dispersion = (coefficient A × distance) + base error
Depth dispersion = (coefficient B × distance) + base error
Landing point (x, y) = (
random_normal() × lateral dispersion,
distance − offset + random_normal() × depth dispersion
)
References
- Mark Broadie: Every Shot Counts (2014)
- Thomas Kielen: Statistical analysis of golf dispersion
- PGA TOUR ShotLink: Official shot data
What’s Next
This tool will support the ANSWER project’s physics engine. We may add factors like lie (fairway vs. rough) and finer dispersion models later.
Try it in LAB: Shot Dispersion Engine