Disclaimer: This current state of the code is clustered with mess and uncommented. And the repo is unrunnable, and it has been discontinued. I'm no longer working on this project anymore, but I might come back later next year.
Youtube video: https://youtu.be/TAyctSq20o8