(note: this is not a school project but a thing I'm trying to do in my free time) I am trying to model 3 point basketball 'swish' shot. A 'swish' is when a point is scored without the ball touching the rim or the backboard. My goal is to find what initial velocity and initial spin (which will be a backspin) can maximise my chances of scoring a swish 3 pointer. To derive the equations of motion, I have taken into consideration weight, Magnus force and drag force. the point $(0,0,0)$ is where the ball is thrown. My position vector is the following: $$ \vec r = \begin{cases} x=v_{x0}t+\frac{F_M t^2}{2m}-\frac{F_D t^2}{2m}\cdot\frac{\dot{x}(t)}{\sqrt{\dot{x}^2(t)+\dot{y}^2(t)+\dot{z}^2(t)}}\\ y=v_{y0}t-\frac{F_D t^2}{2m}\cdot\frac{\dot{y}(t)}{\sqrt{\dot{x}^2(t)+\dot{y}^2(t)+\dot{z}^2(t)}}\\ z=v_{z0}t-\frac{gt^2}{2}-\frac{F_D t^2}{2m}\cdot\frac{\dot{z}(t)}{\sqrt{\dot{x}^2(t)+\dot{y}^2(t)+\dot{z}^2(t)}} \end{cases} $$

My velocity vector: $$ \vec v \begin{cases} \dot{x}(t)=v_{x0}+\frac{F_M}{m}t-\frac{F_D}{m}\cdot\frac{\dot{x}(t)}{\sqrt{\dot{x}^2(t)+\dot{y}^2(t)+\dot{z}^2(t)}}t\\ \dot{y}(t)=v_{y0}-\frac{F_D}{m}\cdot\frac{\dot{y}(t)}{\sqrt{\dot{x}^2(t)+\dot{y}^2(t)+\dot{z}^2(t)}}t\\ \dot{z}(t)=v_{z0}-gt-\frac{F_D}{m}\cdot\frac{\dot{z}(t)}{\sqrt{\dot{x}^2(t)+\dot{y}^2(t)+\dot{z}^2(t)}}t \end{cases}$$

Now, I would like to establish some boundary conditions. I assume that at the time $T$ the centre of mass of the ball must be at the same height as the basketball rim. This means I need to solve: $z(T) = H$. My question is how can I set the boundary conditions for my $x$ and $y$ components. I need to find the set of points $(x,y)$ which will guarantee that at the time $T$ the sphere (ball) is enclosed within the rim of radius $r$ and is not touching the edges. I am having trouble translating this statement into an equation. Any help would really be amazing.


2 Answers 2


Your best bet to solve this is probably to write a numerical solver (Range-Kutta or whatever), that takes your initial conditions, and computes the path of the ball, and maps "swish or no" to each path. Some region of your initial condition space will give you siwshes, and the center of that region will be the answer to your question.

  • $\begingroup$ you might be able to solve this analytically, but my guess is that there is probably too much calculus to do this easily. And most practicial problems nowadays require numerics, so this is a good, human-understandable problem to do that with. $\endgroup$ Oct 20, 2020 at 17:05
  • $\begingroup$ Even if $F_D$ and $F_M$ were constant, you still won't be able to solve analytically I think. This is because the direction they act upon changes with time. Best to go with simulation method like this answer proposes. $\endgroup$
    – JAlex
    Oct 20, 2020 at 17:06
  • $\begingroup$ Thanks for the help. I'm decent at coding with python, I've never heard about Range-Kutta before. But my problem is then to understand how to create a mapping from equation of motion to probability of scoring a swish. $\endgroup$ Oct 20, 2020 at 17:07
  • $\begingroup$ Do you have any tips on creating a simulation for this? $\endgroup$ Oct 20, 2020 at 17:07
  • 1
    $\begingroup$ And then, you just track the center of the ball, and see if any point of the ring ever comes within a radius of the ball of the center. $\endgroup$ Oct 20, 2020 at 17:22

You want all position coordinates to match the center of the hoop at time $T$. You also want primarily a vertical velocity. You probably need to find some maximum angle $\theta$ from vertical you want to be within. Like $$\tan \theta > \frac{ -\dot{z} }{\sqrt{ \dot{x}^2 + \dot{y}^2}}$$

  • $\begingroup$ This doesn't sound like and answer to me: more a comment. $\endgroup$
    – Gert
    Oct 20, 2020 at 17:03
  • 2
    $\begingroup$ @Gert I respectfully disagree. This seems like an incomplete answer, which is a kind of answer (which may or may not be useful; vote accordingly). It does not seem like a request for clarification or a suggestion of how to improve the question, which are the uses for comments. $\endgroup$
    – rob
    Oct 20, 2020 at 19:40
  • $\begingroup$ @Gert Incomplete answers shouldn't be comments. Perhaps a better comment here would be to ask the OP to expand the answer more. $\endgroup$ Oct 20, 2020 at 19:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.