With that said, if he is interested in 3D development, it can take a while to really understand what a graphic engine is doing, and if you don't understand it you end up "programming by magic". Which means you keep trying things until they work. Problem is, what you do may not work in all cases, or it may only work on certain cards, etc. if he really wants to get it, it might not be bad to write his own graphics engine. Yes, it will be slow and limited, but a basic engine that allows you to draw triangles and view it from any camera position will pretty much guarantee that he really understands the math, as long as he didn't cut and paste a bunch of code and then monkey with it until it "works".