I’m playing a bit with 3D rendering in matplotlib using the regular API (LineCollection and PolyCollection) to see how far we can go. Here are some results. I’m using a regulat axis, homogenous coordinates (that simplify everything), a model/view/projection transform, z-depth sorting, lightning and backface culling (removal of hidden triangles). I’m quite happy with the results so I share them with you. The code is not yet online because it’s still a bit messy but it is reasonably fast (but slower than the regular 3D axis projection I would say).
I’m not familiar enough with the regular 3D axis projection to know if these experiments are useful or not but I’ll be happy to explain details if you want.