I used xXName77Xx’s rendering base because I wanted to start with the math, this is my own implementation