← All Use Cases
Central Composite Design

Basketball Free Throw Form

Central composite design to maximize accuracy and arc consistency by tuning release angle, release height, and backspin rate

Summary

This experiment investigates basketball free throw form. Central composite design to maximize accuracy and arc consistency by tuning release angle, release height, and backspin rate.

The design varies 3 factors: release angle deg (deg), ranging from 45 to 55, release height m (m), ranging from 2.0 to 2.5, and backspin rpm (rpm), ranging from 100 to 300. The goal is to optimize 2 responses: accuracy pct (%) (maximize) and arc consistency (pts) (maximize). Fixed conditions held constant across all runs include distance = 4.6m, ball = size_7.

A Central Composite Design (CCD) was selected to fit a full quadratic response surface model, including curvature and interaction effects. With 3 factors this produces 22 runs including center points and axial (star) points that extend beyond the factorial range.

Quadratic response surface models were fitted to capture potential curvature and factor interactions. The RSM contour plots below visualize how pairs of factors jointly affect each response.

Key Findings

For accuracy pct, the most influential factors were release angle deg (48.1%), release height m (30.9%), backspin rpm (20.9%). The best observed value was 76.0 (at release angle deg = 50, release height m = 2.25, backspin rpm = 200).

For arc consistency, the most influential factors were release angle deg (48.7%), release height m (35.7%), backspin rpm (15.6%). The best observed value was 7.4 (at release angle deg = 50, release height m = 2.25, backspin rpm = 200).

Recommended Next Steps

Experimental Setup

Factors

FactorLowHighUnit
release_angle_deg4555deg
release_height_m2.02.5m
backspin_rpm100300rpm

Fixed: distance = 4.6m, ball = size_7

Responses

ResponseDirectionUnit
accuracy_pct↑ maximize%
arc_consistency↑ maximizepts

Configuration

use_cases/212_basketball_shooting/config.json
{ "metadata": { "name": "Basketball Free Throw Form", "description": "Central composite design to maximize accuracy and arc consistency by tuning release angle, release height, and backspin rate" }, "factors": [ { "name": "release_angle_deg", "levels": [ "45", "55" ], "type": "continuous", "unit": "deg" }, { "name": "release_height_m", "levels": [ "2.0", "2.5" ], "type": "continuous", "unit": "m" }, { "name": "backspin_rpm", "levels": [ "100", "300" ], "type": "continuous", "unit": "rpm" } ], "fixed_factors": { "distance": "4.6m", "ball": "size_7" }, "responses": [ { "name": "accuracy_pct", "optimize": "maximize", "unit": "%" }, { "name": "arc_consistency", "optimize": "maximize", "unit": "pts" } ], "settings": { "operation": "central_composite", "test_script": "use_cases/212_basketball_shooting/sim.sh" } }

Experimental Matrix

The Central Composite Design produces 22 runs. Each row is one experiment with specific factor settings.

Runrelease_angle_degrelease_height_mbackspin_rpm
1502.25200
2552300
3452.5100
4502.70644200
5502.25200
640.87132.25200
7502.2517.4258
8502.25200
9552.5100
1059.12872.25200
11502.25200
12501.79356200
13502.25200
14452300
15502.25200
16552100
17502.25382.574
18552.5300
19502.25200
20452100
21452.5300
22502.25200

Step-by-Step Workflow

1

Preview the design

Terminal
$ doe info --config use_cases/212_basketball_shooting/config.json
2

Generate the runner script

Terminal
$ doe generate --config use_cases/212_basketball_shooting/config.json \ --output use_cases/212_basketball_shooting/results/run.sh --seed 42
3

Execute the experiments

Terminal
$ bash use_cases/212_basketball_shooting/results/run.sh
4

Analyze results

Terminal
$ doe analyze --config use_cases/212_basketball_shooting/config.json
5

Get optimization recommendations

Terminal
$ doe optimize --config use_cases/212_basketball_shooting/config.json
6

Multi-objective optimization

With 2 competing responses, use --multi to find the best compromise via Derringer–Suich desirability.

Terminal
$ doe optimize --config use_cases/212_basketball_shooting/config.json --multi
7

Generate the HTML report

Terminal
$ doe report --config use_cases/212_basketball_shooting/config.json \ --output use_cases/212_basketball_shooting/results/report.html

