There is still a lot of Javascript, but...
I think I can use custom properties to set the camera location, and define the location of each surface using css properties and then let CSS handle the calculation of the transform.
We have cos, sin and tan now in CSS!