The goal is to simulate bowling with a ball and 10 pins to create a fun visual experience. Idk, I like watching bowling pins fall over.
This project used this semester's assignment A5 as a base. This is because the animation is all calculated using Position-Based Dynamics. The implementation strategy for this project was as follows:
The first hurdle was figuring out how to get the pins to stand up. A5 had much of the core functionality and concepts required to represent my objects using particles, but the pins were unable to maintain their shape. They'd instead turn into a "puddle" of particles on the ground. To solve this, I used shape matching, which effectively helped turn my objects into rigid bodies.
Another major challenge was improving the performance and accuracy of the PBD. For this reason, I created the bounding volumes for checking collisions a little faster, among other minor improvements. Though I wish the impact was a little more explosive, the pins seem to interact well with the ball and each other.
There were some other features I experimented with, such as trying to make the pins deformable or letting ball curve with user input. Currently, these are future additions that I'm interested in making.
No other libraries or tools beyond what's included in the above list were used.