Features Exercised

FeatureValue
Design typecentral_composite
Factor typescontinuous (all 3)
Arg styledouble-dash
Responses2 (accuracy_pct ↑, arc_consistency ↑)
Total runs22

Analysis Results

Generated from actual experiment runs using the DOE Helper Tool.

Response: accuracy_pct

Top factors: release_angle_deg (48.1%), release_height_m (30.9%), backspin_rpm (20.9%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
release_angle_deg4342.840985.71021.6440.2456
release_height_m4186.674246.66860.8950.5052
backspin_rpm499.340924.83520.4760.7527
LackofFit2176.859888.4299
PureError7364.8750
Error9541.734852.1250
Total211170.590955.7424

Pareto Chart

Pareto chart for accuracy_pct

Main Effects Plot

Main effects plot for accuracy_pct

Normal Probability Plot of Effects

Normal probability plot for accuracy_pct

Half-Normal Plot of Effects

Half-normal plot for accuracy_pct

Model Diagnostics

Model diagnostics for accuracy_pct

Response: arc_consistency

Top factors: release_angle_deg (48.7%), release_height_m (35.7%), backspin_rpm (15.6%).

ANOVA

SourceDFSSMSFp-value
SourceDFSSMSFp-value
release_angle_deg48.51152.12792.0820.1659
release_height_m44.80821.20201.1760.3836
backspin_rpm41.61400.40350.3950.8077
LackofFit23.12951.5647
PureError77.1550
Error910.28451.0221
Total2125.21821.2009

Pareto Chart

Pareto chart for arc_consistency

Main Effects Plot

Main effects plot for arc_consistency

Normal Probability Plot of Effects

Normal probability plot for arc_consistency

Half-Normal Plot of Effects

Half-normal plot for arc_consistency

Model Diagnostics

Model diagnostics for arc_consistency

Response Surface Plots

3D surfaces fitted with quadratic RSM. Red dots are observed data points.

accuracy pct release angle deg vs backspin rpm

RSM surface: accuracy pct release angle deg vs backspin rpm

accuracy pct release angle deg vs release height m

RSM surface: accuracy pct release angle deg vs release height m

accuracy pct release height m vs backspin rpm

RSM surface: accuracy pct release height m vs backspin rpm

arc consistency release angle deg vs backspin rpm

RSM surface: arc consistency release angle deg vs backspin rpm

arc consistency release angle deg vs release height m

RSM surface: arc consistency release angle deg vs release height m

arc consistency release height m vs backspin rpm

RSM surface: arc consistency release height m vs backspin rpm

Multi-Objective Optimization

When responses compete, Derringer–Suich desirability finds the best compromise. Each response is scaled to a 0–1 desirability, then combined via a weighted geometric mean.

Overall Desirability
D = 0.9545

Per-Response Desirability

ResponseWeightDesirabilityPredictedDir
accuracy_pct 1.5
0.9545
76.00 0.9545 76.00 %
arc_consistency 1.0
0.9545
7.40 0.9545 7.40 pts

Recommended Settings

FactorValue
release_angle_deg50 deg
release_height_m2.25 m
backspin_rpm200 rpm

Source: from observed run #18

Trade-off Summary

Sacrifice = how much worse than single-objective best.

ResponsePredictedBest ObservedSacrifice
arc_consistency7.407.40+0.00

Top 3 Runs by Desirability

RunDFactor Settings
#110.8633release_angle_deg=50, release_height_m=2.25, backspin_rpm=17.4258
#220.8528release_angle_deg=45, release_height_m=2.5, backspin_rpm=300

Model Quality

ResponseType
arc_consistency0.3761quadratic

Full Multi-Objective Output

doe optimize --multi
============================================================ MULTI-OBJECTIVE OPTIMIZATION Method: Derringer-Suich Desirability Function ============================================================ Overall desirability: D = 0.9545 Response Weight Desirability Predicted Direction --------------------------------------------------------------------- accuracy_pct 1.5 0.9545 76.00 % ↑ arc_consistency 1.0 0.9545 7.40 pts ↑ Recommended settings: release_angle_deg = 50 deg release_height_m = 2.25 m backspin_rpm = 200 rpm (from observed run #18) Trade-off summary: accuracy_pct: 76.00 (best observed: 76.00, sacrifice: +0.00) arc_consistency: 7.40 (best observed: 7.40, sacrifice: +0.00) Model quality: accuracy_pct: R² = 0.3812 (quadratic) arc_consistency: R² = 0.3761 (quadratic) Top 3 observed runs by overall desirability: 1. Run #18 (D=0.9545): release_angle_deg=50, release_height_m=2.25, backspin_rpm=200 2. Run #11 (D=0.8633): release_angle_deg=50, release_height_m=2.25, backspin_rpm=17.4258 3. Run #22 (D=0.8528): release_angle_deg=45, release_height_m=2.5, backspin_rpm=300

Full Analysis Output

doe analyze
=== Main Effects: accuracy_pct === Factor Effect Std Error % Contribution -------------------------------------------------------------- release_angle_deg 17.2500 1.5918 48.1% release_height_m 11.0833 1.5918 30.9% backspin_rpm 7.5000 1.5918 20.9% === ANOVA Table: accuracy_pct === Source DF SS MS F p-value ----------------------------------------------------------------------------- release_angle_deg 4 342.8409 85.7102 1.644 0.2456 release_height_m 4 186.6742 46.6686 0.895 0.5052 backspin_rpm 4 99.3409 24.8352 0.476 0.7527 Lack of Fit 2 176.8598 88.4299 1.696 0.2508 Pure Error 7 364.8750 52.1250 Error 9 541.7348 52.1250 Total 21 1170.5909 55.7424 === Summary Statistics: accuracy_pct === release_angle_deg: Level N Mean Std Min Max ------------------------------------------------------------ 40.8713 1 51.0000 0.0000 51.0000 51.0000 45 4 67.7500 8.0984 56.0000 74.0000 50 12 68.2500 6.8639 54.0000 76.0000 55 4 67.7500 6.1305 60.0000 74.0000 59.1287 1 59.0000 0.0000 59.0000 59.0000 release_height_m: Level N Mean Std Min Max ------------------------------------------------------------ 1.79356 1 76.0000 0.0000 76.0000 76.0000 2 4 68.0000 5.4772 60.0000 72.0000 2.25 12 64.9167 7.8330 51.0000 75.0000 2.5 4 67.5000 8.5440 56.0000 74.0000 2.70644 1 74.0000 0.0000 74.0000 74.0000 backspin_rpm: Level N Mean Std Min Max ------------------------------------------------------------ 100 4 65.5000 6.6583 56.0000 71.0000 17.4258 1 73.0000 0.0000 73.0000 73.0000 200 12 65.7500 8.5400 51.0000 76.0000 300 4 70.0000 6.7330 60.0000 74.0000 382.574 1 67.0000 0.0000 67.0000 67.0000 === Main Effects: arc_consistency === Factor Effect Std Error % Contribution -------------------------------------------------------------- release_angle_deg 2.4250 0.2336 48.7% release_height_m 1.7750 0.2336 35.7% backspin_rpm 0.7750 0.2336 15.6% === ANOVA Table: arc_consistency === Source DF SS MS F p-value ----------------------------------------------------------------------------- release_angle_deg 4 8.5115 2.1279 2.082 0.1659 release_height_m 4 4.8082 1.2020 1.176 0.3836 backspin_rpm 4 1.6140 0.4035 0.395 0.8077 Lack of Fit 2 3.1295 1.5647 1.531 0.2809 Pure Error 7 7.1550 1.0221 Error 9 10.2845 1.0221 Total 21 25.2182 1.2009 === Summary Statistics: arc_consistency === release_angle_deg: Level N Mean Std Min Max ------------------------------------------------------------ 40.8713 1 3.8000 0.0000 3.8000 3.8000 45 4 5.7500 1.4457 3.6000 6.6000 50 12 6.1417 0.9443 4.0000 7.4000 55 4 6.2250 0.4573 5.7000 6.7000 59.1287 1 4.2000 0.0000 4.2000 4.2000 release_height_m: Level N Mean Std Min Max ------------------------------------------------------------ 1.79356 1 7.4000 0.0000 7.4000 7.4000 2 4 6.3000 0.4546 5.7000 6.7000 2.25 12 5.6250 1.1218 3.8000 7.0000 2.5 4 5.6750 1.4080 3.6000 6.6000 2.70644 1 6.8000 0.0000 6.8000 6.8000 backspin_rpm: Level N Mean Std Min Max ------------------------------------------------------------ 100 4 5.6250 1.3817 3.6000 6.7000 17.4258 1 6.4000 0.0000 6.4000 6.4000 200 12 5.7667 1.2543 3.8000 7.4000 300 4 6.3500 0.4359 5.7000 6.6000 382.574 1 6.1000 0.0000 6.1000 6.1000

Optimization Recommendations

doe optimize
=== Optimization: accuracy_pct === Direction: maximize Best observed run: #18 release_angle_deg = 50 release_height_m = 2.25 backspin_rpm = 200 Value: 76.0 RSM Model (linear, R² = 0.0328, Adj R² = -0.1283): Coefficients: intercept +66.8636 release_angle_deg +0.5155 release_height_m +1.1679 backspin_rpm -0.9959 RSM Model (quadratic, R² = 0.1008, Adj R² = -0.5736): Coefficients: intercept +66.7847 release_angle_deg +0.5155 release_height_m +1.1679 backspin_rpm -0.9959 release_angle_deg*release_height_m +0.5000 release_angle_deg*backspin_rpm -0.0000 release_height_m*backspin_rpm +2.2500 release_angle_deg^2 -1.0105 release_height_m^2 +0.6395 backspin_rpm^2 +0.4895 Curvature analysis: release_angle_deg coef=-1.0105 concave (has a maximum) release_height_m coef=+0.6395 convex (has a minimum) backspin_rpm coef=+0.4895 convex (has a minimum) Notable interactions: release_height_m*backspin_rpm coef=+2.2500 (synergistic) release_angle_deg*release_height_m coef=+0.5000 (synergistic) Predicted optimum (from linear model, at observed points): release_angle_deg = 55 release_height_m = 2.5 backspin_rpm = 100 Predicted value: 69.5428 Surface optimum (via L-BFGS-B, linear model): release_angle_deg = 55 release_height_m = 2.5 backspin_rpm = 100 Predicted value: 69.5428 Model quality: Weak fit — consider adding center points or using a different design. Factor importance: 1. release_angle_deg (effect: 14.0, contribution: 40.6%) 2. release_height_m (effect: 10.2, contribution: 29.7%) 3. backspin_rpm (effect: 10.2, contribution: 29.7%) === Optimization: arc_consistency === Direction: maximize Best observed run: #18 release_angle_deg = 50 release_height_m = 2.25 backspin_rpm = 200 Value: 7.4 RSM Model (linear, R² = 0.0158, Adj R² = -0.1482): Coefficients: intercept +5.8909 release_angle_deg +0.0898 release_height_m -0.0252 backspin_rpm -0.1361 RSM Model (quadratic, R² = 0.1561, Adj R² = -0.4769): Coefficients: intercept +6.0896 release_angle_deg +0.0898 release_height_m -0.0252 backspin_rpm -0.1361 release_angle_deg*release_height_m +0.1625 release_angle_deg*backspin_rpm +0.0375 release_height_m*backspin_rpm +0.3875 release_angle_deg^2 -0.3193 release_height_m^2 +0.0107 backspin_rpm^2 +0.0107 Curvature analysis: release_angle_deg coef=-0.3193 concave (has a maximum) release_height_m coef=+0.0107 negligible curvature backspin_rpm coef=+0.0107 negligible curvature Notable interactions: release_height_m*backspin_rpm coef=+0.3875 (synergistic) Predicted optimum (from linear model, at observed points): release_angle_deg = 55 release_height_m = 2 backspin_rpm = 100 Predicted value: 6.1419 Surface optimum (via L-BFGS-B, linear model): release_angle_deg = 55 release_height_m = 2 backspin_rpm = 100 Predicted value: 6.1419 Model quality: Weak fit — consider adding center points or using a different design. Factor importance: 1. release_angle_deg (effect: 2.2, contribution: 47.6%) 2. backspin_rpm (effect: 1.2, contribution: 27.0%) 3. release_height_m (effect: 1.2, contribution: 25.4%)
← Previous: Tennis Racket String Setup All Use Cases →