An interactive Pool (Billiards) AI trainer that predicts optimal shots using geometry, angle, power, and confidence. This project visualizes optimal pool shots by calculating:
- Cut angle
- Required power
- Shot confidence
- Ball collisions and blocking
- Best pocket selection
Designed as a training and educational tool, not a physics-perfect simulator.
- 🎯 Realistic pool table (image-based)
- 🟢 Multiple scenarios:
- EASY
- NORMAL
- HARD
- CUSTOM
- 📐 Shot angle calculation
- ⚡ Power estimation
- 📊 Confidence score per shot
- 🔴 Visualized shot paths
- 🖱️ Interactive mouse-based placement
- 📋 Shot details panel
For each possible pocket:
- Computes ghost ball position
- Calculates cut angle
- Checks blocking balls
- Scores the shot using:
- Lower cut angle
- Shorter cue-to-ghost distance
- Returns the best 2 shots
- Click to place white ball
- Click a colored ball to analyze shots
- Place white ball
- Place up to 4 colored balls
- Double-click a colored ball to select target
- Python 3.9+
- Tkinter
- Matplotlib
Install dependencies:
pip install -r requirements.txt


