Click here for the GitHub link.
This update is primarily focused on making the code more functional. The major things I’ve added are:
- Multiple pitches
- code writes a file for each pitch
- code now asks if the user would like to compare another pitch
- a final set of plots shows all pitches on the same three plots (side view, bird’s-eye view, catcher’s view)
- Changed input metrics
- inputs no longer include u, v, w, Spinx, SpinY, and SpinZ
- instead, the code asks for release location (x, y, z), initial speed, upwards angle, horizontal angle, initial spin rate, tilt (in hours and minutes), spin efficiency, and gyro orientation
- added a default pitch and streamlined the input process for quick comparisons
- Separated graphing code into functions separate from other code
- Added some input validation to avoid error messages
- Made some bug fixes with plotting
- Changed the decision time from 200 ms from the pitch to 200 ms before the ball gets to the plate.
- Various other bug fixes
The code will generate a file that lists the ball’s position and velocity at each time step. It also writes the spin rates in cartesian coordinates. As of now, they are constant throughout the ball’s flight. This will change as we gain a better understanding of spin decay. The code also outputs 3 plots for each pitch and 3 plots with all the pitches combined.
Many thanks to Michael Ressler for helping me to get going on GitHub. I am self-taught in Python and as such lack some of the refinement that might come from some professional instruction. Michael has been super helpful in teaching me how to make the code format more user friendly and more up to accepted standards.
Now that the input/output system is roughly what we want, the next phase will be adding the seam-shifted-wake effects. This will be a major upgrade demonstrating aerodynamic effects not yet modeled elsewhere. This will happen as I am putting the code into a package so that it can be easily downloaded and used like other python packages.
As always, if there are any bugs, or if you have any suggestions on potential improvements please let me know in the comments or, better yet, click on the GitHub link above and become a collaborator.