Project 06 · Computer vision · Fall 2025

Predicting a free throw from the body, before the ball lands.

Complete · COMS4731, Columbia

SWISH predicts whether a basketball free throw goes in, using only the shooter’s 3D skeleton at the moment of release. YOLOv8-pose finds the release frame, SAM3D Body extracts a 70-joint 3D pose, and a small attention-plus-temporal-CNN classifier reads four frames of joint positions with velocity and acceleration.

The headline number is 91.95% accuracy at 0.97 AUC. The more interesting result is asymmetric: below 0.40 predicted probability the model called 88 of 88 misses correctly, while high-confidence makes ran at 87.9% across 33 samples. Bad form is legible in the pose. Good form is necessary but not sufficient — roughly what a shooting coach would tell you.

[TODO: one paragraph on which parts were yours. This was a three-person course project and the repo lives under a teammate’s account; say plainly what you owned.]

[TODO: the honest caveat — 174 samples, five-fold cross-validation. State the denominator the way you do everywhere else on this site.]

RoleTODO — your part
TeamThree, COMS4731
StackYOLOv8-pose, SAM3D Body, PyTorch
ModelKeyJointNet, 72K params