@ryo @icedquinn I've taken a 3D graphics class back in college. It's pretty simple if you know linear algebra. The professor even wrote his own 3D renderer that outputs to a JFrame image object. For my senior project the following year, I was tasked to rewrite it in JavaScript and port it to HTML5 canvas.
Honestly, the hardest part is the clipping and accounting for the fact that object behind the camera will appear in front of the camera and upside down unless you specifically tell the program not to render them.
However, we were never taught how to map textures or even shade polygons. I wanted to add that feature in my JS port but I didn't have time.