Vehicular Drift Simulator – My Senior Project
DOWNLOAD THIS PROGRAM
Includes technical essay.
Be sure to:
0. refer to the README file.
1. set Wheelbase Length to 2.718.
2. hover over each input box for pop-up explanations.
3. If simulation is too fast, go to Graph tab and check the box Real Time (even though it says “Not Recommended” – for very old computers).
The Story
I was graduating with a Bachelor’s Degree in Mathematics at CalPoly.
I had a keen in interest in the behavior of a car sliding sideways from the locking of rear wheels (i.e. handbrake applied). Hence, I thought, why not do my senior project on that subject.
The project started out innocently enough to find the mathematical formulas that would describe the motion and path of such a vehicle in general. It very quickly became obvious there was no general solution (at least not in sight…) and that a numerical approximation approach is much more practical. It now seemed the next natural step is to perform & present the numerical approximation in a graphical program.
I’ve always had a natural ability to write programs, starting with my Casio graphing calculator to plot the loci of a point on a circle that is rolling on either a straight line or another circle. I had also just taken two courses in C++ (which I have now long forgotten). After a brief research, Visual Basic seemed a good choice for my purposes.
It’s not uncommon for a graduating senior to submit and complete his/her senior project after graduation, and so it was the case for me. I graduated with no experience and knowledge in Visual Basic. And I found a job. So I bought a book on VB and started reading up on it in BART, during my daily commute, 15 minutes at a time. Once I have churned through most of the book, I felt confident enough to embark on actually building the application.
I think it took me 2 weeks of nightly coding to finish this program to its beta form. After some testing by friends and family, and a few more tweaks, the program was complete, and submitted to and accepted by CalPoly.