I use the free ray-tracer, POVRAY, to create three-dimensional images. Its scene description language is pretty high-level with a large number of object primitives and CSG modeling, although I do think it could be made even more high-level. The raytracing output is beautiful, but exceedingly slow.
Most of the 3D APIs that I have seen just seem too low-level and disconnected from the rest of the system. So, I built a while back a lightweight, high-level, POVRAY-like framework that allowed me to render 3D objects on top of GDI+. The framework also included perspective warping of images for texture mapping. The benefits were vector-based output, printing support, and trivial integration with 2D graphics. I didn’t want to learn Direct3D, didn’t need hardware acceleration, and didn’t care for the huge managed runtime.
I do care a lot about the user interface. I found that simple three-dimensional graphics can look more impressive that hand-crafted 2D images, and ironically it takes me less effort to construct and animate a 3D scene than to produce 2D artwork.
Even though I developed the framework very quickly, I did suspend that work to focus on the core parts of my application, but I may now ultimately end up waiting for Avalon.