Hey Zach,
Thanks to your code, I have clearly progressed in understanding.
Just for fun and learning I have a question:
How does the 'yValue' value come about? Can it be calculated? It doesn't turn around precisely.
https://codepen.io/mikeK/pen/WNbaeJR
I use gsap 2.0 for this case because I like the 'old' smooth start / stop function and cannot do this with 3.0.
The locomotive is already under construction. But here I have to specify the alignment of the parts.
https://codepen.io/mikeK/pen/bGNjjyZ
Kind regards
Mikel