Works a lot better than I expected
I actually attempted to do this before: https://scratch.mit.edu/projects/535190218