A Proportional-Integral-Derivative controller to self balance a ball on a rolling cart. Use arrow keys to control the cart, and disturb the ball.
https://sparshg.github.io/pid-balancer/
Windows, Mac: https://github.com/sparshg/pid-balancer/releases
(Should work on Linux too, didn't compile)
Physics for the simulation is implemented according to this paper (excluding the counter-balances and connecting rod)
I used Runge-Kutta method (4th order) to solve the system. System's energy will remain almost constant when controller is off and there is no drag.
Camera dynamics are implemented with the help of this video